Terraform-Konfigurationen für Marketplace-Images abonnieren

Erstellen Sie eine Instanz und Vereinbarung, um Terraform-Konfigurationen für Marketplace-Images zu abonnieren.

So abonnieren Sie Terraform-Konfigurationen für Marketplace-Images:

  1. Erstellen Sie eine Instanz aus einem veröffentlichten Marketplace-Image.
    Um diesen Schritt abzuschließen, müssen Sie die folgenden Ressourcen in der Terraform-Konfiguration hinzufügen:
    • oci_core_app_catalog_listing_resource_version_agreement
    • oci_core_app_catalog_subscription
  2. Erstellen Sie ein Abonnement und eine Ressourcenversionsvereinbarung.
    Um diesen Schritt abzuschließen, geben Sie folgende Informationen ein:
    • Listing OCID (mp_listing_id)
    • Package Version Reference (mp_listing_resource_version)
    • Marketplace Image OCID (mp_listing_resource_id)
  3. Rufen Sie die Werte für Listing OCID, Package Version Reference, and Marketplace Image OCID wie folgt ab:
    So rufen Sie die folgenden Werte ab:
    1. Bei Partner Portal anmelden.
    2. Klicken Sie auf Listen.
    3. Klicken Sie auf der Seite Listen auf die Registerkarte Veröffentlicht.
    4. Wählen Sie die Bildliste aus, die Sie abonnieren möchten, klicken Sie auf das Menüsymbol (das vierzeilige Symbol) in der rechten Ecke dieser Zeile, und wählen Sie Listeneintrag anzeigen aus.
    5. Klicken Sie auf der Seite Liste bearbeiten auf die Registerkarte App-Installationspaket.
    6. Klicken Sie in der Liste Packageversionen auf die Version der Imageliste, die Sie abonnieren möchten.
    7. Kopieren Sie im Abschnitt Packageinformationen definieren die folgenden Werte:
      • Listing OCID (mp_listing_id)
      • Package Version Reference (mp_listing_resource_version)
    8. Kopieren Sie im Abschnitt OCI Compute Image konfigurieren den Wert von Marketplace image ocid (mp_listing_resource_id).
  4. Mit dem folgenden Beispiel wird ein Marketplace-Imageabonnement erstellt. Ein vollständiges Beispiel finden Sie unter:
    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"
      }
    }