什么是playbook
playbook是以 YAML 文件作为载体
playbook可以描述多个任务的集合
playbook使目标主机按照既定顺序执行任务以达到期望状态
通过ansible-playbook命令执行
什么是YAML语言
playbook是一种人性化的数据格式定义语言
playbook具有:结构感强、可读性好、通用的数据穿行化格式
语法要求:
以 '---' 作为起始句
大小写敏感
使用缩进表示层级关系(一般用2个空格表示缩进)
缩进是不允许使用tab键,只许使用空格
缩进的空格数目不重要,相同层级的元素左侧对齐即可
示例图:
示例图讲解
对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes)/ 字典(dictionary)
在python中的表示:
数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
在python中的表示:
纯量(scalars):单个的、 不可再分的值
在python中的表示:
{"tasks":["name":"Install","yum":"yum...",{"name":"copy","copy":"copy..."}]}
play组成部分:
Target Section:定义将要执行playbook的远程主机组及属性
Variable Section:定义playbook运行时需要使用的变量
Task Section:定义将要在远程主机上执行的任务列表
Target Section
hosts:定义远程的主机组
remote_user:执行该任务组的用户
sudo:如果设置为yes,以sudo权限执行命令
gather_facts:默认收集setup模块传递来的变量,可禁止
Variable Section
vars:直接写入对象形式的变量名及其值
vars_files:引入变量所在的文件
Task Section
由任务组成的列表,其中包含任务名,模块以及模块参数
系统变量
setup模块(默认gather_facts = yes)
自动变量
Inventory文件
Playbook文件
变量文件
引用变量方式:{{ var }} 双大括号示例
运行Playbook方式
YAML语法有3中检查方式:
python命令
领取专属 10元无门槛券
私享最新 技术干货