2017-10-05 3 views
1

でimport_playbookスキップ私は以下のようなmain.yamlを持っている:Ansibleは、変数定義

 
- import_playbook: 1.yaml 

- import_playbook: 2.yaml 
    vars: 
    allow2: False 
    when: allow2 

私は脚本の2.yamlは(2.yaml内部のいずれかのタスクを実行しようとしない)完全にスキップすることができますしたいです。 しかし、2.yamlのすべてのタスクは呼び出されますが、実行されません。

ファイル1.yaml

 
- name: Go1 
    hosts: test 
    gather_facts: false 

    tasks: 
    - debug: msg="Message from 1.yaml" 

ファイル2.yaml

 
- name: Go2 
    hosts: test 
    gather_facts: false 
    tasks: 
    - debug: msg="Message from 2.yaml" 

出力は次のとおりです。

 
$ ansible-playbook main.yaml 

PLAY [Go1] *********** 
TASK [debug] ********* 
Thursday 05 October 2017 03:10:12 -0400 (0:00:00.116)  0:00:00.116 ****** 
ok: [test1] => {} 

MSG: 

Message from 1.yaml 


PLAY [Go2] ************ 

TASK [debug] ************ 
Thursday 05 October 2017 03:10:12 -0400 (0:00:00.090)  0:00:00.206 ****** 
skipping: [test1] 

あなたは2.yamlでタスクも呼ばれていたと言うことができますしかし、スキップしました。 しかし、私は2.yamlで呼び出されるタスクはありません。

可能ですか?

答えて

1

いいえ、これはできません。

回答はserverfault約import/include differenceです。

import_playbookは静的なので、常に実行され、内部にはすべてwhenステートメントが添付されています。

関連する問題