Ansible入门notify和handlers

notify

notify这个action可用于在每个play的最后被触发,这样可以避免多次有改变发生时每次都执行指定的操作,取而代之,仅在所有的变化发生完成后一次性地执行指定操作。

在notify中列出的操作称为handler,也即notify中调用handler中定义的操作。

---- name: test.yml just for test  
   hosts: testserver  
   vars:    
       region: ap-southeast-1  
   tasks:    
       - name: template configuration
         file       template: src=template.j2 dest=/etc/foo.conf      
    notify:          
        - restart memcached          
        - restart apache  
    handlers:    
         - name: restart memcached      
            service: name=memcached state=restarted    
         - name: restart apache      
           service: name=apache state=restarted

handlers

Handlers 也是一些 task 的列表,通过名字来引用,它们和一般的 task 并没有什么区别。

Handlers 是由通知者进行 notify, 如果没有被 notify,handlers 不会执行。

不管有多少个通知者进行了 notify,等到 play 中的所有 task 执行完成之后,handlers 也只会被执行一次。

Handlers 最佳的应用场景是用来重启服务,或者触发系统重启操作.除此以外很少用到了。

---- name: test.yml just for test  
   hosts: testserver  
   vars:    region: ap-southeast-1  
   tasks:    
   - name: check memory free      
     template: src=template1.j2 dest=/etc/foo.conf      
     notify: restart apache    
   - name: check memory free      
     template: src=template2.j2 dest=/etc/okk.conf      
     notify: restart apache  handlers:    
   - name: restart apache      
     service: name=apache state=restarted#//@Apache只会重启一次#//@handlers需要等到所有tasks完成后才执行


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansible中,notify参数用于定义在任务执行后要调用的处理程序(handlers)。在一个任务的结尾,使用notify参数来指定要调用的处理程序的名称。如果该任务的状态为"changed"(即任务实际进行了更改),那么处理程序将被调用执行。如果任务的状态不是"changed",处理程序将不会被调用。 以下是一个使用notify参数的示例: ``` - name: configure nginx server template: src: /root/nginx.conf dest: /etc/nginx/nginx.conf notify: restart nginx server ``` 在这个示例中,当配置nginx服务器的任务状态为"changed"时,会调用名为"restart nginx server"的处理程序。 在运行Ansible playbook时,可以看到处理程序的执行情况。例如,在运行结果中,可以看到"changed=3",表示有3个处理程序被调用执行。 希望这个回答对您有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Ansible playbook 处理器(notifyhandlers)](https://blog.csdn.net/qq_34556414/article/details/108365191)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [ansible notifyhandlers](https://blog.csdn.net/supahero/article/details/108667849)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值