スタックから新しいTerraformバージョンへのアップグレード
リソース・マネージャのスタックを新しいTerraformバージョンにアップグレードします。
これらの手順は、マーケットプレイスを使用して作成されたリソース・マネージャ・スタックには適用されません。
これらのステップは、コマンドラインおよびコンソールで完了します。
リソース・マネージャでサポートされているTerraformバージョンの詳細は、サポートされているTerraformバージョンを参照してください。
開始する前に
スタックを正常にアップグレードするには、次のものが必要です。
-
コマンドライン・ツールを実行するためのMacOS、LinuxまたはWindowsコンピュータ。
-
.zipアーカイブを作成および解凍するソフトウェア(7-ZIPなど)。
アップグレードの流れ
初期バージョンでサポートされているアップグレード・パスは次のとおりです。
Terraformの初期バージョン | アップグレード・パス |
---|---|
0.12 |
|
0.13 |
|
0.14 |
|
0.15 |
|
1.0 |
|
1.1 | アップグレード1.2 |
タスク1: 最新のインフラストラクチャの確認
このタスクでは、コンソールを使用します。CLIおよびAPIの手順については、スタックの詳細の取得、プラン・ジョブの作成および適用ジョブの作成を参照してください。
-
アップグレードするスタックの「スタックの詳細」ページを開きます:
- ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「リソース・マネージャ」で、「スタック」をクリックします。
-
「リスト範囲」で、スタックを含むコンパートメントを選択します。
-
スタックの名前をクリックします。
-
このスタックで予想されるTerraformバージョンが使用されていることを確認します: 「スタックの詳細」ページの「スタック情報」で、「Terraformバージョン」を確認します。
-
インフラストラクチャに対する保留中の変更を確認します:
-
「計画」をクリックします
アクションが終了すると、関連ジョブの「ジョブ詳細」ページが表示されます。
-
「ジョブ詳細」ページの「ログ」タブで、完了したプラン処理のログを確認します。
ログの内容は、スタックが最新であるか、保留中の変更があるかを示します。
最新のスタック(保留中の変更なし)の例:
No changes. Infrastructure is up-to-date.
-
-
ログの内容が保留中の変更を示している場合は、保留中の変更を適用します。
-
「スタックの詳細」をクリックして、「スタックの詳細」ページに戻ります。
-
「適用」をクリックします
アクションが終了すると、関連ジョブの「ジョブ詳細」ページが表示されます。
-
適用アクションが成功したことを確認します。「ジョブ詳細」ページの「ログ」タブで、完了した適用アクションのログを確認します。
-
スタック・インフラストラクチャが最新の状態になったら、Terraform構成および状態ファイルをダウンロードするための次のタスクに進むことができます。
タスク2: 構成および状態のダウンロード
スタックのTerraform構成がGitLabなどのソース・コード制御システムに格納されている場合は、Terraform構成をチェックアウトしてそこからダウンロードします。
スタックのTerraform構成がバケットに格納されている場合は、そこからTerraform構成をダウンロードします。
このタスクでは、コマンドラインおよびコンソールを使用します。Terraform構成およびTerraform状態をダウンロードするためのCLIおよびAPIの手順については、スタックのTerraform構成の取得およびスタックの状態ファイルの取得を参照してください。
-
コマンドライン・ツールを実行できるコンピュータで、ダウンロードしたTerraform構成および状態を格納するフォルダを作成します。
フォルダ名の例:
c:\StackUpgrade
-
アップグレードするスタックの「スタックの詳細」ページを開きます:
- ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「リソース・マネージャ」で、「スタック」をクリックします。
-
「リスト範囲」で、アップグレードするスタックが含まれるコンパートメントを選択します。
-
スタックの名前をクリックします。
「スタックの詳細」ページが表示されます。
-
Terraform構成のダウンロード: 「スタック情報」タブで、「Terraform構成」の右側にある「ダウンロード」をクリックします。
- Terraform状態ファイルをダウンロードします: 「他のアクション」に移動し、「Terraform状態のダウンロード」を選択します。
Terraform構成および状態がダウンロードされたら、Terraform構成をアップグレードするための次のタスクに進むことができます。
タスク3: 構成のアップグレード
このタスクでは、リソース・マネージャで使用されるTerraform構成をアップグレードするためのカスタマイズされたステップを示します。
-
ダウンロードしたTerraform構成および状態ファイルの格納に使用したものと同じコンピュータで、Terraform構成のアップグレードに必要な.zipファイルをダウンロードします:
-
https://releases.hashicorp.com/terraformから、ターゲットTerraformバージョンおよびオペレーティング・システムの.zipファイルをダウンロードします。
たとえば、Mac上のTerraform 0.13の場合は、Darwinバージョンhttps://releases.hashicorp.com/terraform/0.13.7/terraform_0.13.7_darwin_amd64.zipをダウンロードします。
-
-
各.zipファイルの内容を抽出します。
-
プロバイダ構成を更新して、
user_ocid
、fingerprint
、private_key_path
などの引数を追加します。これらの引数は以前にコメントアウトした可能性があります。commented-out引数の例:
provider "oci" { tenancy_ocid = var.tenancy_ocid /* user_ocid = var.user_ocid fingerprint = var.fingerprint private_key_path = var.private_key_path */ region = var.region }
-
この手順の残りのコード例に従うには、抽出されたファイルの名前を
terraform_<major-version>
に変更します。例:
terraform_13
-
コマンド(抽出されたファイル)にアクセスできるようにするには、PATHディレクトリにあるディレクトリに格納します。
-
コマンド・プロンプトを開きます。
-
ダウンロードしたスタック情報を格納したフォルダにディレクトリを変更します。
次に例を示します:
cd c:\StackUpgrade
-
Terraformを初期化するには、次のコマンドを実行します:
terraform_<major-version> init
次に例を示します:
terraform_13 init
-
Terraform構成の構文をアップグレードするには、ターゲットTerraformバージョンのコマンドを実行します:
ターゲットTerraformのバージョン コマンド 0.13 terraform_13 13upgrade
0.14 terraform_14 14upgrade
0.15以上 処置は必要ありません。プロセス中に上記のアップグレードが正常に適用された場合は、構成のアップグレードに特別な変更は必要ありません。 出力には、アップグレードが成功したかどうかが示されます。
成功したらステップ12に進みます。
成功しない場合は、指示どおりにTerraform構成ファイルを手動で変更します。
-
Terraform構成ファイルの.zipアーカイブを作成します。
.zipアーカイブの例:
c:\StackUpgrade\MyConfigUpgraded.zip
Terraform構成に必要なファイル構造を満たすために、アーカイブでTerraform状態ファイル(
terraform.tfstate
)および.terraform
ディレクトリが省略されていることを確認します。 -
スタックのTerraform構成にソース・コード制御システム(GitHubなど)が使用されている場合は、そこでアップグレードされたTerraform構成をコミットします。
最新のコミットが、スタック上でジョブを実行するときに使用されます。
-
スタックのTerraform構成にオブジェクト・ストレージ・バケットが使用されている場合は、アップグレードされたTerraform構成に対応するようにそのバケットの内容を変更します。
ノート
アップグレードしたTerraform構成に対応するように変更する前に、現在のバケットをバックアップしてください。バケットをTerraformで使用するファイルに制限します。バケットの最新の内容が、スタック上でジョブを実行するときに使用されます。
Terraform構成がターゲットのTerraformバージョンに正常にアップグレードされたら、次のタスクに進んでスタックをアップグレードできます。
タスク4: スタックのアップグレード
このタスクでは、コンソールを使用します。スタックを更新するためのCLIおよびAPIの手順については、スタックの更新を参照してください。
-
アップグレードするスタックの「Stack Details」ページを再オープンします:
- ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「リソース・マネージャ」で、「スタック」をクリックします。
-
「リスト範囲」で、アップグレードするスタックを含む「コンパートメント」を選択します。
-
スタックの名前をクリックします。
-
「スタックの編集」ダイアログ・ボックスを開きます。スタックの「スタックの詳細」ページで、「編集」をクリックします。
-
アップグレードされたTerraform構成をスタックにアップロードします。.zipファイルをダイアログのコントロールにドラッグ・アンド・ドロップするか、「参照」をクリックして.zipファイルの場所に移動します。
ファイル・パスの例:
c:\StackUpgrade\MyConfigUpgraded.zip
このダイアログ・ボックスには、Terraform構成に含まれる情報が移入されます。
ノート
スタックのTerraform構成がソース・コード制御システム(GitHubなど)またはオブジェクト・ストレージ・バケットに格納されている場合、スタックは、ソース・コードに変更をコミットするかバケットにファイルをアップロードしたときに、タスク3: 構成のアップグレードでアップグレードされたTerraform構成を使用するように構成されました。) -
ターゲットTerraformバージョンを指定します: Terraformバージョンを変更します。
-
「次へ」を2回クリックし、「変更の保存」をクリックします。
スタックは、アップグレードされたTerraform構成および指定されたTerraformバージョンと同期されるようになりました。状態ファイルをインポートするための次のタスクに進むことができます。
タスク5: 状態のインポート
このタスクでは、コンソールを使用します。CLIおよびAPIの手順については、インポート・ジョブの作成を参照してください。
-
アップグレードするスタックの「Stack Details」ページを再オープンします:
- ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「リソース・マネージャ」で、「スタック」をクリックします。
-
「リスト範囲」で、アップグレードするスタックを含む「コンパートメント」を選択します。
-
スタックの名前をクリックします。
-
「他のアクション」に移動し、「状態のインポート」を選択します。
-
「インポート」パネルで、ダウンロードしたTerraform状態ファイル(ファイル・パスの例:
c:\StackUpgrade\terraform.tfstate
): ファイルをダイアログのコントロールにドラッグ・アンド・ドロップするか、「参照」をクリックしてファイルの場所に移動します。 -
「インポート」をクリックします
インポート・ジョブが作成されます。新しいジョブが「ジョブ」の下にリストされます。
ジョブが終了すると、「ジョブ詳細」ページが開きます。
- インポート成功の確認: 「リソース」の「ログ」セクションで、ログを確認します。
状態ファイルのインポートが成功したら、次のタスクに進んで問題をチェックします。
タスク6: 問題のチェック
このタスクでは、コンソールを使用します。CLIおよびAPIの手順については、「計画ジョブの作成」、「ジョブのログの取得」、「ジョブのログ・コンテンツの取得」および「スタックの更新」を参照してください。
-
新しくアップグレードされたスタックの「スタックの詳細」ページで、プラン・アクションを実行して、Terraform構成または状態ファイルの問題を確認します:
-
「計画」をクリックします
アクションが終了すると、関連ジョブの「ジョブ詳細」ページが表示されます。
-
「ジョブ詳細」ページの「ログ」タブで、完了したプラン処理のログを確認します。
ログの内容には、古い非推奨のHCL1構文などの問題が一覧表示されることがあります。
-
-
リストされた問題を解決します。
-
コンピュータで、Terraform構成にアクセスして手動で更新します。
-
新しく更新されたTerraform構成をスタックにアップロードします:
-
「スタックの詳細」ページで、「スタックの編集」をクリックします。
-
Terraform構成をダイアログのコントロールにドラッグ・アンド・ドロップするか、「参照」をクリックしてファイルの場所にナビゲートします。
このダイアログ・ボックスには、Terraform構成に含まれる情報が移入されます。
-
「次へ」を2回クリックし、「変更の保存」をクリックします。
-
-
- プラン・アクションを再度実行して、問題が関連するログ・コンテンツにリストされなくなったことを確認します。