ansible角色的常见用例

Common use case of ansible roles

我刚刚初始化了 ansible 项目,不确定哪种方法更适合创建 ansible 角色。 我应该为每个角色创建一个用例吗?或者最好在一个角色中创建多个用例。

例如,我有多个角色代表同一上下文 (VPN) 中的每个用例(安装,add_client)。

- roles
  - vpn_install
    - tasks
      - main.yml
  - vpn_add_client
     - tasks
       - main.yml
      

或者我有这个角色目录,其中包含多个用户案例(安装、添加客户端),并将在 main.yml 中导入。每个用例将由标签分隔。所以我可以 运行 仅通过指定标签来单独

- roles
  - vpn
    - tasks
      - main.yml
      - installation
        - install.yml
      - add_vpn_client
        - add-vpn-client.yml

      

哪个更适合长期项目(项目规模会随着时间的推移而增加)或者哪个最常用?

根据定义

Roles let you automatically load related vars_files, tasks, handlers, and other Ansible artifacts based on a known file structure. Once you group your content in roles, you can easily reuse them and share them with other users.

您可以通过您拥有的每个用例定义一个角色,当您以这种方式拥有时,您可以重用它并共享它。如果您使用具有多个剧本的角色并使用标签来执行您需要的用例它不会加班维护或者会非常困难。根据我的经验,每个用例都有一个角色,它可以让您更轻松地进行更改。

在此 link 中,您可以找到管理角色的最佳实践。

https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html