ITPub博客

首页 > 数据库 > 数据库开发技术 > Ansible自动化运维工具7.0:playbook实践应用

Ansible自动化运维工具7.0:playbook实践应用

原创 数据库开发技术 作者:运维book思议 时间:2023-10-06 18:00:00 0 删除 编辑

先放个链接,万一有人关注呢

优质文章推荐

↓ ↓ ↓ ↓ ↓

Ansible自动化运维工具1.0:核心组件

Linux系统服务巡检脚本

Python脚本实现Zabbix自动微信告警

不会吧!Linux系统磁盘分区只会fdisk吗?

Linux系统不优化的后果有多严重?


书接上回:Ansible自动化运维工具6.0:YAML实战案例

playbook

清理当前环境,将被管理节点中原有的Apache进行删除

ansible host1 -m yum -a 'name=httpd state=removed' -o

在管理节点中安装Apache,以便获取Apache服务的配置文件

yum -y install httpd

创建一个用于放置Apache服务的配置文件的目录

#创建目录[root@ansible ~]# mkdir apache#进入目录[root@ansible ~]# cd apache/#将配置文件复制到当前路径[root@ansible apache]# cp -rf /etc/httpd/conf/httpd.conf .[root@ansible apache]# lshttpd.conf

将配置文件中的端口号进行修改

[root@ansible apache]# cat httpd.conf...Listen 8080...

这里将Apache配置文件中的端口号修改为了8080。

编辑一个简单的playbook文件

[root@ansible apache]# cat apache.yaml - hosts: host4  tasks:  - name: install apache packages    yum: name=httpd state=present  - name: copy apache conf    copy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf  - name: ensure apache is running    service: 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思议;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-09-24

  • 博文量
    333
  • 访问量
    215273