LinuCレベル2 システムの保守と運用管理 問40
システムの保守と運用管理/システム構成ツールAnsibleで、対象ホストに実際の変更を加えずに、Playbookを実行した場合にどのタスクが変更を生じるかを事前に確かめたい。ansible-playbookに付けるオプションとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムの保守と運用管理」に対応。実際の試験問題ではありません)
- A--syntax-check
- B--list-hosts
- C--diff
- D--check
正解:D
解説
ansible-playbook の --check はチェックモードで実行するオプションで、対象ホストへ変更を加えずに、各タスクが変更を生じるかどうかを予測して表示します。--diff と組み合わせると、ファイルやテンプレートの変更内容も差分として確認できます。ただし、チェックモードに対応していないタスク(command モジュールや、前のタスクの結果に依存するタスクなど)では正確に予測できないことがあり、また check_mode: false を明示したタスクは --check を付けても通常どおり実行され、実際に変更を加え得ます。そのため『どの Playbook でも一切変更しない』という絶対的な保証にはなりません。
選択肢ごとの解説
- A誤り。--syntax-checkはPlaybookの構文だけを検査するもので、対象ホストでの変更の有無は調べません。
- B誤り。--list-hostsは実行対象となるホストの一覧を表示するだけで、タスクは評価しません。
- C誤り。--diffは変更内容の差分を表示するオプションで、単独で使うと実際に変更が加えられます。
- D正しい。--check はチェックモードで、原則として変更を加えずに変更が生じるタスクを予測して表示します。ただし check_mode: false を指定したタスクなどは例外的に実行される点に注意します。