Playbook组成部分
- tasks 任务:包含要在目标主机上执行的操作,使用模块定义这些操作。每个任务都是一个模块的调用。
- Variables 变量:存储和传递数据。变量可以自定义,可以在playbook当中定义全局变量,可以外部传参。
- Templates 模版:用于生成配置文件。模版是包含占位符的文件。占位符由ansible在执行时专换为变量值。
- Handlers 处理器 当需要有变更的时候,可以执行触发器。
- Roles 角色: 是一种组织和分装playbook的。允许吧相关的任务,变量,模板和处理器组成一个可复用的单元。
实例模版:
检查yum语法是否正确:
运行命令
检查有几个tasks
检查有几台运行
设置从哪一步开始表演 指定剧本演出
切换用户:没有root权限
切换用户命令
打开密钥对
指定用户
脚本二
字典方式:
获取 目标主机的IP地址,然后复制目标文件
Playbook的条件判断:
When 是一个比较常见的应用场景,实现满足条件即执行,不满足条件即跳过的任务。
When 是满足条件
循环:Ansible有多种循环格式,with_items
声明变量item,playbook的内置变量,with_items会把item的值,遍历列表当中的 a b c d 虽然我们声明的列表是两个,但是with_items还是把两个列表当成整体进行遍历。
With_list
组合输出
列表组循环,列表当中的值一一对应,打印出来。
列表里面的元素,定义了循环的次数,第二层列表,相当于内循环。
With_items 最常用的
With_list 列表分组循环
With_together 列表对应的列,数据结合的方式循环
With_nested 相当于双重循环,第一层定义了循环次数。第二次表示第一层的每个元素会循环几次。
基于循环,创建文件,目录, 和用户组