LinuCレベル3 プラットフォームスペシャリスト プラットフォームの運用管理 問25
プラットフォームの運用管理/インフラプロビジョニングの自動化OpenTofuを導入する前に手作業で作成した仮想ネットワークがある。このリソースを作り直さずに、設定ファイルに書いたresourceブロックと対応付けてstateの管理下に置きたい。用いるコマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの運用管理」に対応。実際の試験問題ではありません)
- Atofu state rm
- Btofu init -upgrade
- Ctofu apply -replace
- Dtofu import
正解:D
解説
tofu import は、OpenTofuの外で作成済みのリソースを、設定ファイルのresourceブロックのアドレスと実リソースのIDを指定して、stateに取り込むコマンドです。取り込んだ後は、そのリソースもplanやapplyで管理できるようになります。設定ファイルに import ブロックを書き、planとapplyの流れの中で取り込む方法もあります。取り込んだ後にplanで差分が出る場合は、実リソースの設定に合わせてresourceブロックを修正します。
選択肢ごとの解説
- A誤り。state rmはリソースを実環境から削除せずに、stateの管理対象から外すコマンドで、取り込みとは逆の操作です。
- B誤り。init -upgradeはプロバイダやモジュールを許容範囲内の最新版に取得し直すもので、既存リソースを取り込む機能はありません。
- C誤り。apply -replaceは指定したリソースを削除して作り直すための指定で、作り直さずに管理下へ置くという要件に反します。
- D正しい。既存のリソースをresourceブロックのアドレスと対応付けてstateに取り込めます。