一、Ansible playbook
(1)定义:在控制端可以编写主机上的命令配置对多台受控端执行操作。
1、play是针对对清单中选定的主机运行一组有序任务。playbook是一个文本文件,其中包含有一个或者多 个按特定顺序运行的play组成的列表。
2、play可以让您将一系列冗长而复杂的手动管理任务转变为可轻松重复的例程,并且具有可预测的成果。 在playbook中,您可以将play内的任务序列保存为人类可读并可立即运行的形式。根据任务的编写方 式,任务本身记录了部署应用或者架构所需的步骤。
(2)yaml标记语言:YAML是一个可读性高的用来表达资料序列的格式。
1、YAML语言特性
-YAML可读性好
-YAML和脚本的可读性好
-YAML使用实现语言的数据类型
-YAML有一个一致的信息
-YAML易于实现
-YAML可以基于流来处理
-YAML表达能力强扩展性好
2、YAML语法格式
YAML的扩展名通常为 yaml或者yml
--playbook使用yaml语法格式,后缀可以是yaml,也可以是yml。
--在单一一个playbook文件中,可以连续三个连子号(—)区分多个play。还有选择性的连续三个点好(…)用来表示play的结尾,也可省略。
--次行开始正常写playbook的内容,一般都会写上描述该playbook的功能。
使用#号注释代码。
--缩进必须统一,不能空格和tab混用。
--缩进的级别也必须是一致的,同样的缩进代表同样的级别,程序判别配置的级别是通过缩进结合换行实现的。
--YAML文件内容和Linux系统大小写判断方式保持一致,是区分大小写的,k/v的值均需大小写敏感
多个key/value可同行写也可换行写,同行使用,分隔
--------------注意:只有空格字符作为缩进不能用制表符,如果您使用vi编辑器可以在$HOME/.vimrc文件中添加一下行以便 更轻松的编辑playbook,以下配置实现的是在按下Tab键是执行一个双空格缩进,并在换行后自动缩进后续行。
在 vim /etc/vimrc 可以设置将Tab永久缩进两空格
二、变量
(1)变量命名:变量名称必须是以字母开头,并且只能含有字母、数字和下划线。
(2)变量优先级
命令行定义变量> YAML文件中变量(vars_files>vars)>主机清单中单独定义主机变量> 主机清单组变量
(3)命令行引用
通过命令行引用后执行成功
(4)引用playbook中的变量
(5)playbook中导入变量文件vars_files
创建一个变量文件
注意:这里的格式也要按照YAML编写
三、练习
1.按照要求定义以下变量。(可以在多个位置下定义实现相应操作即可) | 变量名 | 值 | | --------- | ------- | | file_name | newfile | | user_name | devops | | pk_name | httpd | 2.编写任务模块在node1和node2主机中根据以上变量值创建对应文本文件以及用户名和安装软件包。
(1)创建变量文件
(2)编写playbook
(3)执行命令结果如下