type
Post
status
Published
date
Oct 27, 2024
slug
summary
tags
RHCE
Redhat
学習ノート
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 服务器,为生产环境中的自动化运维提供了参考。
                 
                18:管理复杂的Play和Playbook-1 利用主机模式选择主机13:实施任务控制-3 管理Play中的任务错误
                Loading...
                minami
                minami
                みなみの成長 🐝
                Announcement

                🎉 ブログへようこそ 🎉

                名前: みなみ一人会社
                性別:
                国籍: China 🇨🇳
                政治スタンス: 民主主義支持者
                完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
                現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
                独学で合格できる学習法や勉強法、試験対策を発信中!

                📚 発信内容

                • 💻 IT・システム開発
                • 🏠 不動産 × 宅建士
                • 🎓 MBA 学習記録