问题描述
我只是初始化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