A propos du développement des composants d'infrastructure à l'aide de Terraform

Les modules de territoire que vous avez téléchargés contiennent des scripts distincts pour créer et configurer différents composants d'infrastructure. Vous pouvez visualiser et modifier ces scripts pour comprendre les composants qui seront créés et leurs caractéristiques.

Le niveau racine du répertoire Terraform contient le fichier de configuration principal, main.tf,, qui fait référence aux fichiers de configuration dans différents sous-répertoires. Ce répertoire contient également les fichiers qui définissent les variables utilisées dans les fichiers de configuration Terraform ou qui contiennent des informations sur le fournisseur Terraform, les ressources de données ou la sortie. En outre, les fichiers de configuration Terraform permettant de créer des listes de sécurité et des tables d'acheminement sont également situés au niveau racine.

Le répertoire Terraform contient un répertoire modules. Le répertoire modules contient les éléments suivants :

  • bastion : permet de créer des hôtes de base.

  • compute : permet de créer des instances UNIX et Windows Oracle Cloud Infrastructure Compute.

  • dbsystem : permet de créer des systèmes Oracle Cloud Infrastructure Database.

  • filesystem : permet de créer un système de fichiers Oracle Cloud Infrastructure File Storage.

  • loadbalancer : permet de créer des instances d'équilibrage de charge Oracle Cloud Infrastructure.

  • network : permet de créer des ressources réseau telles que le réseau cloud virtuel, les sous-réseaux, la passerelle Internet, la passerelle de service, la passerelle de routage dynamique (DRG) et la passerelle NAT.

A propos des composants d'infrastructure à créer

Avant de créer des composants d'infrastructure, vous devez fournir des informations concernant le type, le nombre et la distribution de vos composants. Par exemple, vous pouvez indiquer le nombre d'instances d'application dont vous avez besoin, si vous voulez que toutes vos ressources soient créées dans un seul domaine de disponibilité ou sur deux domaines de disponibilité, l'édition et la version de la base de données sur les systèmes de base de données, etc.

Utilisez le fichier terraform.tfvars au niveau racine du répertoire Terraform pour fournir cette entrée. Ouvrez le fichier terraform.tfvars dans un éditeur de texte et saisissez les informations requises. Reportez-vous au fichier README fourni dans le répertoire de niveau racine pour connaître les valeurs suggérées que vous pouvez utiliser dans ce fichier.

Les modules Terraform par défaut créent des composants dans deux domaines de disponibilité. Elle est régie par la valeur de la variable AD dans le fichier terraform.tfvars. Vous pouvez visualiser ou modifier les domaines de disponibilité qui seront utilisés pour héberger les composants de votre infrastructure en modifiant cette valeur. Si vous voulez créer des composants dans un domaine de disponibilité unique, définissez la valeur d'AD sur le domaine de disponibilité obligatoire 1, 2, or 3, dans le fichier terraform.tfvars. Si vous souhaitez créer des composants dans deux domaines de disponibilité, indiquez ou modifiez le nombre de domaines de disponibilité.

Si vous appliquez les fichiers de configuration Terraform à l'aide des valeurs par défaut suggérées sans apporter de modifications, les composants d'infrastructure suivants sont créés dans deux domaines de disponibilité.

  • Un réseau cloud virtuel portant le nom psftvcn et la plage d'adresses IP 172.16.0.0/16.

  • Nommez les sous-réseaux, huit dans chaque domaine de disponibilité. Chaque sous-réseau possède un CIDR /24. Par exemple : 172.16.4.0/24. Le nombre suffixé au nom de chaque sous-réseau indique le domaine de disponibilité dans lequel le sous-réseau est créé.

    • Sous-réseaux privés pour les serveurs d'applications, avec le nom appsubad1 et appsubad2.

    • Sous-réseaux privés pour les serveurs Web, avec le nom websubad1 et websubad2.

    • Sous-réseaux privés pour les équilibreurs de charge, avec le nom lbsubad1 et lbsubad2.

    • Sous-réseaux privés pour les systèmes de base de données, avec le nom dbsubad1 et dbsubad2.

    • Sous-réseaux privés pour les serveurs ElasticSearch, avec le nom essubad1 et essubad2

    • Sous-réseaux privés pour les instances PeopleTools, avec le nom toolsssubad1 et toolssubad2.

    • Sous-réseaux privés du service de système de fichiers, avec le nom fsssubad1 et fsssubad2.

    • Sous-réseaux publics pour les hôtes de base, avec le nom bassubad1 et bassubad2.

  • Tables de routage suivantes. Le libellé DNS du réseau cloud virtuel spécifié dans le fichier terraform.tfvars est ajouté au nom de chaque table de routage.

    • Table d'acheminement par défaut ne comportant aucune règle.

    • Table d'acheminement privé psftvcnpvtrt, qui comporte des règles d'acheminement pour acheminer le trafic Object Storage vers la passerelle de service et tout autre trafic vers l'instance NAT.

    • Table d'acheminement public psftvcnpubrt, qui comporte une règle d'acheminement pour acheminer le trafic vers la passerelle Internet.

  • Les listes de sécurité suivantes :

    • Liste de sécurité par défaut.

    • Liste de sécurité pour le sous-réseau des serveurs d'applications, nommée AppSecList.

    • Liste de sécurité pour le sous-réseau d'hôtes de base, nommée BastionSecList.

    • Liste de sécurité pour le sous-réseau de base de données, nommée DBSecList.

    • Liste de sécurité pour le sous-réseau de serveur ElasticSearch, nommée ESSecList.

    • Liste de sécurité pour le sous-réseau de serveurs du système de fichiers, nommée FSSSecList.

    • Liste de sécurité pour le sous-réseau d'équilibreur de charge, nommée LBSecList.

    • Liste de sécurité pour le sous-réseau PeopleTools, nommée PToolsSecList.

    • Liste de sécurité pour le sous-réseau de serveur Web, nommée WebSecList.

  • Une passerelle Internet, nommée psftvcnigw. Le libellé DNS indiqué dans le fichier terraform.tfvars, est ajouté au nom de la passerelle Internet. La passerelle Internet connecte le bord du réseau cloud à Internet. Le trafic de votre réseau cloud virtuel vers une adresse IP publique en dehors du réseau cloud virtuel passe par la passerelle Internet.

  • Une passerelle de routage dynamique nommée psftvcndrg. Le nom du libellé DNS indiqué dans le fichier terraform.tfvars est ajouté au préfixe du nom de la passerelle de routage dynamique. La passerelle de routage dynamique fournit un chemin pour le trafic entre votre réseau cloud virtuel et vos destinations autres qu'Internet ; par exemple, le trafic vers votre réseau on-premise à l'aide du VPN IPSec ou d'Oracle Cloud Infrastructure FastConnect, ou le trafic vers un réseau cloud virtuel dans une autre région à l'aide de l'appairage réseau cloud virtuel distant.

  • Une passerelle de service, nommée psftvcnsvcgtw. Le nom du libellé DNS indiqué dans le fichier terraform.tfvars est ajouté au nom de la passerelle de service. La passerelle de service permet à votre réseau cloud virtuel d'accéder à des services Oracle Cloud Infrastructure publics tels qu'Oracle Cloud Infrastructure Object Storage, mais sans afficher le réseau cloud virtuel sur le réseau Internet public.

  • Les instances Oracle Cloud Infrastructure Compute suivantes sont distribuées dans les deux domaines de disponibilité. Le préfixe d'environnement indiqué dans le fichier terraform.tfvars est ajouté au nom de chaque instance, et la région, le numéro de domaine de disponibilité et le nombre sont suivis. Un volume d'initialisation est associé à chaque instance.

    • Serveurs d'applications. Le nombre d'instances de serveur d'applications créées et leurs formes sont déterminées par les valeurs que vous indiquez dans le fichier terraform.tfvars.

    • Hôtes de base.

  • Deux systèmes Oracle Cloud Infrastructure Database, un dans chaque domaine de disponibilité. Le nom, la version, l'édition et d'autres propriétés des systèmes Oracle Cloud Infrastructure Database sont déterminés par les valeurs que vous indiquez dans le fichier terraform.tfvars. Les systèmes Oracle Cloud Infrastructure Database sont créés dans le sous-réseau de base de données dbsubad1 et dbsubad2.

  • Un système de fichiers utilisé pour préparer le logiciel PeopleSoft est créé. Le système de fichiers est créé dans le sous-réseau du système de fichiers, fssubad1. Le système de fichiers est monté sur toutes les instances Oracle Cloud Infrastructure Compute.

  • Deux équilibreurs de charge, un dans chaque domaine de disponibilité. Le préfixe d'environnement indiqué dans le fichier terraform.tfvars est ajouté au nom de chaque équilibreur de charge, et la région et le nombre sont suivis. Les équilibreurs de charge se trouvent dans le sous-réseau de serveurs Web, websubad1 et websubad2. L'ensemble de back-ends et les processus d'écoute des équilibreurs de charge sont également créés.

Créer des composants d'infrastructure à l'aide de Terraform

Une fois que vous avez installé Terraform avec le fournisseur OCI et que vous avez défini les variables d'environnement sur votre système local, vous êtes prêt à appliquer les modules Terraform pour créer les composants d'infrastructure dans Oracle Cloud Infrastructure.

  1. Sur votre système local, ouvrez un terminal ou lancez Windows PowerShell. Accédez au répertoire dans lequel se trouvent les modules Terraform.
  2. Entrez : terraform apply
  3. Lorsque vous êtes invité à confirmer l'action, entrez yes.
Terraform commence à créer tous les composants indiqués dans les modules Terraform du répertoire en cours. La sortie affiche les objets en cours de création. Certains objets, tels que les systèmes de base de données, peuvent être assez longs à créer. Lorsque tous les composants ont été créés, Terraform affiche un message d'achèvement. Par exemple : Apply complete ! Resources : 90 added, 0 changed, 0 destroyed.

Dans la section Outputs de la sortie de commande, Terraform affiche les adresses IP publiques et privées des instances créées. Notez les adresses IP des instances auxquelles vous souhaitez vous connecter.

Si vous rencontrez des erreurs, vous pouvez les corriger et exécuter à nouveau terraform apply. Vérifiez que vous réexécutez cette commande dans le répertoire dans lequel vous avez exécuté la première fois. Terraform vérifie l'état en cours des composants et crée ceux qui n'existent pas. Toutefois, si vous exécutez Terraform dans un répertoire différent ou à partir d'un autre système local dont les modules Terraform sont identiques, Terraform considère cet élément comme un tout nouveau paramétrage et crée toutes les ressources indiquées dans les différents fichiers de configuration. Pour exécuter Terraform dans un autre répertoire ou système local pour gérer les ressources existantes, copiez les fichiers d'état Terraform du répertoire existant vers le nouveau ou système. Toutefois, il est recommandé d'utiliser Terraform dans un système ou un répertoire pour gérer les composants créés par Terraform dans un autre système ou répertoire.