LinuCレベル3 プラットフォームスペシャリスト プラットフォームの運用管理 問27
プラットフォームの運用管理/インフラ構成のGit管理とパイプラインの自動化同じOpenTofuのコードで検証環境と本番環境を構築するパイプラインを作っている。インスタンスの台数やサイズなどの値だけを環境ごとに stg.tfvars・prod.tfvars に分けて管理し、本番用の値で計画を作りたい。コマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの運用管理」に対応。実際の試験問題ではありません)
- Atofu plan -target=module.prod
- Btofu plan -var-file=prod.tfvars
- Ctofu plan -refresh-only
- Dtofu plan -out=prod.tfplan
正解:B
解説
-var-file は、変数の値を記述したファイルを指定してplanやapplyを実行するオプションです。環境ごとに値のファイルを分けておき、パイプラインのジョブで環境に応じたファイルを指定すれば、同じコードから環境ごとの構成を作れます。terraform.tfvarsや*.auto.tfvarsは自動で読み込まれますが、それ以外の名前のファイルは-var-fileで明示します。環境ごとにstateも分ける必要があるため、バックエンドの設定やワークスペースを環境別にすることと組み合わせます。
選択肢ごとの解説
- A誤り。-targetは計画の対象を指定したリソースやモジュールのアドレスに絞るオプションで、環境ごとの変数ファイルを読み込むものではありません。
- B正しい。環境ごとの値を書いたファイルを指定して、本番用の値で計画を作れます。
- C誤り。-refresh-onlyは実リソースの状態をstateへ反映するための計画を作るもので、設定の変更は計画に含めません。
- D誤り。-outは作成した計画をファイルに保存し、後でapplyに渡せるようにするオプションで、変数の値を切り替えるものではありません。