角色角色的常见用例

问题描述

我只是初始化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

      

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

解决方法

按定义

角色使您可以基于已知的文件结构自动加载相关的vars_files,任务,处理程序和其他Ansible工件。将您的内容按角色分组后,就可以轻松地重复使用它们并与其他用户共享。

您可以根据每个用例定义一个角色,以这种方式使用时,您可以重用并共享它。如果您将角色与多个剧本一起使用,并使用标签执行用例,则您需要的将无法维持加班,否则将非常困难。以我的经验,在每个用例中发挥作用都可以使您可以轻松进行更改。

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

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