ansible一键部署脚本

一键部署rsync服务

[root@m01 conf]# cat /server/scripts/rsync.yaml 
# command playbook
- hosts: 172.16.1.41
  tasks:
     - name: setup01:install rsync
       yum: 
        name: rsync 
        state: installed
    - name: setup02:edit rsync conf file
        copy: 
          src: /etc/ansible/conf/rsyncd.conf 
          dest: /etc/
    - name: setup03:create rsync user
        user: 
          name: rsync 
          state: present 
          create_home: no 
          shell: /sbin/nologin
    - name: setup04:create auth file
        copy: 
          src: /etc/ansible/conf/rsync.password 
          dest: /etc/ 
          mode: 600
    - name: setup05:create backup dir
        file: 
          dest: /backup 
          state: directory 
          owner: rsync 
          group: rsync
    - name: setup06:boot rsync server
        shell: rsync --daemon creates=/var/run/rsyncd.pid
 - hosts: 172.16.1.31
    tasks:
      - name: setup01:create auth file
        copy: 
          src: /etc/ansible/conf/rsync_client.password 
          dest: /etc/rsync.password 
          mode: 600

ansible一键部署脚本(NFS)

[root@m01 scripts]# cat nfs.yaml 
# command playbook
#部署服务器
- hosts: nfs
  tasks:
    - name: setup01:install rpcbind server
      yum: 
        name: nfs-utils 
        state: installed
    - name: setup02:install rpcbind server
      yum: 
        name: rpcbind 
        state: installed
    - name: setup03:edit conf
      copy: 
        src: /etc/ansible/conf/nfs_conf/exports 
        dest: /etc/
    - name: setup04:create backup directory
      file: 
        dest: /data 
        state: directory 
        owner: nfsnobody 
        group: nfsnobody
    - name: setup05:boot rpc server
      shell: /etc/init.d/rpcbind start
    - name: setup06:boot nfs server
      shell: /etc/init.d/nfs start
#部署客户端
- hosts: web
  tasks:
    - name: setup01:install nfs rpc
      yum: 
        name: nfs-utils 
        state: installed
    - name: setup02:install rpcbind server
      yum: 
        name: rpcbind 
        state: installed
    - name: setup03:mount 
      mount:
        name: /mnt 
        src: 172.16.1.31:/data 
        fstype: nfs 
        state: mounted

一键部署inotify服务(在已有rsync服务的前提下)

#inotify.yaml文件
[root@m01 scripts]# cat inotify.yaml 
# command playbook

- hosts: nfs
  tasks:
   - name: setup01:install inotify-tools
     yum:
       name: inotify-tools
       state: installed
   - name: setup02:inotify建立rsync服务的连接
     shell: /bin/sh /server/scripts/inotify.sh &
# inotify脚本
[root@m01 scripts]# cat inotify.sh 
#!/bin/bash
inotifywait -mrq --format "%w%f" -e create,delete,moved_to,close_write /data |\
while read line
do
rsync -az --delete /data/ [email protected]::backup --password-file=/etc/rsync.password
done
[root@m01 scripts]# 

一键部署sersync服务(在已有rsync服务前提下)

[root@m01 sersync_conf]# cat /server/scripts/sersync.yaml 
# command playbook

- hosts: nfs
  tasks:
   - name: setup01 dir tools
     file:
       dest: /tools
       state: directory
   - name: setup02:unzip sersync-master
     unarchive: 
       src: /tools/sersync-master.zip
       dest: /tools/
       copy: yes
   - name: setup03:tar sersync
     unarchive: 
       src: /tools/sersync-master/sersync2.5.4_64bit_binary_stable_final.tar.gz  
       dest: /tools/
       copy: no 
   - name: setup04:mv GNU-Linux-x86 to nfs
     shell: mv /tools/GNU-Linux-x86 /usr/local/sersync
   - name: setup05:edit conf
     copy:
       src: /etc/ansible/conf/sersync_conf/confxml.xml
       dest: /usr/local/sersync/
   - name: setup06:boot sersync
     shell: /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml

一键部署Nginx服务

[root@m01 scripts]# cat nginx.yaml 
# command playbook

- hosts: web
  tasks:
   - name: setup01:install pcre-devel
     yum:
      name: pcre-devel
      state: installed
   - name: setup02:install openssl-devel
     yum: 
       name: openssl-devel
       state: installed
   - name: setup03:create www user
     user:
       name: www
       state: present
       create_home: no
       shell: /sbin/nologin
   - name: setup04:create dir
     file:
       dest: /server/tools
       state: directory
   - name: setup05:wget nginx
     get_url: 
       url: http://nginx.org/download/nginx-1.15.8.tar.gz
       dest: /server/tools
   - name: setup06:tar nginx
     unarchive:
       src: /server/tools/nginx-1.15.8.tar.gz
       dest: /server/tools
       copy: no
   - name: setup06:install nginx
     shell: cd /server/tools/nginx-1.15.8;./configure --prefix=/application/nginx-15.
8 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module   - name: setup07:make
     shell: cd /server/tools/nginx-1.15.8;make && make install
   - name: setup08:ln nginx
     file:
      src: /application/nginx-15.8 
      dest: /application/nginx
      state: link
   - name: setup09:boot nginx
     shell: /application/nginx/sbin/nginx

转载于:https://www.cnblogs.com/yjiu1990/p/10508645.html

你可能感兴趣的:(ansible一键部署脚本)