ansible - 如何只运行 Ansible 剧本的一个角色?

标签 ansible ansible-2.x ansible-role

我有一个 site.yml,它导入了几个剧本。

- import_playbook: webservers.yml
- ....

每个剧本都“调用”了几个角色:
- name: apply the webserver configuration 
  hosts: webservers

  roles:
  - javajdk
  - tomcat
  - apache

如何只运行 javajdk 角色?

这将运行所有角色......ansible-playbook -i inventory webservers.yml
我知道有标签 ,但我如何将它们分配给一般的角色?

最佳答案

标签是很自然的方式。为以下角色指定它们的三种方法:

- name: apply the webserver configuration 
  hosts: webservers

  roles:
    - role: javajdk
      tags: java_tag
    - { role: tomcat,  tags: tomcat_tag }

  tasks:
    - include_role:
        name: apache
      tags: apache_tag

您可以明确指定要运行的标签:
ansible-playbook example.yml --tags "java_tag"

Reference to docs

关于ansible - 如何只运行 Ansible 剧本的一个角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47414988/

相关文章:

ansible - 剧本检查

linux - 使用 Ansible CLI/Ad-Hoc 注册变量输出

ansible - “dict对象”没有属性 'stdout_lines'

ansible - 在ansible中,有没有办法注册角色的结果?

Ansible 项目 when 子句抛出错误 : Unable to look up a name or access an attribute in template string

mysql - Ansible设置root用户密码

ansible - 在 Ansible 中如果没有 sudo 则无法 ping 主机

ansible - 如何将 ansible 角色的 `defaults/main.yml` 文件拆分为多个文件?

Ansible 与通配符同步