Stderrが空でないことをテストするにはどうすればよいですか::
- name: Check script
Shell: . {{ venv_name }}/bin/activate && myscritp.py
args:
chdir: "{{ home }}"
Sudo_user: "{{ user }}"
register: test_myscript
- debug: msg='myscritp is Ok'
when: not test_myscript.stderr
エラーがなければ、私は読むことができました::
TASK: [deploy | debug msg='critp is Ok] *******
ok: [vagrant] => {
"msg": "myscritp is Ok"
}
Stderrが空でない場合、FATAl
エラーが発生します。
空の文字列を確認できます(stderrが空の場合)
- name: Check script
Shell: . {{ venv_name }}/bin/activate && myscritp.py
args:
chdir: "{{ home }}"
Sudo_user: "{{ user }}"
register: test_myscript
- debug: msg='myscritp is Ok'
when: test_myscript.stderr == ""
失敗を確認する場合:
- debug: msg='myscritp has error: {{test_myscript.stderr}}'
when: test_myscript.stderr != ""
これも見てください stackoverflow question
Ansible-lint デフォルトルール を参照してください。以下の条件により、 E602空の文字列と比較しない
when: test_myscript.stderr != ""
正しい構文と「Ansible Galaxy Warning-Free」オプションも
when: test_myscript.stderr | length > 0
追加1。 現在のルールによると :
つかいます
when: var
のではなくwhen: var != ""
(または ''逆にwhen: not var
ではなく `` when:var == "" `