标签:RoCE and 修改 定义 copy term 调用 多次 图片
Handlers介绍:
- Handlers也是一些task的列表,和一般的task并没有什么区别。是由通知者进行的notify,如果没有被notify,则Handlers不会执行,假如被notify了,则Handlers被执行;
- 不管有多少个通知者进行了notify,等到play中的所有task执行完成之后,handlers也只会被执行一次
- “notify”这个action可用于在每个play的最后被触发,这样可以避免多次有改变发生时每次都执行指定的操作,取而代之,仅在所有的变化发生完成后一次性地执行指定操作。在notify中列出的操作称为handler,也即notify中调用handler中定义的操作。
通过部署一个实验来看一下:
主机 | 操作系统 | IP地址 | 组 |
---|---|---|---|
ansible管理端 | Centos7 | 192.168.72.128 | / |
ansible被管理端 | Centos7 | 192.168.72.155 | webserver |
ansible被管理端 | Centos7 | 192.168.72.156 | mysql |
1.现在管理端安装Apache,提取其配置文件作为模板:
* yum install -y httpd
* cp /etc/httpd/conf/httpd.conf /opt/httpd.conf.j2
2.修改HTTP配置文件模板:
* vim /opt/httpd.conf.j2
3.修改ansible的hosts文件
* vim /etc/ansible/hosts
4.编写一个剧本:
* vim /opt/httpd.yml
- hosts: webserver
remote_user: root
vars: #定义变量
- package: httpd
- server: httpd
tasks: #任务
- name: installed apache
yum: name={{package}} state=latest #调用变量
- name: copy httpd temp
template: src=/opt/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf #模板路径和目标路径
notify: #调用参数handlers
- restart httpd
- name: start httpd
service: name={{server}} enabled=true state=started
handlers: #被notify调用的参数
- name: restart httpd
service: name={{server}} state=restarted
5.执行ansible-play剧本:
6.被控制端检查:
标签:RoCE and 修改 定义 copy term 调用 多次 图片
原文地址:http://blog.51cto.com/13721050/2310799