目录
基本语法
大小写
缩进
键值对
列表
字典
注释符
变量
全局变量
剧本变量
剧本中定义
通过vars_files引用
资产变量,hosts文件中的内置变量
facts变量
注册变量
变量优先级
任务控制
判断
循环
Tags属性
Handers属性
jinja2模版
基础语法
判断
循环
yaml语言是一种常用于配置文件和数据序列化的数据序列化格式。它简洁、易读,并且易于人类和计算机编写。
大小写
YAML是大小写敏感的,例如, 和 是不同的。
缩进
YAML使用缩进表示数据层次结构,通常使用两个空格进行缩进。不能使用制表符(Tab)进行缩进。
键值对
YAML中的键值对使用冒号(:)分隔,并且冒号后面需要有一个空格。
列表
列表项使用破折号(-)开始,并且列表项之间用空行或同一个缩进级别的其他项分隔。
字典
键值对可以嵌套,形成嵌套的字典结构。
注释符为#
文件以.yml或者.yaml结尾
文件以---开头文件以...结尾
校验与执行
文件校验语法
文件使用语法
全局变量
在执行playbook时引入变量
使用语法 -e
剧本变量
剧本中定义
通过vars_files引用
被引用文件vars.yaml:
使用user.yaml文件引用
运行
资产变量,hosts文件中的内置变量
hosts文件中定义变量:
在vars.yaml中使用变量:
facts变量
查看facts变量的语法:
在剧本中每次默认查询facts变量,浪费剧本执行时间,可以使用以下语句在不需要使用facts变量时关闭此选项
注册变量
使用register实现注册变量的使用,使用debug进行输出注册变量的数值,也可以使用when来进行判断,为剧本增加一定逻辑
判断用户Apple是否存在,不存在进行创建
变量优先级
全局变量>剧本变量>资产变量
判断
常用条件:
相等
判断文件file.sh是否存在,存在展示其内容,不存在则进行复制(主机上应有file.sh文件)
循环
使用loop对变量进行循环,然后进行操作,使得剧本编写更为简介
循环创建vars.yml中的用户
vars.yml文件
user.yml文件
Tags属性
使用tag属性对任务进行标记,可以选择性的执行剧本中的任务
用户创建文件
使用:
Handers属性
与notify搭配使用,用于执行特殊任务
基础语法
文件以.j2结尾
注释:{# #}
变量引用:{{ }}
逻辑表达:{% %}
判断
{%if idc is defined%}
{{idc}}
{%endif%}
循环
{%for host in groups['dbservers']%}
{host}
{%endfor%}