type
status
date
slug
summary
tags
category
icon
password
编写和运行Ansible Playbook
Ansible Playbook 是一种用于自动化任务的工具,通过书写一系列任务(tasks)来实现系统配置、软件部署或其他 IT 操作的自动化。Playbook 使用 YAML 语法,结构化地定义每一步操作。
单任务Playbook 结构示例:
YAML 语法要点:
- 缩进:使用空格,推荐使用2个或4个空格来缩进。
- 空行:可以使用空行来提高可读性。
- 缩进规则:子项必须比父项缩进更多。
注意事项:
- 只能使用空格来缩进,不能使用制表符。
- 如果使用
vi
编辑器,可以在.vimrc
中配置以优化 YAML 文件的编写体验,例如:
多任务 Playbook 示例
关键点
- hosts: 指定要操作的目标主机。
- tasks: 定义要执行的多个任务。
- 顺序: 任务按顺序执行,依次创建用户、安装 nginx、复制配置文件。
要查找适合用于任务的模块,您可以按照以下步骤:
- Ansible 官方文档:
- 访问 Ansible 模块文档 来查看
ansible.builtin
模块集合。 - 模块按照用途分类,涵盖文件操作、包管理、用户管理等常见任务。
- 使用 ansible-navigator 查找模块:
- 启动
ansible-navigator
,然后键入:collections
,可以查看已安装的模块集合。 - 使用冒号
:
后跟模块行号,可以获取详细的模块文档,按Esc
键返回上一层列表。
- 使用命令行帮助:
- 使用
ansible-doc -l
可以列出所有可用模块。 - 使用
ansible-doc <模块名>
可以查看特定模块的文档,获取其参数和使用示例。
通过这些工具,您可以方便地查找和了解 Ansible 模块,并应用到您的任务中。
在 Ansible 中,有几个关键概念需要理解:
- Ansible Galaxy 和 Automation Hub:
- Ansible Galaxy: 是一个公开的集合库,提供社区发布的 Ansible 内容集合。网址为 Ansible Galaxy。
- Automation Hub: 是由企业内部管理的私有自动化内容库,可以通过 Red Hat Automation Hub 访问。
- FQCN (Fully Qualified Collection Name):
- 模块使用时的全称,格式为
collection_name.module_name
,例如ansible.builtin.copy
。 - 在 Playbook 中,可以省略
FQCN
,但为了避免冲突和提高可读性,推荐使用全称。
- Idempotency (幂等性):
- Ansible 的任务大多是幂等的,即重复运行相同任务不会改变系统状态。比如,如果文件已存在,使用
copy
模块将不会再次覆盖它。
这些概念帮助确保在使用 Ansible 时,任务具有可重复性和一致性。
1. 执行 Playbook
运行命令:
展示 Playbook 执行的详细结果。
2. Playbook 示例
- hosts:目标主机。
- tasks:安装
httpd
最新版本。
3. 执行结果
输出:
说明目标主机安装了最新的
httpd
。4. 小结
通过 Playbook 自动化执行软件安装任务,确保目标主机达到预期状态。
Ansible Navigator 输出详细程度与语法检查
1. 输出详细程度
使用
ansible-navigator run
时,可以通过 -v
选项设置输出详细程度,分为四个级别:选项 | 描述 |
-v | 显示任务结果。 |
-VV | 显示任务结果和任务配置。 |
-VVV | 显示关于受管主机连接情况的更多信息。 |
-VVVV | 增加连接插件的详细信息,包括执行脚本的用户及其命令。 |
2. 语法验证
使用以下命令检查 Playbook 语法:
如果语法有误,系统将返回错误信息,指明错误位置。
示例输出:
3. 执行空运行
使用
--check
选项进行空运行:此命令将检测 Playbook 的更改而不实际执行任何操作。
练习:
Ansible Playbook 示例及步骤:
Ansible Playbook 示例
步骤
- 语法检查:
- 运行 Playbook:
- 验证服务:
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/124d7ae8-88e2-80bf-ab42-c0ca01584892
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章