先放个链接,万一有人关注呢
↓ ↓ ↓ ↓ ↓
书接上回:Ansible自动化运维工具6.0:YAML实战案例
playbook
清理当前环境,将被管理节点中原有的Apache进行删除
ansible host1 -m yum -a 'name=httpd state=removed' -o在管理节点中安装Apache,以便获取Apache服务的配置文件
yum -y install httpd创建一个用于放置Apache服务的配置文件的目录
[][][][]httpd.conf
将配置文件中的端口号进行修改
[]...Listen 8080...
这里将Apache配置文件中的端口号修改为了8080。
编辑一个简单的playbook文件
[root@ansible apache]# cat apache.yaml- hosts: host4tasks:- name: install apache packagesyum: name=httpd state=present- name: copy apache confcopy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf- name: ensure apache is runningservice: name=httpd state=started enabled=yes
上述内容大致为安装Apache并将管理节点中的配置文件复制过去,再启动服务器。
在执行playbook之前可以对文件进行测试,首先测试文件语法是否有误
ansible-playbook apache.yaml --syntax-check如果无误,输出如下
playbook: apache.yaml查看playbook中所包含的任务
ansible-playbook apache.yaml --list-tasks输出如下
playbook: apache.yamlplay #1 (host4): host4 TAGS: []tasks:install apache packages TAGS: []copy apache conf TAGS: []ensure apache is running TAGS: []
查看执行任务是主机有哪些
ansible-playbook apache.yaml --list-hosts输出如下
playbook: apache.yamlplay #1 (host4): host4 TAGS: []pattern: [u'host4']hosts (1):host4
执行playbook
ansible-playbook apache.yaml执行成功后,访问被控制节点的8080端口是可以访问到Apache主页的。
handlers
下面讲handlers的用法。
修改管理节点中的Apache配置文件,把端口号修改为8000,并再次执行playbook。
再次执行playbook的目的是将刚刚修改的配置文件发送到被管理节点中,使被管理节点能够按照配置文件的内容运行服务。
但是此时Apache是无法被访问的。这是因为被控制节点没有读取更新后的配置文件。
重新创建一个playbook,使被管理节点能够读取新的配置文件
- hosts: host4tasks:- name: install apache packagesyum: name=httpd state=present- name: copy apache confcopy: src=./httpd.conf dest=/etc/httpd/conf/httpd.confnotify: restart apache service- name: ensure apache is runningservice: name=httpd state=started enabled=yeshandlers:- name: restart apache serviceservice: name=httpd state=restarted
这里handlers中的任务是重新启动Apache服务(读取配置文件),而notify中则是指定了handlers任务的名称。当管理节点复制新的配置文件到被管理节点时,将触发handlers,即读取配置文件。
再次执行playbook,执行之后Apache就可以访问了。
当再次修改服务配置时,只需要将管理节点中的配置文件进行修改,再执行一次playbook即可。
来不及解释了,快上车!(进群看公告)

欢迎新的小伙伴加入!在这里,我们鼓励大家积极参与群内讨论和交流,分享自己的见解和经验,一起学习和成长。同时,也欢迎大家提出问题和建议,让我们不断改进和完善这个平台。
↓↓↓ 点个在看,无需赞赏!
原文作者:运维book思议;如有侵权,请联系管理员删除。