3.4. 使用 Ansible 角色捆绑内容


角色就像自定义的自动化内容一样,该角色将相关位从 playbook 中捆绑到一起,以满足您系统的特定需求。角色是自包含且可移植的,可以包含任务、变量、配置模板、处理程序和其他支持文件分组,以编排复杂的自动化流程。

您可以使用角色将任务划分为更小、更分散的工作单元,而不是创建具有数百个任务的大型 playbook。

要了解更多有关角色的信息,请参阅什么是 Ansible 角色,以及如何使用它?

3.4.1. 创建角色

您可以使用 Ansible Galaxy CLI 工具创建角色,该工具包含在 Ansible Automation Platform 捆绑包中。从 role 子命令访问角色特定命令:

ansible-galaxy role init <role_name>

支持集合之外的独立角色。在集合内创建新角色,以利用 Ansible Automation Platform 必须提供的功能。

流程

  1. 在终端中,前往集合中的 roles 目录。
  2. 在集合中创建一个名为 my_role 的角色:

    $ ansible-galaxy role init my_role

    这个集合现在在 roles 目录中包括一个名为 my_role 的角色,如下例所示:

    ~/.ansible/collections/ansible_collections/<my_namespace>/<my_collection_name>
        ...
        └── roles/
            └── my_role/
                ├── .travis.yml
                ├── README.md
                ├── defaults/
                │   └── main.yml
                ├── files/
                ├── handlers/
                │   └── main.yml
                ├── meta/
                │   └── main.yml
                ├── tasks/
                │   └── main.yml
                ├── templates/
                ├── tests/
                │   ├── inventory
                │   └── test.yml
                └── vars/
                    └── main.yml
  3. 可以使用-- role-skeleton 参数提供自定义角色 框架目录。这使得组织能够为新角色创建标准化模板,以满足其需求。

    $ ansible-galaxy role init my_role --role-skeleton ~/role_skeleton

    这会通过将 ~/role_skeleton 的内容复制到 my_role 来创建名为 my_role 的角色。role_skeleton 的内容可以是在角色目录中有效的任何文件或文件夹。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.