2017-02-16 16 views
0

こんにちは私は私の前で働いていた以前のITスタッフから得た以下のタスク構造を持っています。実行可能なタスクが実行されるかどうか

- hosts: "{{env}}" 
    vars: 
    workspace: "{{ hostvars[localhost]['workspace'] }}" 
    post_build: false 
    tasks: 
- name: Delete log module folder on remote 
    file: blabla 
    state=absent 
    when: post_build 

- name: Copy login folder to remote 
    copy:src='blabla' 
    when: post_build 

タスクは実行されるかどうかを確認します。 post_build変数が最初にfalseに設定されているためです。しかし、タスクはpost_buildがtrueの場合にのみ実行されます。この場合、なぜその作業が必要なのでしょうか?

答えて

2

変数が演劇でのみ設定された場合、タスクは実行されません。

しかし、実行時に定義された値は、異なるレベルで変数を定義することでオーバーライドできます。たとえば、実行行のパラメータは--extra-varsです。

variable precedenceについて読んでください。

プレイブックの作者は、他の場所で明示的に指定された場合にのみタスクを実行することを望んでいる可能性があります。


のほか、すなわちAnsible表記(parameter=value)で、純粋なYAML(parameter: value)を混在させないでください、インデントと単一大会で決めるに注意を払ってください。

+0

クリア。ありがとうございました。 – GergA

関連する問題