是否可以将角色导入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' ] }

你为什么不试试,告诉我们…我已经试过了,但我的测试都不起作用