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

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 Windows, 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 dossier C:\Program Files (x86).
    Ce chemin est utilisé comme exemple. Cependant, vous pouvez également l'exécutable Terraform à tout autre emplacement du système local.
  4. Mettez à jour la variable d'environnement de chemin pour inclure le dossier dans lequel se trouve l'exécutable Terraform.
    1. Accédez au panneau de configuration.
    2. Cliquez sur Système.
    3. Sur un système Windows 10, cliquez sur Paramètres système avancés. Cette option peut varier selon les versions de Windows.
      L'onglet Avancé de la fenêtre Propriétés système apparaît.
    4. Cliquez sur Variables d'environnement en bas de la fenêtre.
      La fenêtre Variables d'environnement apparaît.
    5. Dans le panneau Variables système, cliquez sur Chemin et sur Modifier.
    6. Cliquez sur Nouveau. Ajoutez le chemin du dossier dans lequel se trouve l'exécutable Terraform.
    7. Cliquez sur OK pour enregistrer vos modifications, puis sur OK pour quitter la fenêtre Variables d'environnement. Cliquez de nouveau sur OK pour quitter la fenêtre Propriétés système.
  5. Pour vérifier votre installation et vérifier la version, lancez Windows PowerShell et entrez : 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 dossier de votre système local.
  3. Lancez Windows PowerShell et accédez au dossier dans lequel se trouvent les modules Terraform. Entrez 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 générer une paire de clés SSH à l'aide de PuTTYgen. Ne définissez pas de phrase secrète pour votre clé SSH.

  1. Démarrez PuTTYgen.
  2. Acceptez le type de clé par défaut SSH-2 RSA et définissez le nombre de bits d'une clé générée sur 2048 s'il n'est pas déjà défini.
  3. Cliquez sur Générer, puis déplacez la souris autour de la zone vide pour générer le caractère aléatoire.
    La clé est générée et sa valeur apparaît sous Clé publique pour la coller dans le fichier OpenSSH authorized_keys.
  4. Cliquez sur Enregistrer la clé privée. Vous êtes invité à confirmer que vous voulez enregistrer la clé sans phrase secrète. Cliquez sur Oui. Vous pouvez stocker cette clé à n'importe quel emplacement, mais, pour une simplicité, la stocker dans le même dossier que celui où se trouvent les modules Terraform.
  5. Ensuite, pour enregistrer la clé publique, sélectionnez toutes les clés générées qui apparaissent dans la clé publique pour la coller dans le champ du fichier OpenSSH authorized_keys, copiez-la et collez-la dans un fichier texte. Enregistrez ce fichier au même emplacement que la clé privée. N'utilisez pas le bouton Enregistrer la clé publique car il ne sauvegarde pas la clé au format OpenSSH.
Vous avez désormais généré et stocké la paire de clés SSH dans votre système local. Veillez à noter l'emplacement de stockage de cette paire de clés.

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 paire de clés SSH utilisée pour activer l'accès à partir de l'hôte de base vers d'autres instances doit être générée à l'aide d'un utilitaire tel qu'OpenSSL ou ssh-keygen. Vous ne pouvez pas utiliser une paire de clés SSH générée sous Windows à l'aide de PuTTY, car le format.ppk utilisé par PuTTY n'est pas pris en charge sur Oracle Linux ou d'autres systèmes d'exploitation de type UNIX. N'oubliez pas que l'hôte de base, qui transmet le trafic SSH à d'autres instances, utilise une image Oracle Linux.

  1. Démarrez le Bash Git.
  2. 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 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 générer cette paire de clés à l'aide d'OpenSSL dans le répertoire de base Git. Vous devez avoir déjà installé Git Bash sur votre système local.

  1. Démarrez le Bash Git.
  2. Créez un dossier masqué pour stocker la clé PEM. Vous pouvez stocker la clé PEM dans n'importe quel emplacement, mais pour des raisons de simplicité, créez ce dossier sous le dossier contenant les modules Terraform. Veillez à noter l'emplacement de stockage de la paire de clés. Accédez à cet emplacement et entrez : mkdir./.oci
  3. Pour créer la clé de signature d'API, entrez : openssl genrsa -out./.oci/key_name.pem 2048
  4. 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
  5. Ensuite, pour 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
La clé de signature d'API publique et privée est stockée dans le dossier indiqué.

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, lancez Git Bash. Accédez au dossier dans lequel vous avez stocké la paire de clés de signature d'API.
  6. Pour copier la clé publique, entrez : cat./key_name_public.pem. La valeur de la clé publique est affichée. Copier cette valeur, y compris les lignes -----BEGIN PUBLIC KEY----- et -----END PUBLIC KEY-----.
  7. 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.ps1 dans un éditeur de texte.
  3. Le fichier env-vars comporte plusieurs 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 les sections des clés publiques/privées du fichier env-vars, entrez le chemin complet et le nom de fichier de la clé publique SSH, ainsi que la clé privée SSH sur votre système local. Vérifiez que les clés publiques et privées que vous indiquez pour l'utilisation sur les hôtes de base sont la paire de clés que vous avez créée à l'aide de PuTTY et que les clés que vous indiquez pour utilisation sur les autres instances sont les paires de clés que vous avez créées à l'aide de ssh-keygen.
  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, lancez PowerShell Windows, accédez au dossier dans lequel se trouvent les modules Terraform et entrez : env-vars.ps1
    Le fichier env-vars.ps1, qui permet de définir toutes les variables indiquées dans ce fichier pour la session en cours.
  9. Pour vérifier que les variables d'environnement ont été définies, entrez : dir env :
    Répertorie toutes les variables d'environnement. Vous pouvez visualiser les variables TF_VAR pour vérifier que leurs valeurs ont été définies comme prévu.

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.

  • Lancez Windows PowerShell et accédez au dossier 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.