Ansible 跳过带有变量定义的 import_playbook

Bo *_*ang 5 ansible

我有一个main.yaml喜欢下面的:

- import_playbook: 1.yaml
    
- import_playbook: 2.yaml
  变量:
    允许2:错误 
  时间:允许2

我希望2.yaml可以完全跳过剧本(不要尝试在里面执行任何任务2.yaml)。但看起来所有任务都2.yaml将被调用但不会执行。

文件1.yaml

- 名称:Go1
  主持人:测试
  收集事实:假 

  任务:
    - 调试:msg="来自 1.yaml 的消息"

文件2.yaml

- 名称:Go2
  主持人:测试
  收集事实:假 
  任务:
    - 调试:msg="来自 2.yaml 的消息"

输出是:

$ ansible-playbook main.yaml 

播放 [Go1] ***********
任务 [调试] *********
2017 年 10 月 5 日星期四 03:10:12 -0400 (0:00:00.116) 0:00:00.116 ****** 
好的:[test1] => {}

味精:

来自 1.yaml 的消息


播放 [Go2] ************

任务 [调试] ************
2017 年 10 月 5 日星期四 03:10:12 -0400 (0:00:00.090) 0:00:00.206 ****** 
跳过:[test1]

您可以说中的任务2.yaml也被调用但被跳过了。但我不希望任何任务被调用2.yaml

是否可以?

Kon*_*rov 7

不,这样是不可能的。

请参阅 serverfault 关于导入/包含差异的答案。

import_playbook是静态的,所以它总是完成并且when语句附加到其中的所有内容。