4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

API経由でTerraform CloudのWorkspaceの設定を変更する

Last updated at Posted at 2024-11-05

はじめに

どうも、@to-fmakです。今回は、APIを利用してTerraform CloudのWorkspaceの設定変更を行いましたので、その手順について紹介します。
具体的には、WorkspaceのTerraformバージョンを変更する方法と、最近開発した一括設定変更用の自動化ツールについて紹介します。

※本記事の内容はすべて執筆時点(2024年10月)の情報に基づいています。

WorkspaceのTerraform Version設定について

Terraform CloudのWorkspaceでは、以下のような方法でTerraformのバージョンを設定することができます。

Automatically updating

  • ~>1.9.0 latest(1.9.8)など:マイナーバージョン(例:1.9)まで固定し、パッチバージョン(例:1.9.8)は最新を使用する
  • latest:最新のバージョンを常に使用する

All released versions

過去にリリースされたすべてのバージョンから、特定のバージョンを選択することができます。

デフォルトの設定

By default, HCP Terraform uses the latest Terraform version. You can alternatively select an exact version or use a version constraint.

デフォルト設定では、最新のバージョンが自動的に適用されます。

API経由での設定方法

以下の手順でWorkspaceのTerraformバージョンを更新します。

アクセストークンの取得

APIを使用してTerraform CloudのWorkspace設定を変更するには、まずTerraform Cloud APIのアクセストークンを取得する必要があります。
Terraform CloudのUser SettingsからAPIトークンを生成します。

Workspace IDの確認

対象のWorkspaceのIDをAPI経由で取得するか、Terraform CloudのGUIで確認します。WorkspaceのIDをAPI経由で取得コマンドは以下です。

curl \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/vnd.api+json" \
    --request GET \
    https://app.terraform.io/api/v2/organizations/{YOUR_ORG_NAME}/workspaces/{YOUR_WORKSPACE_NAME} | jq -r '.data.id'

※jqを使用していますので、インストールされていない場合は事前インストールが必要です。

APIリクエストの送信

以下のようなAPIリクエストを利用して、WorkspaceのTerraformバージョンを更新します。

curl \
    --header "Authorization: Bearer {YOUR_TOKEN}" \
    --header "Content-Type: application/vnd.api+json" \
    --request PATCH \
    --data '{
          "data": {
            "type": "workspaces",
            "id": "{YOUR_WORKSPACE_ID}",
            "attributes": {
              "terraform_version": "1.9.8"
            }
          }
        }' \
    https://app.terraform.io/api/v2/workspaces/{YOUR_WORKSPACE_ID}

Automatically updatingにしたい場合、terraform_versionの値を以下のように記述できます。

"terraform_version": "~>1.9.0"

Terraform Version Updater for Terraform Cloud

指定したOrganization内の指定したWorkspace(複数指定可能)のTerraform Versionを一括で変更するツールを作成しました。
詳細はrepo内のREADME.mdをご参照ください。

参考URL

エンジニア募集

Gakken LEAP では教育をアップデートしていきたいエンジニアを絶賛大募集しています!!
ぜひお気軽にカジュアル面談へお越しください!!

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?