Abonnement des configurations Terraform aux images Marketplace

Créez une instance et une entente pour abonner des configurations Terraform aux images Marketplace.

Pour abonner des configurations Terraform à des images Marketplace, procédez comme suit :

  1. Créez une instance à partir d'une image Marketplace publiée.
    Pour terminer cette étape, vous devez ajouter les ressources suivantes dans votre configuration Terraform :
    • oci_core_app_catalog_listing_resource_version_agreement
    • oci_core_app_catalog_subscription
  2. Créez un abonnement et un contrat de version de ressource.
    Pour terminer cette étape, vous devez fournir les informations suivantes :
    • Listing OCID (mp_listing_id)
    • Package Version Reference (mp_listing_resource_version)
    • Marketplace Image OCID (mp_listing_resource_id)
  3. Obtenez des valeurs pour Listing OCID, Package Version Reference, and Marketplace Image OCID, comme suit :
    Pour obtenir ces valeurs :
    1. Connexion à Partner Portal.
    2. Cliquez sur Listes.
    3. Dans la page Listes, cliquez sur l'onglet Publié.
    4. Sélectionnez la liste d'images à laquelle vous êtes abonné, cliquez sur l'icône de menu (l'icône de quatre lignes) dans le coin droit de cette rangée, puis sélectionnez Voir la liste.
    5. Dans la page Modifier la liste, cliquez sur l'onglet Ensemble d'installation de l'application.
    6. Dans la liste Versions d'ensemble, cliquez sur la version de la liste d'images à laquelle vous êtes abonné.
    7. Dans la section Définir les informations sur l'ensemble, copiez les valeurs suivantes :
      • Listing OCID (mp_listing_id)
      • Package Version Reference (mp_listing_resource_version)
    8. Dans la section Configurer l'image du service de calcul pour OCI, copiez la valeur de Marketplace image ocid (mp_listing_resource_id).
  4. L'exemple suivant crée un abonnement à une image Marketplace. Pour un exemple complet, voir :
    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"
      }
    }