私はansibleプレイブックにコマンドがあります:
- name: extract the tarball
command: tar --ignore-command-error -xvkf release.tar
一部のファイルは既に存在するため抽出されないことが予想されます(-k
国旗)。
ただし、これにより、tar抽出からのエラーコードがあるため、プレイブック全体を確実に停止できます。
どうすればこれを回避できますか?ご覧のとおり、私は--ignore-command-error
無駄に。
ignore_errors
引数を使用します。
- name: extract the tarball
command: tar --ignore-command-error -xvkf release.tar
ignore_errors: yes
エラー処理のドキュメントページの "失敗したコマンドを無視" を参照してください。
ignore_errors
は、何らかの方法で成功を検出できる場合に最適に機能します。出力をregister
して確認するか、creates
を使用して特定のファイル名を探すことができます。
ignore_errors: yes
でも、プロンプトで失敗したタスクを示すエラーが発生します。そのタスクを静かに失敗させたい場合は、failed_when: false
または manual で説明されているようなより洗練された条件:
- name: this command prints FAILED when it fails
command: /usr/bin/example-command -x -y -z
register: command_result
failed_when: "'FAILED' in command_result.stderr"
したがって、stderr
の出力を検索できます。ファイルが読めない、存在しないなどの場合でも失敗したいかもしれませんが、アーカイブが壊れていて抽出できない場合は失敗しないでください。