目录
任务滚动更新
配置并行
包含和导入剧本
任务滚动更新
实现在多台被管理节点执行任务时,第一台的整个playbook执行完成后再在下一台主机执行任务;通过serial元素来实现
serial:1 表示一台一台执行playbook(serial也可以指定百分比)
--- - name: httpd hosts: web serial: 1 tasks: - name: install httpd yum: name: httpd state: present
配置并行
Ansible 的最大连接数默认由ansible.cfg文件中的forks参数控制
可以通过设置此参数实现每次并行的执行一个 play,所有主机第一个 play 执行完后,再执行下一个 play
vim ansible.cfg forks = 10 (最大可以并行10台主机)
包含和导入剧本
采用模块化方式将多个playbook组合为一个主要playbook可以更轻松的实现在不同项目中重复使用play
在ansible中的实现方法:include、import、role
include和import允许用户将大型剧本拆分为小的文件,这些文件可以在多个父级别剧本中使用,甚至可以在同一本playbook中多次使用
role不仅可以将任务打包在一起,还可以包含变量、处理程序、模块和其他插件,role也可以通过ansible galaxy上传和共享(可以通过role定义jinja2模板、handlers程序处理等)
Linux Ansible角色介绍_静下心来敲木鱼的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/130435661include和import
Import 静态操作:在解析剧本时,对所有import*语句进行处理(即在导入playbook时就执行playbook)
Include 动态操作:所有include*语句均在执行playbook的时候进行处理(即在执行playbook时执行其他的playbook)
实例-通过剧本引入的方式实现httpd服务的安装与启动
创建剧本安装httpd服务 vim httpd_install.ym --- - name: install httpd yum: name: httpd state: present 创建剧本启动httpd服务 vim httpd_service.yml --- - name: service httpd service: name: httpd state: started 创建剧本,导入上述两个剧本任务 vim httpd.yml --- - name: isntall and start httpd hosts: web tasks: - name: isntall(import way) import_tasks: httpd_install.yml - name: start(include way) include_tasks: httpd_service.yml 运行yml文件(执行include的文件时,会显示文件来源) ansible-playbook httpd.yml