Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Accélérez la certification professionnelle des architectes Oracle Cloud Infrastructure avec Terraform
Introduction
L'obtention de la certification Oracle Cloud Infrastructure (OCI) Architect Professional exige une compréhension approfondie d'Oracle Cloud et une expérience pratique. Ce tutoriel accélère votre parcours en utilisant Infrastructure as Code (IaC) avec Terraform.
La figure 1 ci-dessous illustre l'architecture OCI cible à déployer. La partie droite présente une approche structurée du laboratoire OCI Architect Professional Certification (2024), divisée en sept étapes séquentielles. En tirant parti des fragments de code Terraform prédéfinis adaptés aux ateliers d'examen de certification, les tâches répétitives sont automatisées, ce qui libère un temps précieux pour se concentrer sur la maîtrise des concepts OCI essentiels. Cette approche accélère non seulement l'achèvement des laboratoires, mais favorise également une meilleure compréhension de la plate-forme.
Figure 1 : Atelier de certification professionnelle d'architecture OCI 1 - Architecture et processus manuels ou automatisés
Remboursement des méthodes manuelles
Les approches manuelles des ateliers pratiques de l'examen de certification OCI peuvent constituer un obstacle important. Certains inconvénients sont :
- Erreur prête : les tâches manuelles répétitives augmentent le risque d'erreurs humaines, entraînant des fautes de frappe, des étapes manquées et des retards.
- Consommation de temps : les workflows complexes prennent du temps, entravent la progression et limitent les pratiques.
- Non évolutif : nécessite la copie et le collage, introduit des erreurs et multiplie les efforts de correction.
- Tester le goulet d'étranglement : l'évaluation des tâches manuelles est subjective, ce qui nuit à la précision de la mesure des performances et de la préparation.
- insuffisance de la documentation : dépend de l'apport humain informel, des pratiques incohérentes et des défis liés à la maintenance des procédures.
- Au-delà de la douleur manuelle :
- Les méthodes traditionnelles créent une pression tout ou rien. Une seule étape manquée peut faire dérailler les progrès en ajoutant un stress inutile et en obscurcissant la véritable compréhension.
- Ces méthodes brouillent la ligne entre les compétences essentielles et les tâches obligatoires. Un temps de pratique précieux est perdu lors d'une configuration fastidieuse, ce qui entrave l'apprentissage et la maîtrise des compétences OCI.
Maîtriser les compétences OCI plus rapidement : la puissance de l'automatisation
Ce tutoriel explique comment accélérer la certification OCI en automatisant les tâches, en se concentrant sur les compétences de base et en raccourcissant le temps de pratique.
Avantages principaux :
- Formation ciblée : automatisez les tâches répétitives, ce qui libère du temps pour maîtriser les concepts de base et approfondir la compréhension et la rétention des connaissances.
- Exercices à la demande : gagnez en flexibilité en choisissant la partie des exercices à automatiser, en personnalisant le rythme de formation et en accélérant la préparation.
- Améliorer l'efficacité : réduisez le temps de préparation jusqu'à 80 % grâce à l'automatisation.
Avantages supplémentaires :
- Évolutivité et rentabilité : mise à l'échelle facile de l'infrastructure en fonction de la demande, ce qui permet d'économiser.
- Réduction des erreurs : éliminez les erreurs humaines et assurez-vous que l'infrastructure est toujours provisionnée correctement et en toute sécurité.
Pour accélérer votre parcours de certification professionnelle OCI Architect (2024), nous automatisons l'atelier pratique 1 sur Oracle Cloud Infrastructure Architect Professional illustré à la figure 1 à l'aide de Terraform. Cette approche automatisée peut être étendue à d'autres laboratoires de certification et à des déploiements cloud réels.
Groupe de sécurité réseau en tant que source entrante vers un autre groupe de sécurité réseau au lieu d'un bloc CIDR
Ce tutoriel explore les groupes de sécurité réseau dans OCI et comment ils fournissent un contrôle affiné du trafic réseau au sein d'un réseau cloud virtuel (VCN). Les groupes de sécurité réseau agissent comme des pare-feu virtuels, contrôlant l'accès réseau aux ressources au sein d'un VCN. Cela inclut, par exemple, les instances OCI Compute, les clusters Kubernetes ou les bases de données. Les groupes de sécurité réseau offrent une plus grande flexibilité que les listes de sécurité en permettant le contrôle entre les ressources plutôt qu'entre les sous-réseaux.
Approche hybride semi-automatisée en 7 étapes
Bien qu'ils soient complets, les ateliers pratiques de certification professionnelle OCI Architect peuvent prendre du temps. Prenons l'atelier pratique 1 sur Oracle Cloud Infrastructure Architect Professional, qui dure au moins 25 minutes. En automatisant les tâches répétitives telles que la création de VCN, de groupes de sécurité réseau et de machines virtuelles avec Terraform, vous pouvez réduire cette fois-ci de jusqu'à 80 %, en vous concentrant sur les concepts de base de la sécurité plutôt que sur les étapes manuelles fastidieuses. L'approche semi-automatisée proposée offre de la flexibilité, vous permettant de choisir les tâches à automatiser.
Objectifs
- Accélérez la préparation à la certification Oracle Cloud Infrastructure Architect Professional avec Terraform.
Prérequis
-
Connaissance des principes Infrastructure as Code (IaC) et des fonctionnalités de base de Terraform.
-
Connaissances de base sur Terraform. Les débutants doivent suivre le guide Oracle Cloud Infrastructure Architect Professional ou tout autre guide pour débutants, tel que Terraform for_each : tutoriel simple avec exemples.
-
Utilisation d'OCI Cloud Shell, d'Oracle Resource Manager (ORM) ou d'IDE (par exemple, Visual Studio) avec le module d'extension Terraform.
Tâche 1 : création d'un réseau cloud virtuel (VCN)
Option manuelle :
Utilisez l'assistant OCI VCN pour créer des ressources de réseau de base : VCN, passerelle Internet, table de routage, liste de sécurité, sous-réseaux publics et privés. Pour plus d'informations, reportez-vous à Démarrage rapide des fonctions de réseau virtuel.
-
Accédez à la console OCI, accédez à Fonctions de réseau, à Réseaux cloud virtuels et créez un VCN.
-
Cliquez sur Informations sur le VCN et notez les OCID du VCN, du sous-réseau privé et du sous-réseau public (figure 2).
-
Ajoutez les OCID dans le fichier
input.auto.tfvars
(outerraform.tfvars
), comme indiqué dans la section des options de déploiement.
Par défaut, l'indicateur create_vcn
est désactivé (créer manuellement le VCN à partir de la console OCI). Collectez l'OCID de VCN, les OCID de sous-réseaux et ajoutez-les au fichier input.auto.tfvars
.
# Step 1a - Create VCN using VCN Wizard (create_vcn flag off)
create_vcn = false
# Copy from the console the VCN OCIDs and subnets (public, Private) OCIDs.
vcn_id = "REPLACE_CREATED_VCN_OCID_HERE"
private_subnet_id = "REPLACE_CREATED_PRIVATE_SUBNET_OCID_HERE"
public_subnet_id = "REPLACE_CREATED_PUBLIC_SUBNET_OCID_HERE"
Figure 2 : Vue VCN de la console pour collecter l'OCID de VCN, l'OCID de sous-réseau public et l'OCID de sous-réseau privé
Option Automatisé :
Créez le VCN en suivant les étapes suivantes.
-
Pour créer automatiquement le VCN et toutes les ressources réseau, définissez l'indicateur
create_vcn
surtrue
dans le fichierinput.auto.tfvars
. -
Spécifiez le VCN, le sous-réseau public, les blocs CIDR de sous-réseaux privés et le préfixe de nom d'hôte.
# Step 1b - Create VCN using Terraform. Provided the CIDR Blocks for the # VCN, Subnets and all other required input (host_name_prefix). create_vcn = true # Provide the VCN & Subnet CIDR Blocks as well as host name prefix vcn_cidr_block = "10.0.0.0/16" public_subnet_cidr_block = "10.0.0.0/24" private_subnet_cidr_block = "10.0.1.0/24" host_name_prefix = "phxapl4"
Tâche 2 : création de deux groupes de sécurité réseau (NSG-01 et NSG-02)
Option manuelle :
Créez deux groupes de sécurité réseau (NSG-01 et NSG-02) en procédant comme suit :
-
Sélectionnez le VCN créé dans la tâche 1.
-
Sous Ressources, cliquez sur Groupes de sécurité réseau.
-
Cliquez sur Créer un groupe de sécurité réseau et entrez les informations suivantes.
- Nom : entrez un nom. Par exemple,
<REGION-KEY>-AP-LAB01-NSG-01
. - Compartiment de création : entrez votre compartiment de travail.
- Cliquez sur Créer.
- Nom : entrez un nom. Par exemple,
-
Répétez les étapes 1 à 3 pour le deuxième groupe de sécurité réseau nommé
<REGION-KEY>-AP-LAB01-NSG-02
.
Option Automatisé :
Le code Terraform suivant crée deux groupes de sécurité réseau (NSG-01 et NSG-02).
resource "oci_core_network_security_group" "nsg-01" {
count = (var.create_vcn && var.create_nsg_1) ? 1 : 0
#Required
compartment_id = var.compartment_id
vcn_id = var.create_vcn ? oci_core_vcn.this.*.id[0] : var.vcn_id
display_name = "${var.display_name_prefix}-TF-NSG-01"
}
resource "oci_core_network_security_group" "nsg-02" {
count = (var.create_vcn && var.create_nsg_2) ? 1 : 0
#Required
compartment_id = var.compartment_id
vcn_id = var.create_vcn ? oci_core_vcn.this.*.id[0] : var.vcn_id
display_name = "${var.display_name_prefix}-TF-1-NSG-02"
}
Pour créer les deux groupes de sécurité réseau, définissez les indicateurs create_nsg_1
et create_nsg_2
sur true
.
# Step 2: Create two(2) empty Network Security Groups (NSG-01 & NSG-02).
create_nsg_1 = true
create_nsg_2 = true
Tâche 3 : lancement de quatre machines virtuelles à l'aide de Terraform et exécution du test Ping ICMP (Internet Control Message Protocol)
En supposant que vous êtes familiarisé avec le lancement manuel de machines virtuelles à partir de la console OCI. Pour plus d'informations, reportez-vous à Création d'une instance.
Remarque : nous couvrons uniquement l'option d'automatisation Terraform permettant de créer 4 machines virtuelles (3 machines virtuelles dans le sous-réseau public et 1 machine virtuelle dans le sous-réseau privé).
Activez l'indicateur create_vm_1_3
pour indiquer à Terraform de créer trois machines virtuelles (VM-01, VM-02 et VM-03).
# Step 3a: Launch three(3) VMs(VM-01, VM-02, VM-03) in the public subnet.
create_vm_1_3 = true
Pour créer trois instances de calcul dans le sous-réseau public, nous avons utilisé le méta-argument count
dans le code Terraform ci-dessous. Cette approche concise simplifie le processus de création par rapport au méta-argument for_each
plus complexe. La définition de count
sur 3 génère automatiquement des instances indexées sur 0, 1 et 2, ce qui améliore la lisibilité et l'efficacité du code.
resource "oci_core_instance" "VM1-3" {
count = (var.create_vm_1_3) ? 3 : 0
availability_domain = "GqIF:PHX-AD-1"
compartment_id = var.compartment_id
create_vnic_details {
assign_ipv6ip = "false"
assign_private_dns_record = "true"
assign_public_ip = "true"
subnet_id = var.create_vcn ? oci_core_subnet.My-Public-Subnet.*.id[0] : var.public_subnet_id
#nsg_ids = (var.create_vcn && var.create_nsg_1) && (count.index == 2) ? [oci_core_network_security_group.nsg-1.*.id[0]] : []
nsg_ids = (var.automate_step_4 && var.create_nsg_1) ? (var.create_vcn ? [oci_core_network_security_group.nsg-1.*.id[0]] : [oci_core_network_security_group.nsg-01.*.id[0]]) : []
}
display_name = "${var.display_name_prefix}-VM-0${count.index + 1}"
metadata = {
"ssh_authorized_keys" = "${file(var.ssh_public_key)}"
}
shape = "VM.Standard.A1.Flex"
shape_config {
memory_in_gbs = "6"
ocpus = "1"
}
source_details {
source_id = var.amper_image_id
source_type = "image"
}
}
Remarque : pour accéder aux machines virtuelles publiques via SSH, générez votre propre paire de clés SSH. Pour plus d'informations, reportez-vous à Génération de clés SSH.
Activez ensuite l'indicateur create_vm_4
pour indiquer à Terraform de créer VM-04 dans le réseau privé.
# Step 3b: Launch the fourth VM (VM-04) in the private subnet.
create_vm_4 = true
Il s'agit de la partie du code Terraform qui crée la quatrième instance (VM-04) dans le sous-réseau privé.
resource "oci_core_instance" "vm-4" {
count = (var.create_vm_4) ? 1 : 0
availability_domain = "GqIF:PHX-AD-1"
compartment_id = var.compartment_id
create_vnic_details {
#assign_ipv6ip = "false"
assign_private_dns_record = "true"
assign_public_ip = "false"
subnet_id = var.create_vcn ? oci_core_subnet.My-Private-Subnet.*.id[0] : var.private_subnet_id
#nsg_ids = (var.create_vcn && var.create_nsg_1) ? [oci_core_network_security_group.nsg-2.*.id[0]] : []
nsg_ids = (var.automate_step_6 && var.create_nsg_2) ? (var.create_vcn ? [oci_core_network_security_group.nsg-2.*.id[0]] : [oci_core_network_security_group.nsg-02.*.id[0]]) : []
}
display_name = "${var.display_name_prefix}-VM-04"
shape = "VM.Standard.A1.Flex"
shape_config {
memory_in_gbs = "6"
ocpus = "1"
}
source_details {
source_id = var.amper_image_id
source_type = "image"
}
}
Test d'écho ICMP manuel : observation de l'impact des groupes de sécurité réseau sur le trafic.
-
Accédez à la console OCI, puis à Compute et à Instances. Les quatre instances seront répertoriées.
-
Notez les adresses IP publiques des trois instances (VM-01, VM-02, VM-03).
-
A partir de votre ordinateur, envoyez une commande ping à l'adresse IP publique de chaque instance de machine virtuelle.
Résultats attendus:
-
Toutes les instances échoueront car la liste de sécurité n'a pas de règle d'écho ICMP.
-
Les règles de sécurité par défaut autorisaient l'accès SSH (port 22) à toutes les machines virtuelles publiques.
Test d'écho ICMP automatisé : ce test est automatisé à l'aide du provisionneur local-exec
de Terraform.
-
Nous avons défini un tableau,
VM1_3
, contenant trois éléments pour représenter les trois machines virtuelles publiques, et une variable,icmp_ping_count
, pour indiquer le nombre de pings. -
Le code Terraform suivant automatise les tests d'écho ICMP vers
VM-02
à partir de votre ordinateur local.resource "null_resource" "icmp_ping_VM2_fromlocal" { depends_on = [oci_core_instance.VM1-3[1]] count = (var.icmp_pingvm2_fromlocal) ? 1 : 0 # Ping VM-02 from local Computer provisioner "local-exec" { command = "ping -c ${var.icmp_ping_count} ${oci_core_instance.VM1-3[1].public_ip}" } }
Modifiez le fichier input.auto.tfvars
pour définir la valeur de la variable icmp_ping_count
. Pour activer le ping de chacune des trois machines virtuelles publiques à partir de votre ordinateur local, définissez les indicateurs icmp_pingvm?_fromlocal
sur true
(où 1, 2 ou 3 représente la machine virtuelle spécifique).
# ICMP ping from Local Computer (First Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true
Tâche 4 : configuration du trafic entrant ICMP et attachement de vNICs à NSG-01
Option manuelle :
Les sous-tâches suivantes sont requises pour configurer le trafic entre VM-03 et NSG-01.
Tâche 4.1 : ajouter une nouvelle règle entrante dans Networking
Pour mettre à jour le premier groupe de sécurité réseau (NSG-01), suivez les étapes décrites dans la figure 3.
-
Sélectionnez votre VCN.
-
Sous Groupes de sécurité réseau, sélectionnez Groupe de sécurité réseau-01 et cliquez sur Ajouter des règles.
-
Entrez les informations suivantes et cliquez sur Ajouter.
- Type source : entrez CIDR.
- CIDR source : entrez
0.0.0.0/0
. - Protocole IP : sélectionnez ICMP.
- Type : entrez 8.
- Code : sélectionnez Tous.
Figure 3 : Ajout d'une règle entrante à NSG-01 pour autoriser le ping ICMP à partir d'Internet
Tâche 4.2 : configurer la troisième machine virtuelle (VM-03) pour qu'elle pointe vers NSG-01
Pour connecter NSG-01 à l'interface réseau virtuelle VM-03, suivez les étapes décrites dans la figure 4.
-
Sous Compute, cliquez sur Instances, VM-03 et Visualiser les détails.
-
Sélectionnez la vNICs associée et cliquez sur Carte vNIC principale.
-
Sous Informations sur la carte vNIC, cliquez sur le lien Modifier en regard de Groupe de sécurité réseau et sélectionnez Groupe de sécurité réseau-01.
-
Cliquez sur Enregistrer les modifications.
Figure 4 : attachement du groupe de sécurité réseau NSG-01 à une carte vNIC VM-03
Option Automatisé :
Accédez au fichier input.auto.tfvars
et activez l'indicateur automate_step_4
.
# Step 4: Add CIDR ingress rule in Network, attach VM-03 vNIC with NSG-01.
automate_step_4 = true
Remarques :
- Nous vous recommandons vivement d'effectuer des tâches de configuration manuellement tout en utilisant Terraform pour le provisionnement automatisé des ressources.
- Si vous optez pour l'automatisation Terraform, n'oubliez pas de recréer (détruire et recréer) des machines virtuelles pour attacher NSG-01 à la carte vNIC VM-03.
- Quelle que soit l'option choisie, le laboratoire exige des tests ping ICMP.
Vérification manuelle : effectuez un second test d'écho ICMP (ping) sur les adresses IP publiques des machines virtuelles VM-01, VM-02 et VM-03 à partir de votre ordinateur local.
Résultats :
- Tout ping échouera. Seule la troisième instance (VM-03) répondra.
- VM-03 répond au ping en raison de l'attachement de sa vNIC au NSG-01 (Figure 4), qui autorise le trafic ICMP entrant (Figure 3).
Vérification automatisée : accédez au fichier input.auto.tfvars
et définissez tous les indicateurs icmp_pingvm?_fromlocal
sur True (où 1, 2 ou 3 représente la machine virtuelle spécifique).
# ICMP ping from Local Computer (Second Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true
Tâche 5 : exécution de la commande ping ICMP avant l'imbrication des deux groupes de sécurité réseau
Option manuelle :
Tentative initiale de commande ping de l'adresse IP privée de VM-04 à partir des trois machines virtuelles publiques.
- Connectez-vous via SSH à toutes les instances de calcul du sous-réseau public (VM-01, VM-02, VM-03).
- A partir de chaque serveur, envoyez une commande ping à l'adresse IP privée de VM-04.
Résultats attendus : toutes les tentatives ping échoueront. Pour activer la connectivité, une architecture de groupe de sécurité réseau imbriquée est requise.
Option Automatisé :
Définissez l'indicateur icmp_test_from_vm?
sur True pour chaque machine virtuelle publique (VM-01, VM-02 et VM-03). Remplacez-le par le numéro de machine virtuelle spécifique (1, 2 ou 3) dans chaque nom d'indicateur.
# Step 5: SSH to VM-01, VM-02, VM-03 and ping VM-04 (First Attempt).
icmp_test_from_vm1 = true
icmp_test_from_vm2 = true
icmp_test_from_vm3 = true
Cette option tire parti du provisionneur remote-exec
Terraform pour automatiser les tests ICMP. Vous devrez indiquer la clé SSH privée qui correspond à la clé publique utilisée lors de la création des machines virtuelles. Le script shell ping_script.sh
parcourt le nombre de tentatives ping défini par icmp_ping_count
.
resource "null_resource" "icmp_ping_vm4_from_vm1" {
depends_on = [oci_core_instance.VM1-3[0]]
count = (var.icmp_test_from_vm1) ? 1 : 0
connection {
agent = false
host = oci_core_instance.VM1-3[0].public_ip
user = "opc"
private_key = file(var.ssh_private_key)
}
# At this stage we assume that the ping_script.sh is copied under /home/opc
provisioner "remote-exec" {
inline = [
"echo \" PING PRIVATE IP ${oci_core_instance.vm-4[0].private_ip}\"",
"chmod +x ping_script.sh",
"export TARGET_IP=${oci_core_instance.vm-4[0].private_ip}",
"export PING_COUNT=${var.icmp_ping_count}",
"sh ping_script.sh",
]
}
}
Tâche 6 : configurer des groupes de sécurité réseau imbriqués (NSG-01 et NSG-02)
Option manuelle :
Configurez le deuxième groupe de sécurité réseau (NSG-02) avec une règle entrante qui indique NSG-01 comme source, ce qui active le flux de trafic ICMP entre les deux groupes de sécurité réseau.
Tâche 6.1 : ajout d'une règle entrante dans Networking (réseau cloud virtuel)
-
Sous votre VCN (VCN-01), cliquez sur Règles de sécurité.
-
Sélectionnez NSG-02 et cliquez sur Ajouter des règles.
-
Entrez les informations suivantes et cliquez sur Ajouter.
- Type de source : sélectionnez Groupe de sécurité réseau.
- Source : entrez NSG-01.
- Protocole IP : sélectionnez ICMP.
- Type : entrez 8.
- Code : sélectionnez Tous.
Figure 5 : Ajout du groupe de sécurité réseau-01 en tant que source à la règle entrante du groupe de sécurité réseau-02
Tâche 6.2 : configurer la quatrième machine virtuelle (VM-04) pour qu'elle pointe vers NSG-02
-
Sous Informations sur la carte vNIC de la machine virtuelle 04 (figure 6), cliquez sur le lien Modifier en regard du groupe de sécurité réseau et sélectionnez Groupe de sécurité réseau-02.
-
Cliquez sur Enregistrer la modification.
Figure 6 : connexion de la carte vNIC NSG-02 à VM-04
Option Automatisé :
Pour automatiser cette tâche, définissez automate_step_6
sur True dans le fichier input.auto.tfvars
.
# Step 6: Add NSG-01 as ingress rule source, attach NSG-02 to VM04 vNIC.
automate_step_6 = true
Tâche 7 : exécution des tests d'écho ICMP finaux pour les groupes de sécurité réseau imbriqués
Test manuel de bout en bout :
Réessayez d'envoyer une commande ping à l'adresse IP privée de VM-04 à partir des machines virtuelles publiques.
-
Connectez-vous via SSH aux trois instances du sous-réseau public (VM-01, VM-02, VM-03).
-
A partir de chacun, envoyez une commande ping à l'adresse IP privée de VM-04. Seule la VM-03 réussit comme illustré à la Figure 1.
Explication : La vNIC de VM-04 est désormais régie par les règles au sein de NSG-02 et celles de la liste de sécurité par défaut. NSG-01 est configuré en tant que source de règle entrante pour NSG-02, ce qui autorise le trafic à partir d'Internet.
Tests automatisés de bout en bout :
Activez Terraform pour exécuter automatiquement les tests ping d'écho ICMP.
-
Définissez l'indicateur
icmp_test_from_vm?
surtrue
pour chacune des 3 machines virtuelles (VM-01, VM-02 et VM-03). -
Comme illustré dans la partie gauche de la figure 1, seul VM-03 a réussi à envoyer une commande ping à VM-04.
# Step 7: SSH to VM-01, VM-02, VM-03 and ping VM-04 (Second Attempt).
icmp_test_from_vm1 = true
icmp_test_from_vm2 = true
icmp_test_from_vm3 = true
La figure 7 affiche les résultats de plusieurs tentatives de ping ICMP effectuées après l'établissement d'une connexion SSH à VM-03. La figure compare le résultat de la commande ping avant et après l'implémentation de groupes de sécurité réseau imbriqués.
Figure 7 : résultats de la commande ping avant et après l'imbrication de NSG-02 à NSG-01 et l'attachement de vNICs aux machines virtuelles
Remarque : lors de l'utilisation de Terraform, recréez des machines virtuelles après avoir basculé de la configuration manuelle afin de garantir une liaison correcte du groupe de sécurité réseau NSG-02 avec la carte vNIC VM-04.
Options de déploiement
Option 1 : utilisation de l'interface de ligne de commande Terraform (CLI) (Community Edition)
Avant d'exécuter les commandes Terrafrom pour planifier et déployer votre infrastructure à l'aide de l'interface de ligne de commande Terraform, vous devez mettre à jour la configuration Terraform fournie avec les détails de votre environnement spécifique à partir de votre machine locale ou à distance sur OCI Cloud Shell. Téléchargez le code source Terraform complet ici : oci-blog-fast-tracking-apcertif-main.zip. Le seul fichier que vous devez personnaliser pour votre environnement est le fichier input.auto.tfvars
(le fichier portant un nom similaire est terraform.tfvars
). Vous pouvez indiquer, par exemple, les OCID de l'image d'ordinateur utilisée (amper_image_id
) et celui du compartiment (compartment_id
) dans lequel les ressources de laboratoire seront créées (modifiez les valeurs par défaut uniquement si nécessaire). Ce package fournit des instructions complètes pour configurer votre environnement, exécuter des exercices et comprendre les concepts de réseau et de sécurité. Il comprend des guides détaillés, des conseils et des bonnes pratiques pour améliorer votre expérience de formation avancée OCI.
##########################################################################
# Terraform module: Nested NSGs - NSG-01 as Ingress source to NSG-02. #
# #
# Copyright (c) 2024 Oracle Author: Mahamat Hissein Guiagoussou #
##########################################################################
# Working Compartment
compartment_id = "REPLACE_WORKING_COMPARTMENT_OCID_HERE"
# Image OCID - https://docs.oracle.com/en-us/iaas/images/
amper_image_id = "REPLACE_INSTANCE_REGIONAL_IMAGE_OCID_HERE"
# Region based display name prefix
display_name_prefix = "AP-LAB01-1" # Replace with your own prefix
##########################################################################
# Step 1a - Create VCN using VCN Wizard (turn off the create_vcn flag), #
##########################################################################
create_vcn = false
vcn_id = "REPLACE_VCN_OCID_HERE"
private_subnet_id = "REPLACE_PRIVATE_SUBNET_OCID_HERE"
public_subnet_id = "REPLACE_PUBLIC_SUBNET_OCID_HERE"
##########################################################################
# Step 1b - Create VCN using Terraform. Provide the CIDR Blocks for the #
# VCN, Subnets and other required input (host_name_prefix). #
##########################################################################
cvcn_cidr_block = "10.0.0.0/16"
public_subnet_cidr_block = "10.0.0.0/24"
private_subnet_cidr_block = "10.0.1.0/24"
host_name_prefix = "phxapl4"
##########################################################################
# Step 2: Create two(2) empty Network Security Groups: NSG-01 & NSG-02. #
##########################################################################
create_nsg_1 = false
create_nsg_2 = false
##########################################################################
# Step 3a: Launch three VMs(VM-01, VM-02, VM-03) in the public subnet. #
##########################################################################
create_vm_1_3 = false
##########################################################################
# Step 3b: Launch the fouth VM (VM-04) in the private subnet. #
##########################################################################
create_vm_4 = false
# Shape Definition
shape_name = "VM.Standard.A1.Flex"
shape_memory_in_gbs = "6"
shape_numberof_ocpus = "1"
# Ping all public VM from Local Computer
icmp_pingvm1_fromlocal = false
icmp_pingvm2_fromlocal = false
icmp_pingvm3_fromlocal = false
# Compute Instance SSH keys
ssh_public_key = "~/cloudshellkey.pub"
ssh_private_key = "~/cloudshellkey"
# Ping VM-04 from Public VMs (VM-02, VM-02, and VM-03) via SSH
icmp_test_from_vm1 = false
icmp_test_from_vm2 = false
icmp_test_from_vm3 = false
##########################################################################
# Step 4: Add CIDR ingress rule in Network & Attach VM3 vNIC with NSG-01 #
##########################################################################
automate_step_4 = false
##########################################################################
# Step 5: SSH to VM-01, VM-02, VM-03 and ping VM-04 (First Attempt). #
##########################################################################
##########################################################################
# Step 6: Add NSG-01 as ingress rule source, Attach VM4 vNIC with NSG-02 #
##########################################################################
automate_step_6 = false
##########################################################################
# Step 7: SSH to VM-01, VM-02, VM-03 and ping VM-04 (Second Attempt). #
##########################################################################
# Number of time ping is executed
icmp_ping_count = "REPLACE_NUMBER_OF_PING_ATTEMPTS_HERE"
Option 2 : Utiliser Oracle Resource Manager (exemples d'entrée de variable)
Créez une pile Oracle Resource Manager en définissant des variables (par exemple, amper_image_id
, compartment_id
), en provisionnant des ressources réseau (create_vcn
, create_msg_1/2
), en créant des machines virtuelles (create_vm_1_3
, create_vm_4
, shape_name
), en envoyant des pings ICMP (icmp_pingvm1_fromlocal
, icmp_test_from_vm1
) et en exécutant le plan de déploiement de l'infrastructure.
Etapes suivantes
Les principes Infrastructure as Code (IaC), qui utilisent Terraform, améliorent considérablement la gestion de l'infrastructure grâce à un déploiement accéléré et à une sécurité améliorée. Par exemple, la configuration manuelle de groupes de sécurité réseau imbriqués dans la certification professionnelle OCI Architect (2024) L'atelier 1 : Devenir un professionnel OCI Architect (2024) consomme généralement environ 25 minutes.
En tirant parti de Terraform, nous avons considérablement réduit le temps nécessaire au provisionnement et à la configuration de ressources OCI complexes, démontrant ainsi un gain d'efficacité substantiel. Cela se traduit par des économies de temps et de coûts mesurables pour les utilisateurs OCI qui gèrent des configurations de sécurité réseau complexes. En outre, IaC favorise la cohérence et réduit le risque d'erreur humaine, ce qui en fait un modèle précieux pour l'apprentissage et les implémentations des clients du monde réel. Pour en savoir plus sur l'application de IaC avec Terraform ou d'autres outils similaires pour vos besoins d'automatisation OCI, envisagez d'appliquer les principes appris dans les laboratoires de certification professionnelle OCI Architect restants tout en explorant l'architecture de référence OCI et les meilleures pratiques.
Remerciements
- Auteur - Mahamat Hissein Guiagoussou (architecte cloud principal)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation produit, consultez le site Oracle Help Center.
Accelerate Oracle Cloud Infrastructure Architect Professional Certification with Terraform
G13854-01
August 2024