過去問ドリル

LinuCレベル3 プラットフォームスペシャリスト プラットフォームの運用管理 問27

プラットフォームの運用管理/インフラ構成のGit管理とパイプラインの自動化

同じOpenTofuのコードで検証環境と本番環境を構築するパイプラインを作っている。インスタンスの台数やサイズなどの値だけを環境ごとに stg.tfvars・prod.tfvars に分けて管理し、本番用の値で計画を作りたい。コマンドとして適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの運用管理」に対応。実際の試験問題ではありません)

正解:B

解説

-var-file は、変数の値を記述したファイルを指定してplanやapplyを実行するオプションです。環境ごとに値のファイルを分けておき、パイプラインのジョブで環境に応じたファイルを指定すれば、同じコードから環境ごとの構成を作れます。terraform.tfvarsや*.auto.tfvarsは自動で読み込まれますが、それ以外の名前のファイルは-var-fileで明示します。環境ごとにstateも分ける必要があるため、バックエンドの設定やワークスペースを環境別にすることと組み合わせます。

選択肢ごとの解説

  • A誤り。-targetは計画の対象を指定したリソースやモジュールのアドレスに絞るオプションで、環境ごとの変数ファイルを読み込むものではありません。
  • B正しい。環境ごとの値を書いたファイルを指定して、本番用の値で計画を作れます。
  • C誤り。-refresh-onlyは実リソースの状態をstateへ反映するための計画を作るもので、設定の変更は計画に含めません。
  • D誤り。-outは作成した計画をファイルに保存し、後でapplyに渡せるようにするオプションで、変数の値を切り替えるものではありません。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く