Terraform構成ファイルの作成
ファイルがマシン可読である必要がある場合は、Terraformドメイン固有の言語またはJSON形式でterraform構成ファイルを作成する方法について学習します。
Terraformでは、宣言構文を使用してOracle Cloud Infrastructure (OCI)インフラストラクチャを記述し、共有、レビュー、編集、バージョニング、保存および再利用が可能な構成ファイルに永続化します。構成の構文を参照してください。Terraform構成ファイルでは2つのフォーマットのいずれかを使用できます。Terraformドメイン固有の言語(HashiCorp Configuration Language (HCL)フォーマット)をお薦めします。また、マシン判読可能のファイルが必要な場合のためのJSONフォーマットがあります。HCLフォーマットを使用する構成ファイルのファイル拡張子は.tf
です。JSONフォーマットを使用するファイルのファイル拡張子は.tf.json
です。Terraformフォーマットは人が読むことができますが、JSONフォーマットはマシン判読可能です。
Terraform構成を使用して、デプロイメント時にソリューションまたはアプリケーションに必要なリソースを定義します。リソースは、仮想クラウド・ネットワークやコンピュート・インスタンスなどのOracle Cloud Infrastructureオブジェクトを作成できます。構成の最初の適用によってオブジェクトが作成され、後続の適用でそれらを更新または削除できます。その後、Terraformによって、Oracle Cloud Infrastructure構成がOracle Cloud Infrastructure APIエンドポイントに対する一連のAPIコールに変換されます。Terraform構成の作成で重要なのは、必要なインフラストラクチャをTerraform構成構文として概念的に抽象化する方法を理解することです。
Terraform構成の開発経験のレベルに応じて、マーケットプレイス・スタック・テンプレートの開始または独自のTerraform構成の作成に進むことができます。
マーケットプレイス・スタック・テンプレートの開始
Oracle Cloud Infrastructure MarketplaceのパブリッシャがOracle Cloud Infrastructureへのアプリケーションの迅速なデプロイを開始できるようにするサンプル・コレクションは、OCIクイックスタート・テンプレートで入手できます。このリポジトリには、ローカルのTerraform CLI、OCI Resource ManagerおよびCloud Shellから実行されるスタックの構築を加速するために使用できるテンプレートが含まれています。
oci-quickstart-templateリポジトリのクローンを作成して開始することをお薦めします。
$> git clone https://github.com/oracle-quickstart/oci-quickstart-template.git $> cd oci-quickstart-template
Terraform構成(.tf)ファイルには、ファイルで定義されるコンポーネントに応じて固有の要件があります。たとえば、Terraformプロバイダを1つのファイル(provider.tf)、変数を別のファイル(variables.tf)、データ・ソースをさらに別のファイルで定義できます。Marketplaceクイックスタート・スタック・テンプレートは、類似するリソースを個々のファイルにグループ化しますが、ファイル・システム・レイアウトはサンプル参照にすぎません。
カスタム・イメージを使用したインスタンスのデプロイ
カスタム・イメージからインスタンスを作成するには、次のステップに従います。
-
compute.tfファイルでoci_core_instanceリソースを探し、クローニングしたoci-quickstart-templateでsource_detailsをlocal.compute_image_idに設定します。ローカル変数local.compute_image_idは、mp_subscription_enableフラグに基づいて、カスタム・イメージocidまたはマーケットプレイス・イメージocidに設定できます。
-
variables.tfを変更して、compute_image_id変数のデフォルト属性値を、パートナ・ポータルでのOCIスタック・リストの作成のタスク2に従って作成したカスタム・イメージのOCIDに設定します。
独自のMarketplaceスタックの作成
oci-quickstart-templateリポジトリは、Terraform構成の開始点となりますが、独自のInfrastrucutreをコードとして作成することを制限するものではありません。その他の例については、Oracle Cloud Infrastructure Terraform Provider for OCI (terraform-provider-OCI/docs/examples)を参照してください。Terraformファイルがマーケットプレイスのスタックのガイドラインに準拠していることを確認します。