A propos de la configuration de Terraform sur les systèmes UNIX

Pour créer des composants Oracle Cloud Infrastructure, vous devez télécharger et installer Terraform. Vous téléchargerez également les modules Terraform qui créent les fichiers de configuration que vous allez utiliser pour créer les composants d'infrastructure requis.

Le système sur lequel vous installez Terraform et stockez les modules Teraform peut être on-premise ou dans le cloud. Pour plus de facilité, il s'agit de votre système local ou de votre hôte local.

Avant d'exécuter Terraform :

  • Générer une paire de clés SSH utilisée pour vous permettre d'accéder à vos instances de calcul

  • Générer une clé de signature d'API utilisée pour authentifier les appels d'API effectués par Terraform

  • Définissez les variables d'environnement utilisées par Terraform pour authentifier l'accès et exécuter ses plans

Une fois ces étapes terminées, vous êtes prêt à appliquer les fichiers de configuration Terraform afin de créer vos composants d'infrastructure sur Oracle Cloud Infrastructure.

Installer Terraform

Pour installer Terraform sur un système de type Linux ou UNIX, téléchargez le package approprié à partir du site Web Terraform.

  1. Accédez à https://www.terraform.io/downloads.html.
  2. Téléchargez le package applicable sur votre système local.
  3. Extrayez le package vers le chemin /usr/local/bin/.
    Aucune autre installation n'est nécessaire. Terraform est maintenant installé et prêt à être utilisé.

    Vous pouvez également extraire Terraform vers un autre emplacement du système local. Assurez-vous simplement que l'emplacement est ajouté à la variable d'environnement PATH sur votre système.

  4. Pour vérifier votre installation et vérifier la version, ouvrez un terminal et exécutez terraform -version.
    Vous verrez la version Terraform affichée dans la sortie. Par exemple : Terraform v0.11.8

Télécharger les modules Terraform

Pour commencer à créer des composants d'infrastructure dans Oracle Cloud Infrastructure à l'aide de Terraform, téléchargez les modules Terraform.

  1. Utilisez Git ou un navigateur Web pour cloner ou télécharger les modules Terraform sur votre système local. Cliquez sur Code de téléchargement dans la navigation de gauche pour le lien vers le référentiel Git.
  2. Décompressez ou extrayez les modules Terraform vers un répertoire de votre système local.
  3. Accédez au répertoire dans lequel se trouvent les modules Terraform. Exécutez terraform init. Vous téléchargerez également le fournisseur Oracle Cloud Infrastructure pour Terraform.
    Terraform initialise les modules avec le module d'extension du fournisseur OCI. Une fois l'initialisation terminée, le message Terraform has been successfully initialized ! s'affiche.

Générer une paire de clés SSH pour accéder aux hôtes de base

Une paire de clés SSH permet d'accéder de manière sécurisée aux instances créées dans des sous-réseaux publics. Vous générez une paire de clés SSH sur l'hôte local. Les modules Terraform, puis ajoutez la clé publique SSH aux hôtes de base. Si vous devez vous connecter à l'hôte de base sur le réseau Internet public, indiquez la clé privée SSH permettant d'authentifier l'accès.

Vous pouvez utiliser l'utilitaire ssh-keygen pour générer une paire de clés SSH. Ne définissez pas de phrase secrète pour votre clé SSH.

  • Pour générer une paire de clés SSH à l'aide de l'utilitaire ssh-keygen, dans un terminal, entrez : ssh-keygen -t rsa -N "" -b 2048 -C "<key_name>" -f <path/root_name>
    Dans cette commande :
    • -t rsa indique que la clé doit être générée à l'aide de l'algorithme RSA

    • -N "" indique la phrase secrète que vous voulez associer à cette clé. Ne saisissez rien entre les guillemets. La clé est créée sans phrase secrète.

    • -b 2048 indique que vous voulez générer une clé 2048bits. Il s'agit de la valeur par défaut, qui est également la valeur minimale recommandée.

    • -C "<key_name>" indique le nom de cette paire de clés.

    • -f <path/root_name> indique l'emplacement où la clé est enregistrée et le nom racine de la clé publique et privée. La clé publique comporte.pub ajouté au nom racine.

La paire de clés SSH est générée et enregistrée à l'emplacement que vous avez indiqué. Notez ce lieu.

Générer une paire de clés SSH pour accéder à d'autres instances

Les hôtes de base permettent d'activer la retransmission SSH vers d'autres instances qui ne disposent pas d'adresses IP publiques et n'autorisent pas l'accès sur le réseau Internet public. Pour accéder de manière sécurisée à d'autres instances à partir de l'hôte de base, vous utilisez une paire de clés SSH où la clé publique stockée sur les instances des sous-réseaux privés correspond à une clé privée stockée sur l'ordinateur local. La meilleure pratique en matière de sécurité consiste à ne pas utiliser cette paire de clés SSH pour accéder à l'hôte de base.

Utilisez ssh-keygen sur l'hôte local pour générer une autre paire de clés SSH. Créez une note de l'emplacement où vous enregistrez cette paire de clés SSH.

Générer une clé de signature d'API

Vous devez indiquer une paire de clés RSA au format Privacy Enhanced Mail (PEM) pour authentifier le script Terraform avec Oracle Cloud Infrastructure. Cette clé de signature d'API est différente de la paire de clés SSH que vous utilisez pour accéder aux instances. Vous pouvez utiliser OpenSSL pour générer cette paire de clés.

  1. Créez un répertoire masqué dans votre zone d'accueil pour stocker la clé PEM. Entrez : mkdir ~/.oci
  2. Utilisez OpenSSL pour générer une clé privée. N'oubliez pas d'indiquer 2048 bits ou plus lorsque vous générez la clé privée. Entrez : openssl genrsa -out ~/.oci/key_name.pem 2048
  3. Modifiez les droits d'accès sur la clé privée pour vous assurer que vous êtes le seul à pouvoir lire la clé privée. Entrez : chmod go-rwx ~/.oci/key_name.pem
  4. Utilisez ensuite OpenSSL afin de générer la clé publique pour la clé privée indiquée. Entrez : openssl rsa -pubout -in ~/.oci/key_name.pem -out ~/.oci/key_name_public.pem
Vous pouvez stocker la clé de signature d'API à tout autre emplacement de votre choix. Toutefois, veillez à noter cet emplacement.

Télécharger la clé de signature d'API à l'aide de la console

Une fois que vous avez généré une clé de signature d'API, vous devez télécharger la clé publique pour l'utilisateur associé dans Oracle Cloud Infrastructure. La première fois que vous téléchargez une clé de signature d'API, vous devez utiliser la console. Par la suite, vous pouvez également utiliser l'API pour télécharger une clé d'API.

  1. Connectez-vous à la console Oracle Cloud Infrastructure.
  2. Cliquez sur Identité, puis sur Utilisateurs.
  3. Cliquez sur l'utilisateur pour lequel vous voulez ajouter la clé de signature d'API.
  4. Sur la page des détails d'utilisateur, cliquez sur Ajouter une clé publique.
  5. Sur votre système local, pour copier la clé publique, entrez : cat ~/.oci/key_name_public.pem | pbcopy
    Si vous avez enregistré votre clé à un autre emplacement, entrez le chemin de cet emplacement.
  6. Dans la console, collez la valeur de clé publique et cliquez sur Ajouter.

Définir des variables d'environnement

Les modules Terraform fournis ici vous permettent de définir des variables d'environnement en indiquant les valeurs requises dans un fichier texte. Vous pouvez ensuite uniquement approvisionner le fichier pour vous assurer que toutes les variables d'environnement requises sont définies correctement.

Avant de commencer, connectez-vous à la console Oracle Cloud Infrastructure. La console vous permettra de trouver les informations suivantes.

  • ID Oracle Cloud Infrastructure de location (OCID)

  • OCID utilisateur

  • Empreinte de la clé de signature d'API à utiliser

  • Région

  • OCID du compartiment

Veillez également à connaître l'emplacement où la clé de signature de l'API et la paire de clés SSH sont stockées sur le système local.

  1. Sur votre système local, accédez au répertoire dans lequel se trouvent les modules Terraform.
  2. Ouvrez le fichier env-vars dans un éditeur de texte.
  3. Le fichier env-vars comporte quatre sections. Commencez par la section des détails d'authentification.
    1. Entrez l'OCID de location. Vous trouverez l'OCID de location au bas de la console Oracle Cloud Infrastructure. Il s'agit d'une chaîne semblable à : ocid1.tenancy.oc1..aaaaa.... Collez cette valeur dans le fichier env-vars.
    2. Entrez l'OCID utilisateur. Pour rechercher votre utilisateur OCID, dans la console Oracle Cloud Infrastructure, cliquez sur Identité, puis sur Utilisateurs. La liste des utilisateurs s'affiche avec l'utilisateur OCID. Cliquez sur Copier sous le nom utilisateur pour copier l'OCID utilisateur requis. Collez cette valeur dans le fichier env-vars.
    3. Entrez l'empreinte de clé de signature d'API. Dans la console Oracle Cloud Infrastructure, sur la page Utilisateurs, cliquez sur l'utilisateur pour visualiser la page des détails sur l'utilisateur. Copiez l'empreinte de clé d'API à partir de la clé répertoriée dans la section Clés d'API. Collez cette valeur dans le fichier env-vars.
    4. Entrez le chemin complet et le nom de fichier de la clé privée d'API sur votre système local.
  4. Dans la section Région du fichier env-vars, entrez la région dans laquelle créer les composants d'infrastructure. La région que vous visualisez est affichée en haut de la console Oracle Cloud Infrastructure. Vous pouvez également utiliser la console pour rechercher d'autres régions auxquelles vous avez accès.
  5. Dans la section Catégorie du fichier env-vars, entrez l'OCID du compartiment dans lequel vous souhaitez créer les composants d'infrastructure. Assurez-vous que l'utilisateur que vous avez indiqué précédemment appartient à un groupe disposant des droits d'accès requis pour la catégorie indiquée ici. Pour rechercher l'OCID du compartiment, accédez à la console Oracle Cloud Infrastructure. Cliquez sur Identité, puis sur Catégories. La liste des catégories apparaît, ainsi que l'OCID de compartiment. Cliquez sur Copier sous le nom du compartiment pour copier l'OCID de compartiment requis. Collez cette valeur dans le fichier env-vars.
  6. Dans la section Clés publiques/privées du fichier env-vars, pour les hôtes de base et autres instances, entrez le chemin complet et le nom de fichier des clés publiques et privées SSH appropriées sur votre système local. La clé privée doit être au format openssh.
  7. Vérifiez que vous avez correctement entré toutes les valeurs. Si vous avez omis des valeurs, vous serez invité à entrer les données lorsque vous exécutez Terraform. Si vous avez indiqué des valeurs incorrectes, Terraform générera une erreur. Lorsque toutes les valeurs vous conviennent, enregistrez et fermez le fichier env-vars.
  8. Pour définir les variables d'environnement spécifiées dans le fichier env-vars, ouvrez un terminal et accédez au répertoire dans lequel se trouvent les modules Terraform. Entrez : source./env-vars

Vérifier la configuration du territoire

Une fois que vous avez défini toutes les variables d'environnement requises, vérifiez que vous êtes prêt à exécuter Terraform.

  • Dans un terminal, accédez au répertoire dans lequel se trouvent les modules Terraform. Entrez : terraform plan
    La sortie de cette commande indique le plan d'exécution de toutes les configurations dans tous les modules du répertoire en cours. Cette sortie décrit les actions que Terraform prendra pour modifier l'infrastructure en cours afin qu'elle corresponde aux configurations. Lorsqu'aucun composant n'a été créé, la sortie affiche la liste des composants qui seront créés lors de l'exécution de terraform apply. Cette commande ne crée aucun composant et est exécutée en toute sécurité si vous voulez seulement vérifier que votre configuration a réussi et que toutes les valeurs d'authentification requises ont été correctement stockées dans les variables d'environnement appropriées.