1. playbook
playbook是ansible用于配置,部署,和管理被控节点的剧本。通过playbook的详细描述,执行其中的一系列tasks,可以让远端主机达到预期的状态。
1.1 编写和运行playbook
查看指定用户的临时命令
1.2 yaml介绍
yaml 格式通常以 yml 为扩展名,yaml 对于缩进量没有严格要求,但是有两个基本原则:
1.处于同一层次结构中同一级别的数据元素必须具有相同的缩进量’ 2.如果项目属于其他项目的子项,其缩进量必须大于父项
-
注:
临时命令查看用户的改playbook
play本身是一个键值对集合,同一play中的键应当使用相同的缩进量
1.3 安装 apache
1.4 确保服务开机启动
1.5 提高输出详细程度
ansible-playbook 默认输出不提供详细任务执行信息。
- -v 参数提供,共四个级别:
| -v | 显示任务结果 |
|---|---|
| -vv | 显示任务结果和任务配置 |
| -vvv | 包含关于与受管主机的连接信息 |
| -vvvv | 增加连接插件相关的额外详细程度选项(包括受管主机上用于执行脚本的用户及所 执行的脚本) |
1.5.1 执行空运行
空运行会报告执行这个 playbook 将会发生什么,但不会改变目标主机
1.6安装、配置默认发布页并启动 apache
1.6.1 检测语法
1.6.2 创建配置文件和清单
1.6.3 默认发布页面
1.6.4 执行 playbook
1.6.5 测试
2.多个 play
2.1 模板
| ansible-doc -l | 列出所有模块 |
|---|---|
| ansible-doc yum | 列出 yum 的用法和示例 |
| ansible-doc -s yum | 终端中输出 yum 模块中各参数的用法 |
2.2 PLAYBOOK 语法变化
yaml 注释
This is a YAML comment
some data # This is also a YAML comment
yaml字符串
this is a string
‘this is a string’
“this is a string”
2.3 实验
实验环境:
1.主机名称:serverb.lab.example.com
测试:
1.serverb.lab.example.com主机上开启火墙和保证没有http服务
2.主机名称为work执行playbook
3. 管理变量
3.1 ansible 变量简介
3.1.1 变量内容
要创建的用户
要安装的软件包
要重启的服务
要删除的文件
要从互联网检索的文档
3.1.2 命名变量
变量名称必须以字母开头,并且只能含有字母、数字和下划线
| 错误 | 正确 |
|---|---|
| web server | web_server |
| westos.file | remote_file |
| 1st file | file1 |
3.1.3 定义变量
三个范围级别
| 全局范围 | 从命令行或 ansible 配置设置的变量 |
|---|---|
| play 范围 | 在 play 和相关结构中设置的变量 |
| 主机范围 | 由清单、事实收集或注册的任务,在主机组和个别主机上设置的变量 |
如果多个级别上定义了相同名称的变量,优先采用级别最高的变量,窄范围优先于广范围’
3.2 playbook 中的变量
3.2.1 在 playbook 中定义变量
1.常见方式:
在 playbook 开头的 vars 块中:
2.在外部文件定义 playbook 变量
3.2.2在 playbook 中使用变量
将变量名称放在花括号内即可
-
注意:
当变量用作开始一个值的第一元素时,必须使用引号