Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Accélérez la certification professionnelle d'architecte d'Oracle Cloud Infrastructure avec Terraform
Présentation
La certification d'architecte professionnel d'Oracle Cloud Infrastructure (OCI) exige une compréhension approfondie d'Oracle Cloud et une expérience pratique. Ce tutoriel accélère votre parcours en tirant parti de l'infrastructure en tant que code (IaC) avec Terraform.
La figure 1 ci-dessous présente l'architecture OCI cible à déployer. Le côté droit décrit une approche structurée du laboratoire de certification professionnelle d'architecte d'OCI (2024), divisé en sept étapes séquentielles. En tirant parti des extraits de code Terraform prédéfinis adaptés aux laboratoires 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 du laboratoire, mais favorise également une meilleure compréhension de la plate-forme.
Figure 1 : Laboratoire de certification professionnelle en architecture OCI 1 - Architecture et processus manuel par rapport au processus automatisé
Inconvénient des méthodes manuelles
Les approches manuelles des laboratoires pratiques d'examen de certification OCI peuvent constituer un obstacle important. Certains inconvénients sont :
- Prête aux erreurs : 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.
- Flux de travail chronophage : Les flux de travail complexes prennent beaucoup de temps, ce qui entrave la progression et limite la pratique.
- Non évolutif : Exiger la copie et le collage, introduire des erreurs et multiplier les efforts de correction.
- Test du goulot d'étranglement : L'évaluation des tâches manuelles est subjective, ce qui nuit à l'exactitude des mesures de rendement et à la disponibilité.
- Réficiences de la documentation : En fonction de l'apport humain informel, des pratiques incohérentes et des défis liés au maintien des procédures.
- Au-delà de la douleur manuelle :
- Les méthodes traditionnelles créent une pression all-or-nothing. Une seule étape manquée peut faire dérailler les progrès en ajoutant du stress inutile et en obscurcissant la compréhension réelle.
- Ces méthodes brouillent la ligne entre les compétences essentielles et les tâches obligatoires. De précieux temps de pratique 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 : le pouvoir de l'automatisation
Ce tutoriel explique comment accélérer la certification OCI en automatisant les tâches, en mettant l'accent sur les compétences de base et en réduisant le temps de pratique.
Principaux avantages :
- Apprentissage ciblé : Automatisez les tâches répétitives, libérant ainsi du temps pour maîtriser les concepts de base et approfondir la compréhension et la conservation des connaissances.
- Exercice sur demande : Bénéficiez d'une grande flexibilité en choisissant la partie des laboratoires à automatiser, en personnalisant le rythme d'apprentissage et en accélérant la préparation.
- Augmenter l'efficacité : Réduisez le temps de préparation de jusqu'à 80 % grâce à l'automatisation.
Avantages supplémentaires :
- Extensibilité et efficacité des coûts : Redimensionnement facile de l'infrastructure en fonction de la demande pour permettre de réaliser des économies.
- Erreurs réduites : Éliminez les erreurs humaines et assurez-vous que l'infrastructure est toujours provisionnée de manière sécurisée et correcte.
Pour accélérer votre parcours de certification professionnelle d'architecte OCI (2024), nous allons automatiser le Laboratoire 1 : Professionnel de l'architecture Oracle Cloud Infrastructure illustré à la figure 1 à l'aide de Terraform. Cette approche automatisée peut être étendue à d'autres laboratoires de certification et déploiements infonuagiques dans le monde réel.
Groupe de sécurité de réseau en tant que source de trafic entrant vers un autre groupe de sécurité de réseau au lieu d'un bloc CIDR
Ce tutoriel explore les groupes de sécurité de réseau dans OCI et explique comment ils fournissent un contrôle granulaire du trafic réseau dans un réseau en nuage virtuel (VCN). Les groupes de sécurité de réseau agissent comme des pare-feu virtuels, contrôlant l'accès réseau aux ressources d'un réseau VCN. Cela inclut, par exemple, les instances de calcul OCI, les grappes Kubernetes ou les bases de données. Les groupes de sécurité de 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 laboratoires pratiques de certification professionnelle d'architecte d'OCI peuvent prendre beaucoup de temps. Envisagez le Laboratoire 1 : Professionnel de l'architecture Oracle Cloud Infrastructure, qui nécessite au moins 25 minutes. En automatisant les tâches répétitives comme la création de VCN, de groupes de sécurité de réseau et de machines virtuelles avec Terraform, vous pouvez réduire jusqu'à 80 % cette fois-ci, en vous concentrant sur les concepts de sécurité de base 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 de la certification professionnelle d'architecte Oracle Cloud Infrastructure avec Terraform.
Préalables
-
Connaissance de l'infrastructure en tant que principes du code (IaC) et fonctions de base de Terraform.
-
Connaissance de base de Terraform. Les débutants doivent remplir le Oracle Cloud Infrastructure Architect Professional ou tout guide pour débutants comme Terraform for_each : Un tutoriel simple avec des exemples.
-
Utilisation de OCI Cloud Shell, Gestionnaire de ressources Oracle (ORM) ou IDE (par exemple, Visual Studio) avec le plugiciel Terraform.
Tâche 1 : Créer un réseau en nuage virtuel (VCN)
Option manuelle :
Utilisez l'Assistant VCN OCI 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, voir Démarrage rapide du réseau virtuel.
-
Allez à la console OCI, naviguez jusqu'à Réseau, Réseaux en nuage virtuels et créez un nouveau 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 Options de déploiement.
Par défaut, l'indicateur create_vcn
est désactivé (créez manuellement le VCN à partir de la console OCI). Collectez l'OCID du VCN, les OCID des 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 du VCN de la console permettant de collecter l'OCID du VCN, l'OCID du sous-réseau public et l'OCID du sous-réseau privé
Option automatisée :
Créez le VCN à l'aide des étapes suivantes.
-
Pour créer automatiquement le VCN et toutes les ressources de réseau, réglez l'indicateur
create_vcn
àtrue
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 du 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éer deux groupes de sécurité de réseau (NSG-01 et NSG-02)
Option manuelle :
Créez deux groupes de sécurité de 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é de réseau.
-
Cliquez sur Créer un groupe de sécurité de réseau et entrez les informations suivantes.
- Nom : Entrez un nom. Par exemple,
<REGION-KEY>-AP-LAB01-NSG-01
. - Compartiment Create-In : 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é de réseau nommé
<REGION-KEY>-AP-LAB01-NSG-02
.
Option automatisée :
Le code Terraform suivant crée deux groupes de sécurité de 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é de réseau, réglez les indicateurs create_nsg_1
et create_nsg_2
à 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 : Lancer quatre machines virtuelles à l'aide de Terraform et exécuter le test Ping d'ICMP (Internet Control Message Protocol)
Vous vous familiarisez avec le lancement manuel des machines virtuelles à partir de la console OCI. Pour plus d'informations, voir Création d'une instance.
Note : Nous couvrons uniquement l'option d'automatisation Terraform pour 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. Le réglage de count
à 3 génère automatiquement les instances indexées 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"
}
}
Note : Pour accéder aux machines virtuelles publiques au moyen de SSH, générez votre propre paire de clés SSH. Pour plus d'informations, voir Générer des 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"
}
}
Tests d'écho ICMP manuels : Observation de l'incidence des groupes de sécurité de réseau sur le trafic.
-
Allez à la console OCI, naviguez jusqu'à Calcul et Instances. Les quatre instances seront répertoriées.
-
Notez les adresses IP publiques des trois instances (VM-01, VM-02, VM-03).
-
À partir de votre ordinateur, effectuez une commande ping sur l'adresse IP publique de chaque instance de machine virtuelle.
Résultats prévus :
-
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 Terraform local-exec
.
-
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 spécifier le nombre de pings. -
Le code Terraform suivant automatise les tests d'écho ICMP vers
VM-02
à partir de votre machine locale.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 la commande ping sur chacune des trois machines virtuelles publiques de votre ordinateur local, réglez les indicateurs icmp_pingvm?_fromlocal
à 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 : Configurer le trafic entrant ICMP et attacher vNICs au 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 de trafic entrant dans le service de réseau
Pour mettre à jour le premier groupe de sécurité de réseau (NSG-01), suivez les étapes décrites à la figure 3.
-
Sélectionnez votre VCN.
-
Sous Groupes de sécurité de réseau, sélectionnez NSG-01 et cliquez sur Ajouter des règles.
-
Entrez les informations suivantes et cliquez sur Ajouter.
- Type de source : Entrez CIDR.
- CIDR source : Entrez
0.0.0.0/0
. - Protocole IP : Sélectionnez ICMP.
- Type : Entrez 8.
- Code : Sélectionnez Tout.
Figure 3 : Ajouter une règle de trafic entrant à NSG-01 pour autoriser le ping ICMP depuis Internet
Tâche 4.2 : Configurer la troisième machine virtuelle (VM-03) pour qu'elle pointe vers NSG-01
Pour attacher NSG-01 à l'interface réseau virtuelle (VNIC) VM-03, suivez les étapes décrites à la figure 4.
-
Sous Calcul, cliquez sur Instances, VM-03 et Voir les détails.
-
Sélectionnez la vNICs attachée et cliquez sur Carte vNIC principale.
-
Sous Informations sur la carte vNIC, cliquez sur le lien Modifier à côté de Groupe de sécurité de réseau et sélectionnez NSG-01.
-
Cliquez sur Enregistrer les modifications.
Figure 4 : Attacher NSG-01 à la carte vNIC VM-03
Option automatisée :
Allez 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
Notes :
- Il est fortement recommandé d'effectuer les tâches de configuration manuellement tout en tirant parti de 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 deuxième test d'écho ICMP (ping) aux 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 avec succès.
- VM-03 répond au ping en raison de l'attachement de sa carte vNIC à NSG-01 (Figure 4), ce qui permet le trafic ICMP entrant (Figure 3).
Vérification automatisée : Naviguez jusqu'au fichier input.auto.tfvars
et réglez tous les indicateurs icmp_pingvm?_fromlocal
à Vrai (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écuter le ping ICMP avant d'imbriquer les deux groupes de sécurité de réseau
Option manuelle :
Essayez initialement d'effectuer une commande ping sur l'adresse IP privée de VM-04 à partir des trois machines virtuelles publiques.
- Accédez par SSH à toutes les instances de calcul du sous-réseau public (VM-01, VM-02, VM-03).
- À partir de chaque serveur, effectuez une commande ping sur l'adresse IP privée de VM-04.
Résultats attendus : Toutes les tentatives de ping échoueront. Pour activer la connectivité, une architecture de groupe de sécurité de réseau imbriquée est requise.
Option automatisée :
Réglez l'indicateur icmp_test_from_vm?
à Vrai pour chaque machine virtuelle publique (VM-01, VM-02 et VM-03). Remplacer 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 Terraform remote-exec
pour automatiser les tests ICMP. Vous devrez spécifier la clé SSH privée qui correspond à la clé publique utilisée lors de la création des machines virtuelles. Le script d'interpréteur de commandes, ping_script.sh
, effectue une itération en fonction du nombre de tentatives de ping définies 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 les groupes de sécurité de réseau imbriqués (NSG-01 et NSG-02)
Option manuelle :
Configurez le deuxième groupe de sécurité de réseau (NSG-02) avec une règle de trafic entrant qui spécifie NSG-01 comme source, ce qui active le flux de trafic ICMP entre les deux groupes de sécurité de réseau.
Tâche 6.1 : Ajouter une règle de trafic entrant dans le réseau (réseau en nuage 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é de réseau.
- Source : Entrez NSG-01.
- Protocole IP : Sélectionnez ICMP.
- Type : Entrez 8.
- Code : Sélectionnez Tout.
Figure 5 : Ajouter NSG-01 comme source à la règle de trafic entrant NSG-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 à côté du groupe de sécurité de réseau et sélectionnez NSG-02.
-
Cliquez sur enregistrer la modification.
Figure 6 : Attacher le NSG-02 à la carte vNIC VM-04
Option automatisée :
Pour automatiser cette tâche, réglez automate_step_6
à Vrai 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écuter les tests d'écho ICMP finaux pour les groupes de sécurité de réseau imbriqués
Tests manuels de bout en bout :
Tentez de nouveau d'effectuer une commande ping sur l'adresse IP privée de VM-04 à partir des machines virtuelles publiques.
-
Accédez par SSH aux trois instances du sous-réseau public (VM-01, VM-02, VM-03).
-
À partir de chacune, effectuez une commande ping sur l'adresse IP privée de VM-04. Seule VM-03 réussit comme illustré à la figure 1.
Explication : La carte vNIC de VM-04 est maintenant régie par les règles du NSG-02 et celles de la liste de sécurité par défaut. NSG-01 est configuré en tant que source de règle de trafic entrant pour NSG-02, ce qui permet le trafic depuis Internet.
Tests automatisés de bout en bout :
Activez Terraform pour exécuter automatiquement les tests ping d'écho ICMP.
-
Réglez l'indicateur
icmp_test_from_vm?
àtrue
pour chacune des 3 machines virtuelles (VM-01, VM-02 et VM-03). -
Comme illustré dans la partie gauche de la figure 1, seule VM-03 effectue des pings VM-04 avec succès.
# 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 la mise en oeuvre des groupes de sécurité de 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
Note : Lors de l'utilisation de Terraform, recréez des machines virtuelles après le passage d'une configuration manuelle pour assurer une liaison appropriée du groupe NSG-02 à la carte vNIC VM-04.
Options de déploiement
Option 1 : Utilisation de l'interface de ligne de commande Terraform (édition Community)
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 Cloud Shell pour OCI. Téléchargez le code source Terraform complet à partir d'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 nommé de la même manière est terraform.tfvars
). Vous pouvez, par exemple, spécifier les OCID de l'image d'ordinateur utilisée (amper_image_id
) et du compartiment (compartment_id
) dans lequel les ressources de laboratoire seront créées (modifiez les valeurs par défaut uniquement si nécessaire). Le package fournit des instructions complètes pour configurer votre environnement, exécuter des laboratoires et comprendre les concepts de réseau et de sécurité. Il comprend des guides détaillés, des conseils et des meilleures pratiques pour améliorer votre expérience d'apprentissage avancé 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 (échantillons d'entrée variable)
Créez une pile du gestionnaire de ressources Oracle en définissant des variables (par exemple, amper_image_id
, compartment_id
), en provisionnant des ressources de réseau (create_vcn
, create_msg_1/2
), en créant des machines virtuelles (create_vm_1_3
, create_vm_4
, shape_name
), des pings ICMP (icmp_pingvm1_fromlocal
, icmp_test_from_vm1
) et en exécutant le plan de déploiement de l'infrastructure.
Étapes suivantes
L'infrastructure en tant que principes du code (IaC), à l'aide de Terraform, améliore 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é de réseau imbriqués dans OCI Architect Professional Certification (2024) Laboratoire 1 : Devenir un professionnel de l'architecture OCI (2024) consomme généralement environ 25 minutes.
En tirant parti de Terraform, nous avons considérablement réduit le temps requis pour provisionner et configurer des ressources OCI complexes, ce qui démontre un gain d'efficacité considérable. 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 mises en œuvre du client dans le 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 restants tout en explorant l'architecture de référence OCI et les meilleures pratiques.
Confirmation
- Auteur - Mahamat Hissein Guiagoussou (architecte en nuage principal)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Accelerate Oracle Cloud Infrastructure Architect Professional Certification with Terraform
G13853-01
August 2024