Configurations Terraform pour Resource Manager

Passez en revue les exigences et les recommandations pour les configurations Terraform utilisées avec Resource Manager. Utilisez Terraform et Resource Manager pour installer, configurer et gérer les ressources à l'aide du modèle Infrastructure-as-Code.

Pour obtenir des informations de base sur les configurations Terraform, reportez-vous à Création de configurations. Pour obtenir des instructions concernant l'utilisation de configurations avec des piles et des travaux, reportez-vous à Gestion des piles et des travaux.

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

Outre l'écriture de votre propre fichier de configuration Terraform, vous pouvez également générer une configuration Terraform à partir d'un compartiment existant à l'aide du repérage de ressources ou d'un exemple de modèle.

Attention

Ne fournissez pas d'informations d'identification utilisateur ou d'autres informations confidentielles dans vos configurations Terraform.

Exigences

Les fichiers de configuration Terraform utilisés avec Resource Manager doivent répondre aux exigences suivantes.

Fournisseur Terraform

Lorsque vous utilisez Resource Manager, le champ region du bloc provider "oci" est le seul champ requis. Pour plus d'informations sur la définition des fournisseurs, reportez-vous à la section Configuration File Requirements.

Structure de fichier

Resource Manager requiert la structure de fichier suivante pour la configuration Terraform:

  • Le répertoire de travail doit contenir au moins un fichier .tf. Le répertoire de travail ne peut pas contenir de répertoire .terraform.

    Le répertoire de travail est le chemin à partir duquel exécuter Terraform. Par défaut, le répertoire de travail est le répertoire racine de votre configuration (pour une configuration téléchargée vers le serveur, il s'agit de la racine du fichier .zip). Lorsque vous utilisez l'API, vous pouvez indiquer un emplacement différent pour le répertoire de travail en définissant le paramètre workingDirectory.

  • La configuration doit respecter les instructions spécifiées dans la section Authoring Configurations.
  • Aucun fichier d'état Terraform (.tfstate) ne peut exister dans la configuration.
  • Si vous prévoyez de télécharger la configuration en local, regroupez tous les fichiers dans un fichier .zip.

Variables

Nous vous recommandons d'utiliser un document de schéma avec votre configuration Terraform pour faciliter la saisie utilisateur dans la console Oracle Cloud Infrastructure.

Resource Manager n'a pas besoin des variables dans les configurations Terraform. Resource Manager prend en charge le comportement Terraform natif pour la gestion des variables. Terraform définit des variables à partir de vos définitions de variable qui utilisent des contraintes de type prises en charge. Lorsque vous exécutez un travail, les valeurs de variable de la pile sont ajoutées en tant que variables d'environnement dans l'hôte Terraform de Resource Manager. Par exemple, le VCN spécifié dans une pile pour une variable VCN donnée est ajouté en tant que variable d'environnement.

Remarque

Lorsqu'elles sont définies dans la configuration Terraform, les variables suivantes sont automatiquement préremplies avec les valeurs des pages de la console utilisées pour créer et modifier la pile. Les valeurs de la pile sont utilisées lorsque vous sélectionnez les actions Terraform Plan, Appliquer et Détruire.

  • tenancy_ocid (OCID de location)
  • compartment_ocid (OCID de compartiment)
  • region (région)
  • current_user_ocid (OCID de l'utilisateur en cours)

Configuration de fournisseur tiers

Référencez les fournisseurs Terraform tiers dans les configurations Terraform utilisées avec Resource Manager.

Par défaut, les nouvelles piles Resource Manager extraient les fournisseurs tiers à partir du registre Terraform. (A moins d'être mis à jour, certaines piles plus anciennes sont extraites de Resource Manager). Des fournisseurs personnalisés sont également disponibles pour les piles nouvelles et mises à jour.

Comme pour toute configuration de fournisseur, nous vous recommandons de spécifier des versions. Les fichiers de verrouillage de dépendance sont gérés automatiquement pour les piles nouvelles et mises à jour. Les fournisseurs sont mis à jour dans les contraintes de version de la configuration Terraform. Pour obtenir des instructions, reportez-vous à Extraction des derniers fournisseurs.

Pour plus d'informations sur l'ajout de fournisseurs aux configurations Terraform, reportez-vous à Configuration de fournisseur.

Exemple de configuration Terraform pour Resource Manager

L'exemple suivant présente une configuration Terraform contenue dans un seul fichier. Cet exemple de base définit un seul fournisseur Terraform, une seule ressource Oracle Cloud Infrastructure et un ensemble de variables.



variable "compartment_ocid" {}
variable "region" {}

provider "oci" {
  region = "${var.region}"
}

resource "oci_core_virtual_network" "vcn1" {
  cidr_block = "10.0.0.0/16"
  dns_label = "vcn1"
  compartment_id = "${var.compartment_ocid}"
  display_name = "vcn1"
}

La plupart du temps, les configurations Terraform se composent d'au moins deux fichiers regroupés (pour une configuration téléchargée vers le serveur, les fichiers seraient regroupés dans un fichier .zip). Pour consulter des configurations Terraform plus complexes comprenant plusieurs fichiers, reportez-vous aux exemples de fournisseur Oracle Cloud Infrastructure Terraform.

Conseil

Créez rapidement des piles avec des exemples de configuration OCI Terraform. Accédez à Exemples de fournisseur Oracle Cloud Infrastructure Terraform, accédez au dossier de la configuration souhaitée (par exemple, adm), puis cliquez sur le bouton Déployer vers Oracle Cloud sous Bouton magique dans le fichier Lisez-moi.

Emplacement de stockage des configurations Terraform

Lors de la création d'une pile avec Resource Manager, vous pouvez sélectionner votre configuration Terraform à partir des sources suivantes.

  • Fichier .zip local
  • Dossier local
  • Bucket Object Storage

    Le contenu le plus récent du bucket est automatiquement utilisé par tout travail exécuté sur la pile associée.

  • Système de contrôle de code source, tel que Git

    La dernière version de votre configuration est automatiquement utilisée par tout travail exécuté sur la pile associée.

  • Modèle (configuration Terraform prédéfinie d'Oracle ou modèle privé)
  • Compartiment existant (Repérage de ressources)