私のプレイブックのいくつかには、次のようなサブプレイ構造があります。
- 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タグを使用してこのプレイブックを実行すると、最初の2つのタグのファクトの収集がスキップされました。ただし、現在、Ansible 2.1ではスキップされないため、rootアクセスのないユーザーに障害が発生します。
この動作を修正するメカニズムまたは簡単な変更はありますか?そのような場合に現在適用すべき新しいアプローチはありますか?
簡単なmodがあります。事実の収集をオフにし、setup
を明示的に呼び出します。
- hosts: sites
user: root
tags:
- configuration
gather_facts: no
tasks:
- setup:
(...)