type
status
date
slug
summary
tags
category
icon
password
1. 管理大型 Playbook
大型 Playbook 可以分割成更小的文件,以便于管理。可以将多个 Playbook 组合到一个主 Playbook 中,或在 Playbook 中插入文件的任务列表,从而实现任务的重用。
2. 导入与包含
Ansible 支持两种将内容插入 Playbook 的方式:
- 包含 (
include
):动态操作,在 Playbook 运行期间即时处理。
- 导入 (
import
):静态操作,在 Playbook 初始解析时预处理导入的内容。
3. 导入 Playbook
- 使用
import_playbook
指令将其他 Playbook 文件导入主 Playbook,仅能在 Playbook 顶层使用。
- 示例:
4. 导入与包含任务文件
- 导入任务文件 (
import_tasks
):静态导入,解析 Playbook 时即插入。 - 示例:
- 包含任务文件 (
include_tasks
):动态导入,Play 运行到指定位置时插入。 - 示例:
5. 条件使用的区别
- 对于
import_*
指令中的条件,条件将应用于所有导入的任务。
- 对于
include_*
指令,条件应用于包含的任务本身,控制包含是否发生。
6. 任务文件的用例
- 按任务类型(例如创建用户、安装软件包等)分割文件。
- 为不同管理角色(如开发人员、系统管理员)分割文件。
- 条件导入/包含任务文件,以满足特定服务器需求。
7. 使用目录管理任务文件
为任务文件创建专用目录,并从中包含或导入文件,有助于简化 Playbook 的结构。
8. 为外部文件定义变量
- 可以将变量传递给任务文件,以增强其重用性。
- 例如,通用化 HTTPD 安装的任务文件: 在 Playbook 中传递变量:
9. 注意事项
早期版本的
include
包含 Playbook 和任务文件,后在 Ansible 2.4 中更换为 include_tasks
、import_tasks
和 import_playbook
。练习:
Ansible 实操教程:配置 Web 服务器及防火墙
在本教程中,我们将通过 Ansible 配置 Web 服务器、设置防火墙规则、创建占位符文件,并对配置进行测试。以下步骤将逐步指导您如何编写任务文件和 playbook 来实现自动化的 Web 服务器配置。
目录结构与准备工作
首先,在项目目录
~/projects-file
下创建以下任务文件:tasks/environment.yml
- 用于安装和启动 Web 服务器
tasks/firewall.yml
- 用于配置防火墙和开放端口
tasks/placeholder.yml
- 用于创建占位符文件
test.yml
- 用于测试 Web 服务器的连接
步骤 1:环境配置任务 - tasks/environment.yml
该文件用于安装 Web 服务器(如
httpd
)并启动相关服务。使用 Ansible 的 dnf
模块和 service
模块完成包管理和服务控制。在
environment.yml
中,我们定义了 package
和 service
作为变量,以便在不同场景中灵活使用不同的服务和软件包。步骤 2:防火墙配置任务 - tasks/firewall.yml
防火墙配置文件用于安装和启动防火墙服务(如
firewalld
),并开放指定端口(如 HTTP 和 HTTPS)。步骤 3:占位符文件任务 - tasks/placeholder.yml
创建一个 HTML 文件,包含服务器的 FQDN 信息,用于测试 Web 服务器配置是否成功。
步骤 4:测试任务文件 - test.yml
用于测试 Web 服务器的连接,确保配置成功后可以访问 Web 页面。
步骤 5:编写主 Playbook - playbook.yml
编写主 Playbook 并包含前面编写的任务文件,同时设置变量值以配置 Web 服务器和防火墙规则。
测试与验证
- 语法检查:在运行 playbook 前,执行以下命令检查语法:
- 运行 playbook:确认语法无误后,运行 playbook 来配置服务器和防火墙。
- 验证 Web 服务:访问
http://servera.lab.example.com
查看占位符文件,确保页面加载正常,且内容显示自定义的 FQDN 信息。
- 完成实验:确保所有任务运行成功后,您可以结束实验:
总结
通过这个 Ansible 实践操作,我们学习了如何使用不同的模块来配置服务器环境、设置防火墙规则、创建自定义文件,并最终验证配置结果。此流程能够帮助您快速部署和配置 Web 服务器,为生产环境中的自动化运维提供了参考。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/12cd7ae8-88e2-8040-aaf4-f86004e7dcab
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章