ansible批量管理服务器同步web服务
1.建立一个文件
vim /etc/ansible/roles/tongbu/tasks/main.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| --- - name : 同步文件 synchronize : src : /software dest : / delete : yes #rsync_timeout : 10 register : reload
- name : 创建链接目录 file : state : directory path : /etc/nginx/{{ item.dir }} with_items : - { dir : 'conf' } - { dir : 'kis' }
- name : 域名证书及配置文件软链接 file : state : link src : /software/{{ item.name }} path : /etc/nginx/{{ item.dir }}/{{ item.name }} register : result with_items : - { dir : 'conf', name : '域名证书' } - { dir : 'kis', name : '站点配置文件' }
- name : 检测Web应用 stat : path : /usr/bin/openresty register: p
- name : 修改文件夹属主 shell : chown nginx. /etc/nginx/{{ item.dir }} -R args : warn: False when : result is changed and p.stat.exists == False with_items : - { dir : 'conf' } - { dir : 'kis' }
- name : 重载nginx配置 service : name : nginx state : reloaded when : reload is changed and p.stat.exists == False
- name : 重载Openresty配置 command: /usr/bin/openresty -s reload when : p.stat.exists
|
- 建一个剧本文件
vim /etc/ansible/tb.xml
1 2 3 4 5
| --- - hosts : China remote_user : root roles: - tongbu
|
3,定义的组是China,需要在/etc/ansible/hosts 文件里新建主机组
最后就是执行剧本
1
| sudo ansible-playbook /etc/ansible/tb.xml
|
可以创建别名,这样方便每次执行
1
| alias tb=' sudo ansible-playbook /etc/ansible/tb.xml'
|