2016-07-29 11 views
3

私はansibleバージョン2.1.0.0を使用していますし、私のコードの一部である:Ansible - 脚本:あなたの変数名のような無効な文字が含まれていないことを確認してください「 - 」

としてエラーを投げている
- shell: /etc/init.d/named restart 
    when: ('FAILED' not in zoneconfig.stdout) and ('neither' not in zoneconfig.stdout) and ('FAILED' not in echofail.stdout) and ('SUCCESSFUL' in echopass.stdout_lines) and ('SUCCESSFUL' in zoneconfig.stdout) 
    ignore_errors: True 
    register: namedrestart 
- debug: var=namedrestart.stdout_lines 
    when: ('FAILED' not in zoneconfig.stdout) and ('neither' not in zoneconfig.stdout) and ('FAILED' not in echofail.stdout) and ('SUCCESSFUL' in echopass.stdout_lines) and ('SUCCESSFUL' in zoneconfig.stdout) 
    ignore_errors: True 

- shell: /etc/init.d/named status 
    when: ('FAILED' not in zoneconfig.stdout) and ('neither' not in zoneconfig.stdout) and ('FAILED' not in echofail.stdout) and ('SUCCESSFUL' in echopass.stdout_lines) and ('SUCCESSFUL' in zoneconfig.stdout) 
    ignore_errors: True 
    register: namedstatus 
- debug: var=namedstatus.stdout_lines 
    when: ('FAILED' not in zoneconfig.stdout) and ('neither' not in zoneconfig.stdout) and ('FAILED' not in echofail.stdout) and ('SUCCESSFUL' in echopass.stdout_lines) and ('SUCCESSFUL' in zoneconfig.stdout) 
    ignore_errors: True 

TASK [debug] ******************************************************************* 
fatal: [10.139.73.152]: FAILED! => {"failed": true, "msg": "The conditional check '('FAILED' not in zoneconfig.stdout) and ('neither' not in zoneconfig.stdout) and ('FAILED' not in echofail.stdout) and ('SUCCESSFUL' in echopass.stdout_lines) and ('SUCCESSFUL' in zoneconfig.stdout)' failed. The error was: error while evaluating conditional (('FAILED' not in zoneconfig.stdout) and ('neither' not in zoneconfig.stdout) and ('FAILED' not in echofail.stdout) and ('SUCCESSFUL' in echopass.stdout_lines) and ('SUCCESSFUL' in zoneconfig.stdout)): Unable to look up a name or access an attribute in template string ({% if ('FAILED' not in zoneconfig.stdout) and ('neither' not in zoneconfig.stdout) and ('FAILED' not in echofail.stdout) and ('SUCCESSFUL' in echopass.stdout_lines) and ('SUCCESSFUL' in zoneconfig.stdout) %} True {% else %} False {% endif %}).\nMake sure your variable name does not contain invalid characters like '-': argument of type 'StrictUndefined' is not iterable\n\nThe error appears to have been in '/etc/ansible/named_configtest/configtest_named.yml': line 51, column 7, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n  register: namedrestart\n - debug: var=namedrestart.stdout_lines\n ^here\n"} 
...ignoring 

これは、紛らわしいエラーメッセージでこの問題

+0

は、テスト時に定義された 'when'文で使用されるすべての変数はありますか? –

答えて

2

を解決するためのいずれかの回避策がある場合は私に知らせてください - シンプルif 'abc' in mylist条件と私の場合、問題はJでしたmylistのvarが未定義であることを確認してください。関与VARSを表示するために、これらのような行追加

試してみてください。

- debug: var=zoneconfig 
- debug: var=zoneconfig.stdout 
関連する問題