是否可以将角色导入ansible playbook?

时间:2015-12-07 15:42:46

标签: ansible

我有一堆剧本,其中很大一部分角色对所有服务器都是通用的。所以我想做点什么:

    --- 
    - hosts: nfs2pre2
      sudo: true
      gather_facts: no
      roles:
        - include: initial_setup.yml
        - { role: role10, tags: ['role10' ] }
        - { role: role11, tags: ['role11' ] }

initial_setup.yml类似于:

     - { role: role1, tags: ['role1' ] }
     - { role: role2, tags: ['role2' ] }

有可能吗?

1 个答案:

答案 0 :(得分:0)

据我所知,这是不可能的,但有一个简单的解决方法。您可以创建一个仅依赖于其他角色的角色。要按照您的示例,您可以通过创建目录initial_setup来创建角色roles/initial_setup,并在其中创建一个带有文件meta的目录main.yml

# roles/initial_setup/meta/main.yml
---
dependencies:
  - { role: 'role1', tags: 'role1' }
  - { role: 'role2', tags: 'role2' }

现在您可以将initial_setup用作常规角色:

- hosts: nfs2pre2
  sudo: true
  gather_facts: no
  roles:
    - { role: initial_setup, tags: ['initial_setup' ] }
    - { role: role10, tags: ['role10' ] }
    - { role: role11, tags: ['role11' ] }