Suscripción de configuraciones de Terraform a imágenes de Marketplace

Cree una instancia y un acuerdo para suscribir las configuraciones de Terraform a las imágenes de Marketplace.

Para suscribir configuraciones de Terraform a imágenes de Marketplace, siga estos pasos:

  1. Cree una instancia a partir de una imagen de Marketplace publicada.
    Para completar este paso, debe agregar los siguientes recursos en la configuración de Terraform:
    • oci_core_app_catalog_listing_resource_version_agreement
    • oci_core_app_catalog_subscription
  2. Cree una suscripción y un acuerdo de versión de recurso.
    Para completar este paso, debe proporcionar la siguiente información:
    • Listing OCID (mp_listing_id)
    • Package Version Reference (mp_listing_resource_version)
    • Marketplace Image OCID (mp_listing_resource_id)
  3. Obtenga valores para Listing OCID, Package Version Reference, and Marketplace Image OCID, de la siguiente manera:
    Para obtener estos valores:
    1. Conectarse al portal de partners.
    2. Haga clic en Listas.
    3. En la página Listas, haga clic en el separador Publicado.
    4. Seleccione la lista de imágenes a la que se está suscribiendo, haga clic en el icono de menú (icono de cuatro líneas) en la esquina derecha de esa fila y seleccione Ver lista.
    5. En la página Editar lista, haga clic en el separador Paquete de instalación de aplicación.
    6. En la lista Versiones de paquete, haga clic en la versión de la lista de imágenes a la que se está suscribiendo.
    7. En la sección Define Package Information, copie los siguientes valores:
      • Listing OCID (mp_listing_id)
      • Package Version Reference (mp_listing_resource_version)
    8. En la sección Configurar imagen de OCI Compute, copie el valor de Marketplace image ocid (mp_listing_resource_id).
  4. El siguiente ejemplo crea una suscripción a una imagen de Marketplace. Para obtener un ejemplo completo, consulte:
    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"
      }
    }