リソース・マネージャのTerraform構成

このトピックでは、リソース・マネージャで使用するTerraform構成の要件と推奨事項について説明します。Terraform構成の基本情報は、オーサリング構成を参照してください。スタックおよびジョブで構成を使用する手順は、スタックおよびジョブの管理を参照してください。

リソース・マネージャでサポートされているTerraform構成ソースについては、「Terraform構成の格納場所」を参照してください。

独自のTerraform構成ファイルの作成に加え、リソース検出を使用して既存のコンパートメントから、またはサンプル・テンプレートからTerraform構成を生成するオプションもあります。

注意Terraform構成でユーザー資格証明などの機密情報を指定

しないでください。

Requirements

リソース・マネージャで使用するTerraform構成ファイルは、次の要件を満たす必要があります。

Terraformプロバイダ

リソース・マネージャを使用する場合、provider "oci"ブロック内のregionフィールドが唯一の必須フィールドです。プロバイダの定義の詳細は、「構成ファイルの要件」を参照してください。

ファイル構造

リソース・マネージャでは、Terraform構成で次のファイル構造が必要です:

  • 作業ディレクトリには、少なくとも1つの.tfファイルが必要です。作業ディレクトリに.terraformディレクトリを含めることはできません。

    Terraformの実行元のパスへの作業ディレクトリ。デフォルトでは、作業ディレクトリは構成のルート・ディレクトリです(アップロードした構成の場合、.zipファイルのルート)。APIを使用する場合、workingDirectoryパラメータを設定して、作業ディレクトリに別の場所を指定できます。

  • この構成は、オーサリング構成で指定されたガイドラインに従っている必要があります。
  • 構成内にTerraform状態ファイル(.tfstate)を格納できません。
  • 構成をローカルにアップロードする場合は、すべてのファイルを.zipファイルにバンドルします。

変数

Oracle Cloud Infrastructureコンソールでのユーザー入力を容易にするために、Terraform構成でスキーマ・ドキュメントを使用することをお薦めします。

リソース・マネージャには、Terraform構成の変数の要件がありません。リソース・マネージャは、変数を処理するためのネイティブTerraform動作をサポートします。Terraformでは、サポートされているタイプの制約を使用する変数定義から変数を設定します。ジョブを実行すると、スタックの変数値リソース・マネージャのTerraformホストに環境変数として追加されます。たとえば、特定のVCN変数のスタックで指定されたVCNが環境変数として追加されます。

ノート

Terraform構成で定義すると、次の変数はスタックの作成および編集に使用されるコンソール・ページの値で自動的に事前移入されます。スタックの値は、Terraformアクション「計画」「適用」および「破棄」を選択するときに使用されます。

  • tenancy_ocid (テナンシOCID)
  • compartment_ocid (コンパートメントOCID)
  • region (リージョン)
  • current_user_ocid (現在のユーザーのOCID)

リソース・マネージャのTerraform構成の例

次の例に、1つのファイルに含まれるTerraform構成を示します。この基本的な例では、1つのTerraformプロバイダ、1つのOracle Cloud Infrastructureリソースおよび一連の変数のみを定義します。



variable "compartment_ocid" {}
variable "region" {}

provider "oci" {
  region = "${var.region}"
}

resource "oci_core_virtual_network" "vcn1" {
  cidr_block = "10.0.0.0/16"
  dns_label = "vcn1"
  compartment_id = "${var.compartment_ocid}"
  display_name = "vcn1"
}

Terraform構成は多くの場合、バンドルされた複数のファイルで構成されます(アップロードした構成の場合、ファイルは.zipファイルにバンドルされます)。より複雑で複数ファイルのTerraform構成を確認するには、Oracle Cloud Infrastructure GitHub: terraform-provider-oci/docs/examplesの例を参考にしてください。

Terraform構成の格納場所

リソース・マネージャを使用してスタックを作成する場合、次のソースからTerraform構成を選択できます。

  • ローカルの.zipファイル
  • ローカル・フォルダ
  • オブジェクト・ストレージ・バケット

    バケットの最新の内容は、関連付けられたスタックで実行されているジョブによって自動的に使用されます。

  • Gitなどのソース・コード制御システム

    最新バージョンの構成は、関連付けられたスタックで実行されているすべてのジョブによって自動的に使用されます。

  • テンプレート(Oracleまたはプライベート・テンプレートからの事前構築済Terraform構成)
  • 既存のコンパートメント(リソース検出)