ansible-handlers变更执行操作

1. ansible-handlers在变更执行操作
  1) 编写playbook的handlers的配置文件

 1 [root@test-1 bin]# vim /ansible/nginx/bin/handlers.yaml 
 2 [root@test-1 bin]# cat /ansible/nginx/bin/handlers.yaml 
 3 ---
 4 - hosts: web1
 5   remote_user: root
 6   gather_facts: no
 7   
 8   tasks:
 9     - name: Copy nginx config file
10       copy:
11         src: /ansible/nginx/conf/site.conf
12         dest: /etc/nginx/conf.d/site.conf
13       notify: 
14         - reload nginx                                                          #这里是指定要执行那个的handlers,对应下面的name,我们可以定义多个handlers,通过handlers name来识别不同的handlers
15   
16   handlers:                                                                           #这里表示如果拷贝文件成功,就使用service服务重启nginx
17   - name: reload nginx
18     service:
19       name: nginx
20       state: reloaded 

2) 查看原来服务器的nginx配置文件

 1 [root@test-1 bin]# ansible web1 -a "cat /etc/nginx/conf.d/site.conf"
 2 
 3 192.168.200.133 | CHANGED | rc=0 >>
 4 server {
 5     listen 80;
 6     server_name www.ctnrs.com;
 7     location / {
 8         root   /var/www/html;
 9         index  index.html;
10     }
11 }
12 
13 192.168.200.132 | CHANGED | rc=0 >>
14 server {
15     listen 80;
16     server_name www.ctnrs.com;
17     location / {
18         root   /var/www/html;
19         index  index.html;
20     }
21 }

3) 修改nginx配置文件

 1 [root@test-1 bin]# vim /ansible/nginx/conf/site.conf 
 2 [root@test-1 bin]# cat /ansible/nginx/conf/site.conf 
 3 server {
 4     listen 80;
 5     server_name test.scajy.cn;
 6     location / {
 7         root   /var/www/html;
 8         index  index.html;
 9     }
10 }

2. 验证handlers文件是否正确
  1) 验证编写handlers文件

1 [root@test-1 bin]# ansible-playbook  --syntax-check  handlers.yaml   
2 
3 
4 playbook: handlers.yaml

3. 执行handlers文件
  1) 执行文件

 1 [root@test-1 bin]# ansible-playbook    handlers.yaml   
 2 [WARNING]: log file at /var/log/ansible/ansible.log is not writeable and we cannot create it, aborting
 3 
 4 
 5 PLAY [web1] ******************************************************************************************************************************************************************************************************************************************************************
 6 
 7 TASK [Copy nginx config file] ************************************************************************************************************************************************************************************************************************************************
 8 changed: [192.168.200.133]
 9 changed: [192.168.200.132]
10 
11 RUNNING HANDLER [reload nginx] ***********************************************************************************************************************************************************************************************************************************************
12 changed: [192.168.200.132]
13 changed: [192.168.200.133]
14 
15 PLAY RECAP *******************************************************************************************************************************************************************************************************************************************************************
16 192.168.200.132            : ok=2    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
17 192.168.200.133            : ok=2    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 

4. 验证是否成功执行了
  1)验证文件是否改变

 1 [root@test-1 bin]# ansible web1 -a "cat /etc/nginx/conf.d/site.conf"
 2 
3 4 192.168.200.133 | CHANGED | rc=0 >> 5 server { 6 listen 80; 7 server_name test.scajy.cn; 8 location / { 9 root /var/www/html; 10 index index.html; 11 } 12 } 13 14 192.168.200.132 | CHANGED | rc=0 >> 15 server { 16 listen 80; 17 server_name test.scajy.cn; 18 location / { 19 root /var/www/html; 20 index index.html; 21 } 22 }

  2) 验证nginx是否正常运行

 1 [root@test-1 bin]# ansible web1 -m shell -a "netstat -lntup|grep 80"
 2 [WARNING]: log file at /var/log/ansible/ansible.log is not writeable and we cannot create it, aborting
 3 
 4 192.168.200.133 | CHANGED | rc=0 >>
 5 tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17881/nginx: master 
 6 
 7 192.168.200.132 | CHANGED | rc=0 >>
 8 tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      17792/nginx: master 
 9 
10 [root@test-1 bin]# ansible web1 -m shell -a "ps -ef |grep nginx"
11 [WARNING]: log file at /var/log/ansible/ansible.log is not writeable and we cannot create it, aborting
12 
13 192.168.200.132 | CHANGED | rc=0 >>
14 root     17792     1  0 15:04 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
15 nginx    18524 17792  0 20:41 ?        00:00:00 nginx: worker process
16 root     18735 18730 58 20:51 pts/1    00:00:00 /bin/sh -c ps -ef |grep nginx
17 root     18737 18735  0 20:51 pts/1    00:00:00 grep nginx
18 
19 192.168.200.133 | CHANGED | rc=0 >>
20 root     17881     1  0 15:04 ?        00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
21 nginx    18613 17881  0 20:41 ?        00:00:00 nginx: worker process
22 root     18825 18820 62 20:51 pts/1    00:00:00 /bin/sh -c ps -ef |grep nginx
23 root     18827 18825  0 20:51 pts/1    00:00:00 grep nginx

3) curl模拟浏览器请求

1 [root@test-1 bin]# curl 192.168.200.133 -H "host:test.scajy.cn"
2 hello Ansible
3 [root@test-1 bin]# curl 192.168.200.132 -H "host:test.scajy.cn"
4 hello Ansible

 

你可能感兴趣的:(ansible-handlers变更执行操作)