マーケットプレイス・イメージへのTerraform構成のサブスクライブ

Terraform構成をMarketplaceイメージにサブスクライブするインスタンスと契約を作成します。

Terraform構成をMarketplaceイメージにサブスクライブするには、次のステップに従います:

  1. 公開されたマーケットプレイス・イメージからインスタンスを作成します。
    このステップを完了するには、Terraform構成に次のリソースを追加する必要があります:
    • oci_core_app_catalog_listing_resource_version_agreement
    • oci_core_app_catalog_subscription
  2. サブスクリプションおよびリソース・バージョン契約を作成します。
    このステップを完了するには、次の情報を指定する必要があります。
    • Listing OCID (mp_listing_id)
    • Package Version Reference (mp_listing_resource_version)
    • Marketplace Image OCID (mp_listing_resource_id)
  3. Listing OCID, Package Version Reference, and Marketplace Image OCIDの値を次のように取得します。
    これらの値を取得するには:
    1. パートナ・ポータルにサイン・イン
    2. 「リスト」をクリックします。
    3. 「リスト」ページで、「公開済」タブをクリックします。
    4. サブスクライブするイメージ・リストを選択し、その行の右隅にあるメニュー・アイコン(4行アイコン)をクリックして、「リストの表示」を選択します。
    5. 「リストの編集」ページで、「アプリケーション・インストール・パッケージ」タブをクリックします。
    6. 「パッケージ・バージョン」リストから、サブスクライブするイメージ・リストのバージョンをクリックします。
    7. 「パッケージ情報の定義」セクションから、次の値をコピーします。
      • Listing OCID (mp_listing_id)
      • Package Version Reference (mp_listing_resource_version)
    8. 「OCIコンピュート・イメージの構成」セクションから、Marketplace image ocid (mp_listing_resource_id)の値をコピーします。
  4. 次のサンプルは、Marketplaceイメージ・サブスクリプションを作成します。完全な例は、を参照してください。
    https://github.com/oracle-quickstart/oci-quickstart-template/blob/master/image_subscription.tf
    # Local variables pointing to the Marketplace catalog resource
    # Eg. Modify accordingly to your Application/Listing
    locals {
      mp_listing_id               = "${var.mp_listing_id}"
      mp_listing_resource_id      = "${var.mp_listing_resource_id}"
      mp_listing_resource_version = "${var.mp_listing_resource_version}"
    }
     
     
    # Get Image Agreement
    resource "oci_core_app_catalog_listing_resource_version_agreement" "mp_image_agreement" {
      count = "${var.use_marketplace_image ? 1 : 0}"
     
      listing_id               = "${local.mp_listing_id}"
      listing_resource_version = "${local.mp_listing_resource_version}"
    }
     
    # Accept Terms and Subscribe to the image, placing the image in a particular compartment
    resource "oci_core_app_catalog_subscription" "mp_image_subscription" {
      count                    = "${var.use_marketplace_image ? 1 : 0}"
      compartment_id           = "${var.compartment_ocid}"
      eula_link                = "${oci_core_app_catalog_listing_resource_version_agreement.mp_image_agreement.eula_link}"
      listing_id               = "${oci_core_app_catalog_listing_resource_version_agreement.mp_image_agreement.listing_id}"
      listing_resource_version = "${oci_core_app_catalog_listing_resource_version_agreement.mp_image_agreement.listing_resource_version}"
      oracle_terms_of_use_link = "${oci_core_app_catalog_listing_resource_version_agreement.mp_image_agreement.oracle_terms_of_use_link}"
      signature                = "${oci_core_app_catalog_listing_resource_version_agreement.mp_image_agreement.signature}"
      time_retrieved           = "${oci_core_app_catalog_listing_resource_version_agreement.mp_image_agreement.time_retrieved}"
     
      timeouts {
        create = "20m"
      }
    }
     
    # Gets the partner image subscription
    data "oci_core_app_catalog_subscriptions" "mp_image_subscription" {
      #Required
      compartment_id = "${var.compartment_ocid}"
     
      #Optional
      listing_id = "${local.mp_listing_id}"
     
      filter {
        name   = "listing_resource_version"
        values = ["${local.mp_listing_resource_version}"]
    }
     
     
    # Reference the Marketplace Image
    resource "oci_core_instance" "instance" {
      // availability_domain = "${data.oci_identity_availability_domain.ad.name}"
      //...
     
      source_details {
        source_type = "image"
        source_id   = "${var.use_marketplace_image ? local.mp_listing_resource_id : var.custom_image_id}"
      }
     
      timeouts {
        create = "60m"
      }
    }