HashiCorpLevel 3

難易度は Level 1(やさしめ)〜Level 5(難関) の5段階です。

Terraform Associateのサンプル問題(本番形式・解説付き)

Terraform Associate(HashiCorp・HashiCorp Certified: Terraform Associate (004))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録で解ける模試 第1回(60問)の冒頭から抜粋したオリジナル問題です。当サイトは全240問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。

設問1

Terraform 1.12 で、変数 tok に ephemeral = true を指定し、その値を terraform_data リソースの input 引数にそのまま渡しました。terraform plan の結果として正しいものはどれですか。

  • input は state に保存されるため、「Invalid use of ephemeral value」のエラーになる(正解)
  • エラーにならず、input の値は sensitive として state に保存される
  • 警告が表示された上で、apply の完了後に値が state から削除される
  • エラーにならず、input は state に平文で保存される

解説

ephemeral な値は state と plan に保存されません。そのため、値を保存する通常の引数に渡すとエラーになります。 「エラーにならず」:ephemeral は sensitive とは別の概念で、保存を禁止します。 「警告が表示された上で」:そうした後始末は行われず、plan の段階でエラーになります。 「エラーにならず」:ephemeral な値は state に保存されないため、保存される通常の引数には渡せません。

他の選択肢が誤りである理由

  • 「エラーにならず、input の値は sensitive として state に保存される」ephemeral は sensitive とは別の概念で、保存を禁止します。
  • 「警告が表示された上で、apply の完了後に値が state から削除される」そうした後始末は行われず、plan の段階でエラーになります。
  • 「エラーにならず、input は state に平文で保存される」ephemeral な値は state に保存されないため、保存される通常の引数には渡せません。

設問2

HCP Terraform の組織の API トークン(organization token)について、正しい説明はどれですか。

  • 各ワークスペースで実行を開始でき、CI/CD で日常的に使うことが推奨される
  • 組織全体の権限を持つが、実行の開始はできない。初期設定などに使う(正解)
  • 1 つの組織に、制限なく複数の有効な組織トークンを作成できる
  • 個人のユーザーに紐づくトークンで、組織が無効にすることはできない

解説

組織トークンは組織全体の権限を持ちますが、実行を開始したり、構成バージョンを作成したりはできません。 「各ワークスペースで実行を開始でき」:組織トークンは実行を開始できません。日常の運用には、チームのトークンなどを使います。 「1 つの組織に」:組織が持てる有効な組織トークンは 1 つです。 「個人のユーザーに紐づくトークンで」:個人に紐づくのは user token です。また、組織は user token を無効にできます。

他の選択肢が誤りである理由

  • 「各ワークスペースで実行を開始でき、CI/CD で日常的に使うことが推奨される」組織トークンは実行を開始できません。日常の運用には、チームのトークンなどを使います。
  • 「1 つの組織に、制限なく複数の有効な組織トークンを作成できる」組織が持てる有効な組織トークンは 1 つです。
  • 「個人のユーザーに紐づくトークンで、組織が無効にすることはできない」個人に紐づくのは user token です。また、組織は user token を無効にできます。

設問3

CI で、構成ファイルがすべて整形済みであることを検査し、整形されていないファイルがあればジョブを失敗させたいと考えています。ファイルは書き換えません。使うコマンドはどれですか。

  • terraform fmt -check(正解)
  • terraform fmt
  • terraform plan -check
  • terraform validate

解説

terraform fmt -check は、ファイルを書き換えずに整形済みかを検査し、そうでなければ 0 以外の終了コード(実際は 3)を返します。オプションなしの fmt は書き換えるだけで、validate と plan は書式を検査しません。

他の選択肢が誤りである理由

  • 「terraform fmt」オプションなしの fmt はファイルを整形して書き換え、失敗の終了コードも返しません。
  • 「terraform plan -check」plan に -check というオプションはありません。
  • 「terraform validate」validate は構文と整合性の検査で、書式は検査しません。

設問4

コードに残っている resource "terraform_data" "keep" を、terraform state rm terraform_data.keep で state から外しました。実機のリソースはそのままです。その後、コードを変えずに terraform plan を実行すると、どうなりますか。

  • 実機のリソースは削除されないが、state に無いため、新規作成が計画される(正解)
  • 実機のリソースが削除され、コードの記述どおりに作り直される
  • 差分は表示されず、No changes と表示される
  • コードから該当する resource ブロックが自動的に削除される

解説

state rm は state から記録を外すだけで、実機は削除されません。コードには残っているため、次の plan では state に無いリソースとして新規作成が計画されます。コードが自動で変わることもありません。 「実機のリソースが削除され」:state rm は実機に触れず、plan は state に無いものを新規作成として扱うだけです。計画に削除は含まれません。 「差分は表示されず」:コードにあって state に無いリソースは、作成が必要と判断されます。 「コードから該当する resou…」:Terraform はコードを書き換えません。

他の選択肢が誤りである理由

  • 「実機のリソースが削除され、コードの記述どおりに作り直される」state rm は実機に触れず、plan は state に無いものを新規作成として扱うだけです。計画に削除は含まれません。
  • 「差分は表示されず、No changes と表示される」コードにあって state に無いリソースは、作成が必要と判断されます。
  • 「コードから該当する resource ブロックが自動的に削除される」Terraform はコードを書き換えません。

設問5

手作業の変更でサーバーの設定が構成と異なっています。plan はその設定を構成の値に戻す差分を表示しています。この変更を意図したものとして残したいとき、適切な対処はどれですか。

  • terraform apply -refresh-only を実行する。構成ファイルが実際の値に書き換わる
  • terraform apply を実行して、手作業で行った変更を構成の値に戻す
  • terraform state rm でそのリソースを state から外し、plan の差分を消す
  • 構成ファイルの値を現在の実際の値に合わせて修正し、plan で差分が出なくなることを確認する(正解)

解説

構成が「あるべき姿」を表すので、残したい変更は構成ファイルに反映します。反映後に plan して差分が 0 になれば、構成と実際が一致しています。 「apply -refresh-only を実行する」:-refresh-only は state を更新するだけで、構成ファイルは書き換わりません。 「変更を構成の値に戻す」:それでは変更を取り消してしまい、残したいという意図に反します。 「terraform state…」:state から外すと、リソースは管理対象から外れ、次回の plan で新規作成として扱われます。

他の選択肢が誤りである理由

  • 「terraform apply -refresh-only を実行する。構成ファイルが実際の値に書き換わる」-refresh-only は state を更新するだけで、構成ファイルは書き換わりません。
  • 「terraform apply を実行して、手作業で行った変更を構成の値に戻す」それでは変更を取り消してしまい、残したいという意図に反します。
  • 「terraform state rm でそのリソースを state から外し、plan の差分を消す」state から外すと、リソースは管理対象から外れ、次回の plan で新規作成として扱われます。

続きは、会員登録なしでそのまま50問解けます。採点と解説つきで、上と同じ本物の問題です。

登録なしで50問解く