Mise en route

Vous trouverez ci-dessous une procédure détaillée présentant les étapes nécessaires à la création et au déploiement d'une instance de calcul Oracle Cloud Infrastructure à l'aide de Resource Manager.

Cette page vous aide à vous lancer avec Resource Manager. Utilisez cette procédure détaillée pour créer et déployer une instance de calcul Oracle Cloud Infrastructure à l'aide d'une configuration Terraform prédéfinie ou de votre propre configuration Terraform. Pour obtenir une rapide présentation de Resource Manager, reportez-vous à Présentation de Resource Manager.

Points clés

En plus de fournir une configuration Terraform prédéfinie pour la création d'une instance Compute, cette procédure pas à pas fournit des exemples montrant comment écrire une configuration Terraform. Quelle que soit la configuration que vous utilisez (prédéfinie ou la vôtre), Resource Manager utilise Terraform pour provisionner les ressources définies. Les ressources sont organisées en piles que vous créez et provisionnez à l'aide de travaux.

La procédure pas à pas décrit les tâches suivantes :

  • Sélectionnez ou créez une configuration Terraform.
  • Provisionnement de l'infrastructure :
    • Créez une pile dans laquelle provisionner votre infrastructure.
    • Exécutez un travail de planification sur votre pile, afin d'analyser votre configuration et de créer un plan d'exécution.
    • Vérifiez le plan d'exécution généré.
    • Exécutez un travail d'application sur votre pile, afin de provisionner vos ressources. Le travail d'application suit le plan d'exécution, qui repose sur votre configuration Terraform.
    • Vérifiez l'infrastructure obtenue.
  • Vous pouvez éventuellement provisionner l'infrastructure dans davantage d'environnements, en utilisant la même configuration Terraform.

Avant de commencer

Assurez-vous que vous avez installé, obtenu ou créé les prérequis suivants :

  • Une location Oracle Cloud Infrastructure pour chaque environnement dans lequel vous souhaitez provisionner des ressources. Par exemple, vous pouvez provisionner les ressources définies dans une configuration Terraform vers des environnements de développement, de préparation et de production.
    Remarque

    Il est recommandé de localiser chaque environnement dans sa propre location.
  • L'OCID  du compartiment dans lequel vous voulez créer votre pile.
  • Un compte utilisateur qui comprend les éléments suivants :
  • Si vous souhaitez utiliser l'interface de ligne de commande Oracle Cloud Infrastructure, installez-la et configurez-la en premier Reportez-vous à Démarrage rapide et à Configuration de l'interface de ligne de commande.

Tâche 1a : sélection d'une configuration Terraform prédéfinie

Vous pouvez sélectionner le modèle d'instance de calcul avec sa configuration Terraform prédéfinie au lieu d'écrire votre propre configuration. Ces étapes vous guident tout au long du processus de création de pile.

  1. Cliquez sur le lien suivant pour lancer la page Créer une pile avec le modèle d'instance de calcul déjà sélectionné.

    Lancer la pile avec le modèle d'instance de calcul

  2. Sur la page Créer une pile, entrez le nom de la nouvelle pile (ou acceptez le nom par défaut fourni). Evitez de saisir des informations confidentielles.
  3. Dans la liste déroulante Créer dans le compartiment, sélectionnez le compartiment dans lequel créer la pile.

    Un compartiment inclus dans la portée de la liste est défini par défaut.

  4. Cliquez sur Suivant.

    Le panneau Configurer des variables affiche les variables de la configuration Terraform.

  5. Vérifiez les variables et modifiez-les si nécessaire.

    Important

    N'ajoutez pas votre clé privée ou d'autres informations confidentielles aux variables de configuration.
  6. Cliquez sur Suivant.
  7. Vérifiez la configuration de votre pile dans le panneau Vérifier.

    Dans le cadre de cette procédure pas à pas, laissez Exécuter l'application vide. (Utilisez cette option pour provisionner automatiquement l'infrastructure lors de la création de la pile.)

  8. Cliquez sur Créer pour créer votre pile.

    La page de détails de la nouvelle pile apparaît.

    Bravo ! Vous avez créé une pile avec la configuration Terraform prédéfinie à partir du modèle d'instance de calcul. L'étape suivante consiste à provisionner l'infrastructure.

Tâche 1b : création de votre propre configuration Terraform

Si vous n'avez pas sélectionné de configuration Terraform prédéfinie, suivez ces étapes pour écrire la vôtre.

Une configuration Terraform est un fichier qui codifie votre infrastructure. La configuration définit votre fournisseur Terraform, les ressources que vous prévoyez de provisionner, les variables et les instructions spécifiques pour le provisionnement des ressources.

Cette page vous guide tout au long de la sélection du modèle d'instance de calcul avec sa configuration Terraform prédéfinie ou de l'écriture de votre propre configuration à l'aide de plusieurs fichiers .tf dans un fichier .zip.

Pour plus d'informations sur l'écriture de configurations à utiliser avec Resource Manager, reportez-vous à Configurations Terraform pour Resource Manager et à Configuration Terraform.

Attention

Ne fournissez pas d'informations d'identification utilisateur ou d'autres informations confidentielles dans votre configuration Terraform.
Création d'un fournisseur Oracle Cloud Infrastructure

L'exemple de code suivant crée un fournisseur Oracle Cloud Infrastructure Terraform de base. Vous pouvez indiquer des valeurs en tant que variables définies dans un fichier de variables ou dans le fichier de définition du fournisseur (. tf). Pour plus d'informations, reportez-vous à la page relative à la configuration du fournisseur.

provider "oci" {
  region = "${var.region}"
}
Définition de variables

Définissez les variables que vous souhaitez utiliser lors du provisionnement de vos ressources. Il est recommandé de créer un fichier de variables dans le package de configuration que vous téléchargez. Voici un exemple de fichier de configuration nommé variables.tf. Pour plus d'informations sur l'utilisation des variables, reportez-vous à Variables d'entrée. Reportez-vous également à la page relative à la configuration des variables d'entrée.


variable "compartment_ocid" {
	default = "ocid1.compartment.oc1..uniqueid"
}

variable "region" {
	default = "us-phoenix-1"
}

variable "InstanceImageOCID" {
  type = "map"
  
  default = {
    // See https://docs.cloud.oracle.com/images/
    // Platform image "Oracle-Linux-7.5-2018.10.16-0"
    "eu-frankfurt-1" = "ocid1.image.oc1.eu-frankfurt-1.aaaaaaaaitzn6tdyjer7jl34h2ujz74jwy5nkbukbh55ekp6oyzwrtfa4zma"
    "uk-london-1" = "ocid1.image.oc1.uk-london-1.aaaaaaaa32voyikkkzfxyo4xbdmadc2dmvorfxxgdhpnk6dw64fa3l4jh7wa"
    "us-ashburn-1" = "ocid1.image.oc1.iad.aaaaaaaageeenzyuxgia726xur4ztaoxbxyjlxogdhreu3ngfj2gji3bayda"
    "us-phoenix-1" = "ocid1.image.oc1.phx.aaaaaaaaoqj42sokaoh42l76wsyhn3k2beuntrh5maj3gmgmzeyr55zzrwwa"
  }
}


variable "ssh_public_key" {
	default = "ssh-rsa <public_key_value>"
}

# Defines the number of instances to deploy
variable "NumInstances" {
    default = "1"
}

variable "InstanceShape" {
    default = "VM.Standard2.1"
}

# Specifies the Availability Domain
variable "localAD" {
    default = "<AD_name>"
}

Pour plus d'informations sur les variables déclarées dans l'exemple précédent, reportez-vous aux sections suivantes :

Définir un document de schéma (facultatif)

Avec un document de schéma, vous pouvez réutiliser une configuration Terraform non modifiée dans les environnements de développement, de préparation et de production. Resource Manager vous invite à saisir des valeurs de variable lorsque vous créez une pile avec une configuration Terraform qui inclut un document de schéma.

Les documents de schéma sont recommandés pour les configurations Terraform lors de l'utilisation de Resource Manager. L'inclusion d'un document de schéma vous permet d'étendre des pages dans la console Oracle Cloud Infrastructure. Facilitez l'entrée de variable sur la page Créer une pile en surfant les contrôles de clé SSH et en nommant, groupant, préremplissant dynamiquement les valeurs, etc. Définissez le texte de l'onglet Informations sur l'application de la page Détails de la pile qui s'ouvre pour une pile créée.

Vous trouverez ci-dessous le contenu d'un exemple de document de schéma (schema.yaml) qui présente les détails de base de ce scénario.

Remarque

Pour réutiliser facilement ce document de schéma, indiquez des valeurs par défaut pour chaque variable.
locale: "en"

variableGroups:
  - title: "Destination"
    variables:
      - compartment_ocid
      - ${region}
      - ${localAD}
  - title: "Instance Details"
    variables:
      - ${numInstances}
      - ${instanceImageOCID}
      - ${instanceShape}
  - title: "SSH Public Key"
    variables:
      - ${ssh_public_key}

variables:
  compartment_ocid:
    type: oci:identity:compartment:id
    required: true
    title: Compartment OCID

  region:
    type: oci:identity:region:name
    required: true
    title: Region

  localAD:
    type: oci:identity:availabilitydomain:name
    required: true
    title: Availability Domain
    dependsOn:
      compartmentId: compartment_ocid

  numInstances:
    type: integer
    required: true
    title: Number of Instances
    minimum: 1
    maximum: 10
    multipleOf: 1

  instanceImageOCID:
    type: oci:core:image:id
    required: true
    title: Instance Image OCID
    dependsOn:
      compartmentId: compartment_ocid

  instanceShape:
    type: oci:core:instanceshape:name
    required: true
    title: Instance Shape
    default: "VM.Standard.E2.1.Micro"
    dependsOn:
      compartmentId: compartment_ocid

  ssh_public_key:
    type: oci:core:ssh:publickey
    required: true
    title: SSH Public Key
Création d'un réseau cloud virtuel

L'exemple de code suivant crée un réseau cloud virtuel (VCN) Oracle Cloud Infrastructure nommé "ExampleVCN".

resource "oci_core_virtual_network" "ExampleVCN" {
  cidr_block = "10.1.0.0/16"
  compartment_id = "${var.compartment_ocid}"
  display_name = "TFExampleVCN"
  dns_label = "tfexamplevcn"
}
Création d'un sous-réseau dans votre réseau cloud virtuel

L'exemple de code suivant crée un sous-réseau nommé "ExampleSubnet" dans le réseau cloud virtuel défini dans l'exemple de code précédent.

resource "oci_core_subnet" "ExampleSubnet" {
  availability_domain = "${var.localAD}"
  cidr_block = "10.1.20.0/24"
  display_name = "TFExampleSubnet"
  dns_label = "tfexamplesubnet"
  security_list_ids = ["${oci_core_virtual_network.ExampleVCN.default_security_list_id}"]
  compartment_id = "${var.compartment_ocid}"
  vcn_id = "${oci_core_virtual_network.ExampleVCN.id}"
  route_table_id = "${oci_core_route_table.ExampleRT.id}"
  dhcp_options_id = "${oci_core_virtual_network.ExampleVCN.default_dhcp_options_id}"
}
Création d'une passerelle Internet

L'exemple de code suivant crée une passerelle Internet nommée "ExampleIG" dans le réseau cloud virtuel que nous avons créé.

resource "oci_core_internet_gateway" "ExampleIG" {
  compartment_id = "${var.compartment_ocid}"
  display_name = "TFExampleIG"
  vcn_id = "${oci_core_virtual_network.ExampleVCN.id}"
}
Création d'une table de routage principale

L'exemple de code suivant crée une table de routage principale Oracle Cloud Infrastructure dans le réseau cloud virtuel, puis applique deux règles de routage.

resource "oci_core_route_table" "ExampleRT" {
  compartment_id = "${var.compartment_ocid}"
  vcn_id = "${oci_core_virtual_network.ExampleVCN.id}"
  display_name = "TFExampleRouteTable"
  route_rules {
    cidr_block = "0.0.0.0/0"
    network_entity_id = "${oci_core_internet_gateway.ExampleIG.id}"
  }
}
Création d'une instance Compute

L'exemple de code étendu suivant crée une instance de calcul Oracle Cloud Infrastructure. Le code référence également l'image sur laquelle l'instance de calcul est créée, définit la taille du volume d'initialisation, ajoute des métadonnées essentielles et applique des balises libres et définies.

resource "oci_core_instance" "TFInstance" {
  count = "${var.NumInstances}"
  availability_domain = "${var.localAD}"
  compartment_id = "${var.compartment_ocid}"
  display_name = "TFInstance${count.index}"
  shape = "${var.InstanceShape}"
 
  create_vnic_details {
    subnet_id = "${oci_core_subnet.ExampleSubnet.id}"
    display_name = "primaryvnic"
    assign_public_ip = true
    hostname_label = "tfexampleinstance${count.index}"
  }
 
  source_details {
    source_type = "image"
    source_id = "${var.InstanceImageOCID[var.region]}"
 
    # Apply this to set the size of the boot volume that's created for this instance.
    # Otherwise, the default boot volume size of the image is used.
    # This should only be specified when source_type is set to "image".
    #boot_volume_size_in_gbs = "60"
  }


    # Apply the following flag only if you wish to preserve the attached boot volume upon destroying this instance
  # Setting this and destroying the instance will result in a boot volume that should be managed outside of this config.
  # When changing this value, make sure to run 'terraform apply' so that it takes effect before the resource is destroyed.
  #preserve_boot_volume = true
 
  metadata = {
    ssh_authorized_keys = "${var.ssh_public_key}"
  
  }
  timeouts {
    create = "60m"
  }
}
Finalisation de la configuration

Assurez-vous que tous les fichiers de configuration se trouvent dans un répertoire unique. Vous pouvez stocker votre fichier de configuration Terraform en local ou dans un système de contrôle de code source. Pour plus d'informations sur le stockage de votre fichier dans un système de contrôle de code source, reportez-vous à Gestion des fournisseurs de source de configuration. Quel que soit l'emplacement de stockage de votre fichier, vous pouvez le sélectionner lors de la création d'une pile à l'aide de l'interface de ligne de commande ou de la console.

Important

Assurez-vous que le fichier de configuration Terraform est valide. Reportez-vous à Création de configurations et à Configurations Terraform pour Resource Manager.

Tâche 2 : provisionner l'infrastructure

Utilisez votre configuration Terraform pour créer et déployer votre infrastructure en effectuant les actions suivantes :

  1. Si vous avez créé votre propre configuration Terraform, suivez ces étapes pour créer une pile dans un compartiment de location de votre choix. (Si vous avez sélectionné une configuration prédéfinie, ignorez cette étape.)

    Pour les sources de configuration Terraform prises en charge avec Resource Manager, reportez-vous à Emplacement de stockage des configurations Terraform.

    Une pile est un ensemble de ressources que vous pouvez gérer en tant que groupe. Toutes les ressources que vous indiquez dans votre configuration sont provisionnées dans la pile que vous créez.

    Vous pouvez créer une pile à partir d'un fichier distant avec numéro de version dans un système de contrôle de code source (tel que Git), un seau Object Storage ou un fichier .zip accessible localement que vous téléchargez. Vous trouverez ci-dessous des instructions pour un fichier local.

    Pour créer une pile à partir du fichier .zip (console)
    1. Ouvrez le menu de navigation et cliquez sur Services de développeur. Sous Gestionnaire de ressources, cliquez sur Piles.
    2. Sous Portée de la liste, sélectionnez un compartiment dans lequel vous êtes autorisé à travailler.

    3. Cliquez sur Créer une pile.

      La page Créer une pile s'ouvre, avec l'onglet Informations sur la pile sélectionné.

    4. Sur la page Créer une pile, sous Choisir l'origine de la configuration Terraform, sélectionnez Ma configuration.

    5. Sous Configuration de pile, cliquez sur . Fichier ZIP et ajoutez la configuration Terraform.

      Vous pouvez glisser-déplacer le fichier .zip de configuration Terraform vers le contrôle ou cliquer sur Parcourir et accéder à l'emplacement du fichier .zip.

      Vous pouvez également stocker votre configuration à distance. Par exemple, stockez la configuration dans Git ou dans un seau Object Storage.

      La page est alimentée avec les informations contenues dans la configuration Terraform.

    6. Entrez des valeurs pour les autres champs.
      Nom Description
      Utiliser des fournisseurs personnalisés Sélectionnez cette option pour utiliser des fournisseurs personnalisés, puis sélectionnez le bucket contenant les fournisseurs personnalisés.
      Nom Nom de pile. Vous pouvez accepter le nom par défaut fourni. Evitez de saisir des informations confidentielles.
      Description Description de la pile (facultatif).
      Créer dans le compartiment Compartiment dans lequel créer la pile. Un compartiment inclus dans la portée de la liste est défini par défaut.
      Version de Terraform Version souhaitée pour la configuration Terraform.
      Balises Vous pouvez éventuellement appliquer des balises à la pile.
    7. Cliquez sur Suivant.

      Le panneau Configurer des variables répertorie les variables de la configuration Terraform.

    8. Vérifiez les variables et modifiez-les si nécessaire.

      N'ajoutez pas votre clé privée ou d'autres informations confidentielles aux variables de configuration.
    9. Cliquez sur Suivant.

    10. Dans le panneau Vérifier, vérifiez la configuration de la pile.

    11. Pour provisionner automatiquement les ressources lors de la création de la pile, sélectionnez Exécuter l'application.

    12. Cliquez sur Créer pour créer la pile.

      La pile est créée et sa page Détails de la pile s'ouvre.

      Si vous avez sélectionné Exécuter l'application, Resource Manager exécute l'action d'application sur la nouvelle pile.

    Pour créer une pile à partir de votre fichier .zip (CLI)

    Utilisez la commande associée à l'emplacement du fichier.

    Procédure de création d'une pile à partir d'un fichier distant avec numéro de version

    Utilisez la commande oci resource-manager stack create-from-git-provider et les paramètres requis pour créer une pile à partir de Git.

    oci resource-manager stack create-from-git-provider [OPTIONS]

    Pour obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Resource Manager.

    Exemple de demande
    oci resource-manager stack create-from-git-provider --compartment-id ocid1.tenancy.oc1..uniqueid --config-source-configuration-source-provider-id ocid.ormconfigsourceprovider.oc1..uniqueid --config-source-repository-url https://github.com/user/repo.git --config-source-branch-name mybranch --display-name "My Stack from Git" --description "My Test" --variables file://variables.json --working-directory ""
    Pour créer une pile à partir du fichier .zip
    Remarque

    Sous Windows, assurez-vous que le fichier ZIP et les fichiers variables.json se trouvent dans le même répertoire que celui à partir duquel vous exécutez l'interface de ligne de commande. L'interface de ligne de commande présente actuellement une limite sous Windows, qui empêche la gestion correcte des fichiers si l'un d'entre eux se trouve dans un sous-répertoire.

    Utilisez la commande oci resource-manager stack create et les paramètres requis pour créer une pile à partir d'un fichier ZIP local.

    oci resource-manager stack create [OPTIONS]

    Pour obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Resource Manager.

    Exemple de demande
    oci resource-manager stack create --compartment-id ocid1.tenancy.oc1..uniqueid --config-source vcn.zip --variables file://variables.json --display-name "My Example Stack" --description "My Tutorial to Create a VCN" --working-directory ""
    Exemple de réponse
    {
      "data": {
        config-source": 
        {
          "working-directory": null,
          "config-source-type": "ZIP_UPLOAD"
        },
        "defined-tags": {},
        "description": "My Tutorial to Create a VCN",
        "display-name": "My Example Stack",
        "freeform-tags": {},
        "id": "ocid1.ormstack.oc1..uniqueid",
        "lifecycle-state": "ACTIVE",
        "time-created": "2019-04-03T18:26:56.299000+00:00",
        "variables": 
        {
          "compartment_ocid": "ocid1.compartment.oc1..uniqueid", 
          "region": "us-phoenix-1"
        }
      }
    }
  2. Générez un plan d'exécution.

    Le travail de planification analyse votre configuration pour créer un "plan d'exécution", qui est une représentation pas à pas du déploiement planifié dans les entrées de journal du travail. Une fois le travail de planification terminé, vous pouvez évaluer le plan d'exécution en consultant les entrées de journal du travail afin de confirmer qu'il effectue les opérations attendues et dans la séquence voulue.

    Remarque

    Vous pouvez ignorer cette étape si vous avez sélectionné Exécuter l'application lors de la création de la pile. Dans ce cas, les ressources ont déjà été provisionnées.
    Procédure d'exécution d'un travail de planification (console)
    1. Ouvrez le menu de navigation et cliquez sur Services de développeur. Sous Gestionnaire de ressources, cliquez sur Piles.
    2. Sous Portée de la liste, sélectionnez un compartiment dans lequel vous êtes autorisé à travailler.

    3. Cliquez sur le nom de la pile souhaitée.

      La page Détails de pile apparaît.

    4. Cliquez sur Planifier.

    5. Dans le panneau Plan, vérifiez le nom et, éventuellement, modifiez-le.

    6. Cliquez sur Planifier.

      Le travail de plan est créé. Le nouveau travail apparaît sous Tâches.

      Surveillez le statut du travail (état de cycle de vie) en obtenant les détails du travail. Succès (SUCCEEDED) indique que le travail est terminé. Selon la complexité du travail, l'opération peut prendre un certain temps. Lorsque le travail est exécuté ou une fois terminé, vous pouvez obtenir le contenu des journaux de travail.

    Procédure d'exécution d'un travail de planification (interface de ligne de commande)

    Utilisez la commande oci resource-manager job create-plan-job et les paramètres requis pour exécuter un travail de plan.

    oci resource-manager job create-plan-job [OPTIONS]

    Pour obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Resource Manager.

    Surveillez le statut du travail (état de cycle de vie) en obtenant les détails du travail. Succès (SUCCEEDED) indique que le travail est terminé. Selon la complexité du travail, l'opération peut prendre un certain temps. Lorsque le travail est exécuté ou une fois terminé, vous pouvez obtenir le contenu des journaux de travail.

  3. Vérifiez le plan d'exécution pour vous assurer qu'il correspond à vos attentes.

    Le plan d'exécution est représenté dans le journal du travail de planification exécuté précédemment.

    Remarque

    Vous pouvez ignorer cette étape si vous avez sélectionné Exécuter l'application lors de la création de la pile. Dans ce cas, les ressources ont déjà été provisionnées.
    Procédure de vérification d'un plan d'exécution (journal du travail de planification) (console)
    1. Ouvrez le menu de navigation et cliquez sur Services de développeur. Sous Gestionnaire de ressources, cliquez sur Travaux.

      Vous pouvez également accéder aux travaux à partir de la page des détails d'une pile. Cliquez sur Piles, puis sur le nom de la pile voulue.

    2. Sous Portée de la liste, sélectionnez un compartiment dans lequel vous êtes autorisé à travailler.

    3. Cliquez sur le nom du travail de planification que vous avez exécuté.

      La page Détails du travail apparaît. Les journaux sont visibles (dans la section Logs sous Resources).

      Pour les travaux de planification, le fichier journal est le plan d'exécution. Consultez le fichier journal du travail de planification et repérez les champs "message" dans la séquence des entrées du fichier journal. Ces valeurs représentent la séquence des opérations indiquées dans votre configuration.

    4. (Facultatif) Cliquez sur Download logs (dans la section Logs sous Resources).

    Si des modifications sont nécessaires, mettez à jour votre pile pour utiliser une configuration révisée, puis exécutez un autre travail de planification pour obtenir un plan d'exécution mis à jour.

    Procédure de vérification d'un plan d'exécution (journal du travail de planification) (interface de ligne de commande)

    Utilisez la commande oci resource-manager job get-job-logs et les paramètres requis pour obtenir les journaux d'un travail sous forme de liste paginée d'entrées.

    oci resource-manager job get-job-logs [OPTIONS]

    Pour obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Resource Manager.

    Exemple de réponse pour un travail de plan

    La commande renvoie des objets JSON qui décrivent les entrées de journal. Chaque objet comporte un membre de message avec une propriété qui affiche une ligne du plan d'exécution. Dans cet exemple, le travail de planification crée un réseau cloud virtuel unique (VCN) ; les membres restants affichent des détails sur le VCN.

    ...
                    {
                    "level": "INFO",
                    "message": "Terraform will perform the following actions:",
                    "timestamp": "2018-05-24T00:57:14.170000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "",
                    "timestamp": "2018-05-24T00:57:14.170000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "+ oci_core_virtual_network.vcn1",
                    "timestamp": "2018-05-24T00:57:14.170000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "id: <computed>",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "cidr_block:  \"10.0.0.0/16\",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "compartment_id:  \"ocid1.tenancy.oc1..exampleaqnpcpfqfmrf6dw5gcew7yqpirvarueirj2mv4jzn5goejsxma\",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "default_dhcp_options_id:  <computed_value>",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "      default_route_table_id: <computed_value>",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    {
                    "level": "INFO",
                    "message": "      default_security_list_id: <computed_value>",
                    "timestamp": "2018-05-24T00:57:14.172000+00:00",
                    "type": "TERRAFORM_CONSOLE"
                    },
                    ...
                  

    Si des modifications sont nécessaires, mettez à jour votre pile pour utiliser une configuration révisée, puis exécutez un autre travail de planification pour obtenir un plan d'exécution mis à jour.

  4. Provisionnez vos ressources en exécutant un travail d'application selon le plan d'exécution.

    Une fois que vous êtes satisfait du plan d'exécution, vous êtes prêt à provisionner la pile avec les ressources que vous avez définies. Le travail d'application suit le plan d'exécution et l'applique à la pile. La pile est alors entièrement provisionnée.

    Remarque

    Vous pouvez ignorer cette étape si vous avez sélectionné Exécuter l'application lors de la création de la pile. Dans ce cas, les ressources ont déjà été provisionnées.
    Procédure d'exécution d'un travail d'application (console)
    1. Ouvrez le menu de navigation et cliquez sur Services de développeur. Sous Gestionnaire de ressources, cliquez sur Piles.

    2. Sous Portée de la liste, sélectionnez un compartiment dans lequel vous êtes autorisé à travailler.

    3. Cliquez sur le nom de la pile que vous avez créée.

      La page Détails de pile apparaît.

    4. Cliquez sur Appliquer.

    5. (Facultatif) Dans le panneau Appliquer, vérifiez le nom et les autres paramètres du travail d'application, puis effectuez les mises à jour si nécessaire.

    6. Cliquez sur Appliquer.

      Le travail d'application est créé. Le nouveau travail apparaît sous Tâches.

      Surveillez le statut du travail (état de cycle de vie) en obtenant les détails du travail. Succès (SUCCEEDED) indique que le travail est terminé. Selon la complexité du travail, l'opération peut prendre un certain temps. Lorsque le travail est exécuté ou une fois terminé, vous pouvez obtenir le contenu des journaux de travail.

      Pour vérifier que les ressources ont bien été provisionnées, inspectez les ressources dans le compartiment.

    Procédure d'exécution d'un travail d'application (interface de ligne de commande)

    Utilisez la commande oci resource-manager job create-apply-job et les paramètres requis pour exécuter un travail d'application.

    oci resource-manager job create-apply-job [OPTIONS]

    Pour obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Resource Manager.

    Exemples

    Exemple 1 : Référencez un travail de plan.

    oci resource-manager job create-apply-job --execution-plan-strategy <plan_job_ocid> --stack-id <stack_ocid>

    Exemple 2 : Approuver automatiquement (ne pas référencer un travail du plan).

    oci resource-manager job create-apply-job --execution-plan-strategy AUTO_APPROVED --stack-id <stack_ocid>

    Surveillez le statut du travail (état de cycle de vie) en obtenant les détails du travail. Succès (SUCCEEDED) indique que le travail est terminé. Selon la complexité du travail, l'opération peut prendre un certain temps. Lorsque le travail est exécuté ou une fois terminé, vous pouvez obtenir le contenu des journaux de travail.

    Pour vérifier que les ressources ont bien été provisionnées, inspectez les ressources dans le compartiment.

  5. Vérifiez les entrées de journal et le fichier d'état du travail d'application que vous venez d'exécuter.
    • Pour plus d'informations sur le travail, reportez-vous aux entrées de journal du travail.

      Procédure d'affichage du journal du travail (console)
      1. Ouvrez le menu de navigation et cliquez sur Services de développeur. Sous Gestionnaire de ressources, cliquez sur Travaux.

        Vous pouvez également accéder aux travaux à partir de la page des détails d'une pile. Cliquez sur Piles, puis sur le nom de la pile voulue.

      2. Sous Portée de la liste, sélectionnez un compartiment dans lequel vous êtes autorisé à travailler.

      3. Cliquez sur le nom du travail d'application que vous avez exécuté.

        La page Détails du travail apparaît. Les journaux sont visibles (dans la section Logs sous Resources).

      4. (Facultatif) Cliquez sur Download logs (dans la section Logs sous Resources).

      Procédure d'affichage du journal du travail (interface de ligne de commande)

      Consultez le fichier journal et repérez les champs "message" dans la séquence des entrées du fichier journal. Vous pouvez visualiser le fichier journal du travail sous la forme d'une liste d'entrées paginée ou au format brut.

      Pour afficher une liste paginée d'entrées

      Utilisez la commande oci resource-manager job get-job-logs et les paramètres requis pour obtenir les journaux d'un travail sous forme de liste paginée d'entrées.

      oci resource-manager job get-job-logs [OPTIONS]

      Pour obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Resource Manager.

      Exemple de réponse pour un travail de plan

      La commande renvoie des objets JSON qui décrivent les entrées de journal. Chaque objet comporte un membre de message avec une propriété qui affiche une ligne du plan d'exécution. Dans cet exemple, le travail de planification crée un réseau cloud virtuel unique (VCN) ; les membres restants affichent des détails sur le VCN.

      ...
                      {
                      "level": "INFO",
                      "message": "Terraform will perform the following actions:",
                      "timestamp": "2018-05-24T00:57:14.170000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "",
                      "timestamp": "2018-05-24T00:57:14.170000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "+ oci_core_virtual_network.vcn1",
                      "timestamp": "2018-05-24T00:57:14.170000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "id: <computed>",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "cidr_block:  \"10.0.0.0/16\",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "compartment_id:  \"ocid1.tenancy.oc1..exampleaqnpcpfqfmrf6dw5gcew7yqpirvarueirj2mv4jzn5goejsxma\",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "default_dhcp_options_id:  <computed_value>",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "      default_route_table_id: <computed_value>",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      {
                      "level": "INFO",
                      "message": "      default_security_list_id: <computed_value>",
                      "timestamp": "2018-05-24T00:57:14.172000+00:00",
                      "type": "TERRAFORM_CONSOLE"
                      },
                      ...
                    
      Pour afficher les journaux sous forme brute

      Utilisez la commande oci resource-manager job get-job-logs-content et les paramètres requis pour obtenir le contenu des journaux d'un travail.

      oci resource-manager job get-job-logs-content [OPTIONS]

      Pour obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Resource Manager.

    • Le fichier d'état du travail représente la sortie du travail au format JSON.

      Le fichier d'état met les ressources de votre pile en correspondance avec votre configuration et conserve également les métadonnées de configuration essentielles, telles que les dépendances de ressource. Resource Manager génère et met à jour automatiquement les fichiers d'état lorsque vous exécutez des travaux.

      Resource Manager prend en charge le verrouillage de l'état en autorisant l'exécution d'un seul travail à la fois sur une pile donnée. Pour plus d'informations sur les fichiers d'état, reportez-vous à la page HashiCorp relative à l'état.

      Procédure d'affichage de l'état du travail (console)
      1. Ouvrez le menu de navigation et cliquez sur Services de développeur. Sous Gestionnaire de ressources, cliquez sur Travaux.

        Vous pouvez également accéder aux travaux à partir de la page des détails d'une pile. Cliquez sur Piles, puis sur le nom de la pile voulue.

      2. Sous Portée de la liste, sélectionnez un compartiment dans lequel vous êtes autorisé à travailler.

      3. Cliquez sur le nom du travail.

        La page Détails du travail apparaît.

      4. Cliquez sur Télécharger la configuration de Terraform en local.

      Procédure d'affichage de l'état du travail (interface de ligne de commande)

      Utilisez la commande oci resource-manager job get-job-tf-state et les paramètres requis pour obtenir l'état d'un travail.

      oci resource-manager job get-job-tf-state [OPTIONS]

      Pour obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Resource Manager.

      Exemple de réponse :

      {
        "data": 
        {
          "lineage": "57ef4f0c-c8cd-8a32-d45f-d2c40be7b915",
          "modules": 
          [
            {
              "depends_on": [],
              "outputs": {},
              "path": 
              [
                "root"
              ],
              "resources": 
              {
                "oci_core_virtual_network.vcn1": {
                "depends_on": [],
                "deposed": [],
                "primary": 
                {
                  "attributes": {
                  "cidr_block": "10.0.0.0/16",
                  "compartment_id": "ocid1.tenancy.oc1..uniqueid",
                  "default_dhcp_options_id": "ocid1.dhcpoptions.oc1.phx.uniqueid",
                  "default_route_table_id": "ocid1.routetable.oc1.phx.uniqueid",
                  "default_security_list_id": "ocid1.securitylist.oc1.phx.uniqueid",
                  "display_name": "My VCN display name",
                  "dns_label": "myvcntest",
                  "id": "ocid1.vcn.oc1.phx.uniqueid",
                  "state": "AVAILABLE",
                  "time_created": "2018-05-24 01:13:05.855 +0000 UTC",
                  "vcn_domain_name": "myvcntest.oraclevcn.com"
                },
                "id": "ocid1.vcn.oc1.phx.uniqueid",
                "meta": 
                {
                  "e2bfb730-ecaa-11e6-8f88-34363bc7c4c0": {
                  "create": 300000000000,
                  "delete": 300000000000,
                  "update": 300000000000
                }
              },
              "tainted": false
            },
            "provider": "provider.oci",
            "type": "oci_core_virtual_network"
                }
              }
            }
          ],
        "serial": 4,
        "terraform_version": "0.11.7",
        "version": 3
      }
      }
      Remarque

      Vous pouvez également importer des fichiers d'état pour les ressources déjà gérées par Terraform.
  6. Lorsque vous avez besoin de libérer les ressources que vous avez provisionnées, exécutez un travail de destruction sur la pile.

    Un travail de destruction permet de détacher la pile que vous avez créée, puis de nettoyer les ressources associées sans les supprimer. Par exemple, le travail de destruction met fin aux instances Compute associées à la pile.

    Remarque

    Nous vous recommandons d'exécuter un travail de destruction avant de supprimer une pile pour libérer d'abord les ressources associées. Lorsque vous supprimez une pile, le fichier d'état associé est également supprimé. Par conséquent, vous perdez la trace de l'état des ressources associées. Le nettoyage des ressources associées à une pile supprimée peut s'avérer difficile sans le fichier d'état, en particulier lorsque ces ressources sont réparties entre plusieurs compartiments. Pour éviter toute difficulté ultérieure lors du nettoyage, nous vous recommandons de d'abord libérer les ressources associées en exécutant un travail de destruction.

    Les données ne peuvent pas être récupérées à partir de ressources détruites.

    Procédure d'exécution d'un travail de destruction (console)
    1. Ouvrez le menu de navigation et cliquez sur Services de développeur. Sous Gestionnaire de ressources, cliquez sur Piles.

    2. Sous Portée de la liste, sélectionnez un compartiment dans lequel vous êtes autorisé à travailler.

    3. Cliquez sur le nom de la pile souhaitée.

      La page Détails de pile apparaît.

    4. Cliquez sur Détruire.
    5. (Facultatif) Dans le panneau Détruire, vérifiez le nom et les autres paramètres du travail d'application, puis effectuez les mises à jour si nécessaire.

    6. Cliquez sur Détruire.

      Le travail de destruction est créé. Le nouveau travail apparaît sous Tâches.

      Après avoir exécuté un travail de destruction, obtenez-le pour vérifier son statut. Vous pouvez éventuellement afficher le fichier d'état Terraform, visualiser les journaux et confirmer la suppression des ressources. Vous pouvez également recréer des ressources détruites.

      Surveillez le statut du travail (état de cycle de vie) en obtenant les détails du travail. Succès (SUCCEEDED) indique que le travail est terminé. Selon la complexité du travail, l'opération peut prendre un certain temps. Lorsque le travail est exécuté ou une fois terminé, vous pouvez obtenir le contenu des journaux de travail.

      Pour visualiser le fichier d'état Terraform (qui montre l'état de vos ressources après l'exécution du travail), cliquez sur le nom du travail pour afficher la page Détails du travail, puis cliquez sur Afficher l'état sous Ressources. Sélectionnez éventuellement Afficher les modifications apportées à cette version.

      Pour visualiser les journaux du travail, cliquez sur le nom du travail afin d'ouvrir la page Détails du travail, puis cliquez sur Journaux sous Ressources.

      Pour vérifier que les ressources ont bien été supprimées, inspectez les ressources dans le compartiment.

      Pour recréer les ressources d'une pile après leur destruction, exécutez un travail d'application. Les nouvelles ressources diffèrent des ressources précédemment détruites par leurs OCID uniques et d'autres métadonnées.

    Procédure d'exécution d'un travail de destruction (interface de ligne de commande)

    Utilisez la commande oci resource-manager job create-destroy-job et les paramètres requis pour exécuter un travail de destruction.

    oci resource-manager job create-destroy-job [OPTIONS]

    Pour obtenir la liste complète des paramètres et des valeurs pour les commandes d'interface de ligne de commande, reportez-vous à Référence de ligne de commande pour Resource Manager.

    Après avoir exécuté un travail de destruction, obtenez-le pour vérifier son statut.

    Surveillez le statut du travail (état de cycle de vie) en obtenant les détails du travail. Succès (SUCCEEDED) indique que le travail est terminé. Selon la complexité du travail, l'opération peut prendre un certain temps. Lorsque le travail est exécuté ou une fois terminé, vous pouvez obtenir le contenu des journaux de travail.

    Vous pouvez éventuellement afficher le fichier d'état Terraform, afficher les journaux et confirmer la suppression des ressources. Vous pouvez également recréer des ressources détruites.

    Pour vérifier que les ressources ont bien été supprimées, inspectez les ressources dans le compartiment.

    Pour recréer les ressources d'une pile après leur destruction, exécutez un travail d'application. Les nouvelles ressources diffèrent des ressources précédemment détruites par leurs OCID uniques et d'autres métadonnées.

Tâche 3 : répétition dans d'autres environnements

Cette section explique comment créer et déployer une infrastructure dans plusieurs environnements.

Dans ce scénario, vous utilisez le même fichier .zip de configuration Terraform pour provisionner une instance Compute dans vos environnements de développement, de préparation et de production.

Remarque

Ce scénario suppose que la configuration Terraform inclut un document de schéma, qui vous permet de modifier les valeurs de variable lors de la création d'une pile dans la console.
  1. Accédez à la location du nouvel environnement dans laquelle vous souhaitez provisionner l'infrastructure définie dans votre configuration Terraform.

    Par exemple, accédez à la location de votre environnement de préparation ou de production.

  2. Ouvrez la page Créer une pile :
    1. Ouvrez le menu de navigation et cliquez sur Services de développeur. Sous Gestionnaire de ressources, cliquez sur Piles.
    2. Sous Portée de la liste, sélectionnez un compartiment dans lequel vous êtes autorisé à travailler. La page est mise à jour et affiche uniquement les ressources contenues dans ce compartiment. Si vous ne savez pas quel compartiment utiliser, contactez un administrateur.

    3. Cliquez sur Créer une pile.
  3. A l'aide de la même configuration Terraform que pour le premier environnement, complétez l'onglet Informations sur la pile :

    1. Sur la page Créer une pile, sélectionnez Ma configuration.

    2. Sous Configuration de pile, cliquez sur . Fichier ZIP et ajoutez la configuration Terraform.

      Vous pouvez glisser-déplacer le fichier .zip de configuration Terraform vers le contrôle ou cliquer sur Parcourir et accéder à l'emplacement du fichier .zip.

    3. Entrez le nom de la nouvelle pile (ou acceptez le nom par défaut fourni). Evitez de saisir des informations confidentielles.
    4. Entrez éventuellement une description.
    5. Dans la liste déroulante Créer dans le compartiment, sélectionnez le compartiment dans lequel créer la pile.

    6. Cliquez sur Suivant.

      Le panneau Configurer des variables affiche les variables du fichier de configuration Terraform sélectionné.

  4. Indiquez les valeurs de variable pour cet environnement :

    1. Dans le panneau Configurer des variables, vérifiez les variables et modifiez-les si nécessaire.

      Les valeurs par défaut sont fournies lorsqu'elles sont spécifiées dans le document de schéma.

      Important

      N'ajoutez pas votre clé privée ou d'autres informations confidentielles aux variables de configuration.
    2. Cliquez sur Suivant.
  5. Vérifiez la configuration de votre pile dans le panneau Vérifier.
  6. Pour provisionner automatiquement les ressources lors de la création de la pile, sélectionnez Exécuter l'application.

  7. Cliquez sur Créer pour créer votre pile.

    La page de détails de la nouvelle pile apparaît.

    Si vous avez sélectionné Exécuter l'application, Resource Manager exécute l'action d'application sur la nouvelle pile.

Félicitations, vous avez réutilisé votre configuration Terraform pour créer une pile dans un nouvel environnement. Si vous avez sélectionné Exécuter l'application, vous avez également provisionné des ressources dans le nouvel environnement.

Vous pouvez maintenant générer et vérifier un plan d'exécution (et provisionner des ressources si l'option Exécuter l'application n'a pas été sélectionnée). Pour terminer ces éléments, répétez les étapes de la Tâche 2 : provisionner l'infrastructure dans le nouvel environnement.