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_tasksimport_tasksimport_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 中,我们定义了 packageservice 作为变量,以便在不同场景中灵活使用不同的服务和软件包。

          步骤 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 服务器和防火墙规则。

          测试与验证

          1. 语法检查:在运行 playbook 前,执行以下命令检查语法:
            1. 运行 playbook:确认语法无误后,运行 playbook 来配置服务器和防火墙。
              1. 验证 Web 服务:访问 http://servera.lab.example.com 查看占位符文件,确保页面加载正常,且内容显示自定义的 FQDN 信息。
              1. 完成实验:确保所有任务运行成功后,您可以结束实验:

                总结

                通过这个 Ansible 实践操作,我们学习了如何使用不同的模块来配置服务器环境、设置防火墙规则、创建自定义文件,并最终验证配置结果。此流程能够帮助您快速部署和配置 Web 服务器,为生产环境中的自动化运维提供了参考。
                 
                相关文章
                RHCE 9版本考试资料
                Lazy loaded image
                40.总复习-4 实验手册:galaxy角色配置与部署
                Lazy loaded image
                39.总复习-3 实验手册:配置 RHEL 系统角色和用户管理
                Lazy loaded image
                38.总复习-2 实验手册:Ansible Web 服务器配置和测试
                Lazy loaded image
                37.总复习-1 实验手册:配置和运行Ansible脚本
                Lazy loaded image
                36:总复习
                Lazy loaded image
                20:管理复杂的Play和Playbook-3 开放实验18:管理复杂的Play和Playbook-1 利用主机模式选择主机
                Loading...
                みなみ
                みなみ
                一个普通的干饭人🍚
                最新发布
                02-生成AIパスポート試験対策:第2章「生成AI」
                2025-2-1
                01-生成AIパスポート試験対策:第1章「人口知能」
                2025-2-1
                究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
                2025-1-27
                不要再傻傻的直接买NISA啦
                2025-1-27
                Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
                2025-1-24
                529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
                2025-1-22
                公告
                🎉欢迎访问我的博客🎉
                - 感谢您的支持 --
                本站点于2024/09/01建立
                👏主要分享IT相关主题👏
                系统管理:
                Redhat…
                容器和编排:
                Kubernetes、Openshift…
                云计算:
                AWS、IBM…
                AI入门
                以及技术笔记和考证经验
                定期更新,欢迎互动。
                感谢访问!
                快速浏览相关标签