Playbook 快速入门
Playbook 简介
- Playbooks是Ansible的配置,部署和编排语言。
- 他们可以描述您希望在远程机器做哪些事或者描述IT流程中一系列步骤。
- 使用易读的YAML格式组织Playbook文件。
- 如果Ansible模块是您工作中的工具,那么Playbook就是您的使用说明书,而您的主机资产文件就是您的原材料。
- 与adhoc任务执行模式相比,Playbooks使用ansible是一种完全不同的方式,并且功能特别强大。
1 | # 官方文档: |
简单示例
1 | # 卸载掉之前安装的nginx |
1 | # 创建 playbook 目录 |
1 | [root@master playbook]# vim install_nginx.yaml |
1 | # 测试执行 |
1 | # 客户端验证 |
常用定义
主机和主机组
1 | # work 普通用户 |
定义变量
- 变量是应用于多个主机的便捷方式
- 实际在主机执行之前,变量会对每个主机添加,然后在执行中引用。
命令行传递
1 | # -e VAR=VALUE 传递参数 |
主机变量与组变量
1 | # 在Inventory中定义变量 |
单文件存储变量
1 | 1. Ansible中的首选做法是不将变量存储在Inventory中。 |
1 | # 所有主机有效 |
1 | # 主机组有效,文件名要与主机组一致 |
在Playbook中定义
1 | - hosts: web |
1 | [root@master playbook]# vim install_nginx.yaml |
Register变量
1 | # 将命令的结果保存成一个变量 |
1 | [root@master playbook]# vim install_nginx.yaml |
1 | # 相当于将执行结果显示 |
任务列表
- 每个playbook包含一系列任务。这些任务按照顺序执行。
- 在playbook中,所有主机都会执行相同的任务指令。playbook目的是将选择的主机映射到任务。
1 | [root@master playbook]# vim show.yaml |
语法检查与调试
1 | # 测试运行,不实际操作: |
1 | [root@master playbook]# vim show.yaml |
1 | [root@master playbook]# ansible-playbook -C show.yaml |
任务控制
- 如果你有一个大的剧本,那么能够在不运行整个剧本的情况下运行特定部分。
- 使用tags标记
- 让程序按照阶段部署
1 | [root@master playbook]# vim show.yaml |
流程控制
条件 when
1 | [root@master playbook]# vim when.yaml |
循环
- 常用循环语句
1 | [root@master playbook]# vim create_file.yaml |
1 | [root@master tmp]# touch {a,b,c}.html |
模板 template
1 | # template 调用jinjia模板 并copy文件 |
条件 和 循环
1 | [root@master config]# vim nginx.conf |