是否可以将角色导入ansible剧本?
我有很多剧本,其中大部分角色对所有服务器都是通用的。所以我想做一些类似的事情:是否可以将角色导入ansible剧本?,ansible,Ansible,我有很多剧本,其中大部分角色对所有服务器都是通用的。所以我想做一些类似的事情: --- - hosts: nfs2pre2 sudo: true gather_facts: no roles: - include: initial_setup.yml - { role: role10, tags: ['role10' ] } - { role: role11, tags: ['role11' ]
---
- hosts: nfs2pre2
sudo: true
gather_facts: no
roles:
- include: initial_setup.yml
- { role: role10, tags: ['role10' ] }
- { role: role11, tags: ['role11' ] }
- { role: role1, tags: ['role1' ] }
- { role: role2, tags: ['role2' ] }
初始设置.yml
类似于:
---
- hosts: nfs2pre2
sudo: true
gather_facts: no
roles:
- include: initial_setup.yml
- { role: role10, tags: ['role10' ] }
- { role: role11, tags: ['role11' ] }
- { role: role1, tags: ['role1' ] }
- { role: role2, tags: ['role2' ] }
可能吗 据我所知,这是不可能的,但有一个简单的解决办法。您可以创建一个仅依赖于其他角色的角色。按照您的示例,您可以创建一个角色
initial\u setup
,方法是创建一个目录roles/initial\u setup
,并在其中创建一个带有文件main.yml
的目录meta
:
# roles/initial_setup/meta/main.yml
---
dependencies:
- { role: 'role1', tags: 'role1' }
- { role: 'role2', tags: 'role2' }
现在,您可以将初始设置
用作任何常规角色:
- hosts: nfs2pre2
sudo: true
gather_facts: no
roles:
- { role: initial_setup, tags: ['initial_setup' ] }
- { role: role10, tags: ['role10' ] }
- { role: role11, tags: ['role11' ] }
你为什么不试试,告诉我们…我已经试过了,但我的测试都不起作用