2016-09-19 4 views
0

は、私が「check_mode」オプションの「vars_prompt」を設定しています(http://docs.ansible.com/ansible/playbooks_checkmode.htmlドキュメントが言及したように)「はい」と「いいえ」を使用し、私はこのエラーを取得:Ansibleプロンプトとcheck_mode

The conditional check 'check_mode' failed. The error was: error 
while evaluating conditional (check_mode): 'no' is undefined 

は、このドキュメントでは、または私はcheck_mode変数を使用している方にはでのエラーです句? true/yesとfalse/noが自動的に処理されたのは私の印象でした。

答えて

0

私は過去6ヶ月間Anabilitiesと仕事をした後、再び自分の質問に出くわしましたが、今回は自分の答えがあります。

「はい」と「いいえ」の文字列は、Anipalによって真偽のブール値に自動的に変換されないという問題があります。変換を強制しない使用する "|ブール値" は、このようなフィルタ:

tasks: 
- debug: msg="False test | {{ check_mode }}" 
    when: not check_mode|bool 

- debug: msg="True test | {{ check_mode }}" 
    when: check_mode|bool 
+1

具体的には:| Y |はい|はい| YES | N | N | 'YES/no'等(' Yを全く| NO | NO | TRUE | TRUE | FALSE | FALSE | ON | ON | OFF | OFF | OFF})は、YAMLプロセッサによって「変換」される。 –

+0

@dan_linder残念なことに、このテクニックでは、基礎となる変数 'check_mode'がbool型ではないため、どこでも' | bool'を使ってコードを汚染させてしまいます。 – Alkaline