Ansible 如何禁用收集未包含在给定标记中的子显示的事实
我的一些剧本有如下子剧本结构:Ansible 如何禁用收集未包含在给定标记中的子显示的事实,ansible,ansible-playbook,ansible-2.x,Ansible,Ansible Playbook,Ansible 2.x,我的一些剧本有如下子剧本结构: - hosts: sites user: root tags: - configuration tasks: (...) - hosts: sites user: root tags: - db tasks: (...) - hosts: sites user: "{{ site_vars.user }}" tags: - app tasks: (...) 在Ansible 1.x中,管
- hosts: sites
user: root
tags:
- configuration
tasks:
(...)
- hosts: sites
user: root
tags:
- db
tasks:
(...)
- hosts: sites
user: "{{ site_vars.user }}"
tags:
- app
tasks:
(...)
在Ansible 1.x中,管理员和开发人员都能够使用这样的剧本。管理员可以使用所有标记(根和用户访问)运行它,而开发人员只能使用用户访问级别的任务访问最后一个标记。当开发人员使用app标记运行此playbook时,前两个标记跳过了收集事实。然而,现在在Ansible 2.1中,它没有被跳过,这会导致没有根访问权限的用户失败
是否有一种机制或简单的修改来修复这种行为?现在是否有一种新的方法可以应用于此类情况?有一个简单的模块-关闭事实收集并明确调用
设置程序:
- hosts: sites
user: root
tags:
- configuration
gather_facts: no
tasks:
- setup:
(...)
肮脏的解决办法,但既然没有更好的办法,我会接受这一回答。这是一个很好的解决办法。实际上,在pre_task
中添加setup
任务对于基于角色的部署不起作用。如果这样做行得通,那么从main.yml管理gather_facts将非常困难