Linux Ansible导入剧本、任务滚动执行、任务并行执行

目录

任务滚动更新

配置并行

包含和导入剧本


任务滚动更新

实现在多台被管理节点执行任务时,第一台的整个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

猜你喜欢

转载自blog.csdn.net/m0_49864110/article/details/130447420