Remarques :

Configurer des zones, des vues et des résolveurs DNS privés pour accélérer la certification professionnelle OCI Architect 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. Cette série de tutoriels accélère votre parcours en utilisant Infrastructure as Code (IaC) avec Terraform et Ansible.

image

La figure 1 illustre l'architecture à déployer pour la certification OCI Architect Professional Laboratoire 2 : Oracle Cloud Infrastructure Architect Professional (Laboratoire Oracle University - 6h 14m).

image Figure 1 : Adresses de passerelle d'appairage local pour créer un nom de domaine DNS privé

Avantages clés du DNS privé

Le DNS privé offre plusieurs avantages pour la gestion et la sécurisation de vos ressources OCI. Cela inclut mais sans s'y limiter :

Nous expliquerons comment tirer parti du DNS privé d'OCI pour gérer des domaines personnalisés et connecter des ressources sur les réseaux. Vous apprendrez à créer des zones privées, à définir des enregistrements et à configurer des résolveurs pour une utilisation interne, ce qui vous donnera un contrôle granulaire sur l'accès aux ressources dans OCI.

Approche semi-automatisée en sept tâches

Le tutoriel vous guidera tout au long de l'automatisation d'un environnement évolutif et multi-VCN dans OCI avec une résolution DNS privée. A l'aide de la console OCI, de Terraform et d'Ansible, vous allez créer deux réseaux cloud virtuels, établir des passerelles d'appairage local (LPG) entre eux, lancer une instance de machine virtuelle, configurer des zones DNS privées personnalisées et tester en profondeur la résolution DNS avant et après la configuration du résolveur VCN. À la fin, vous aurez un environnement multi-VCN entièrement fonctionnel avec des fonctionnalités DNS privées sur vos réseaux.

Objectifs

Il s'agit du deuxième tutoriel de la série suivant le tutoriel 1 : Exercice 1 : Accélérer la certification professionnelle d'architecte Oracle Cloud Infrastructure avec Terraform pour accélérer votre préparation à la certification professionnelle d'architecte OCI (2024). Nous tirons parti des principes IaC avec Terraform et Ansible, en nous concentrant sur les concepts DNS de base relatifs à l'examen. Bien que les ateliers pratiques de certification Laboratoire 2 : Oracle Cloud Infrastructure Architect Professional (Oracle University Lab - 6h 14m) soient complets, l'atelier 2 peut prendre du temps et prendre plus de 30 minutes à s'effectuer manuellement. L'automatisation de tâches de routine telles que la création de réseaux cloud virtuels, de sous-réseaux publics et privés, de passerelles d'appairage local et de machines virtuelles réduit considérablement le temps d'exécution de plus de 80 %, comme l'illustre le tutoriel 1 : Accélération de la certification professionnelle Oracle Cloud Infrastructure Architect avec Terraform, vous permettant ainsi de vous concentrer sur la maîtrise des principaux concepts OCI DNS.

Prérequis

Tâche 1 : création de deux réseaux cloud virtuels

Option manuelle :

Vous pouvez créer des réseaux cloud virtuels manuellement à l'aide de la console OCI. Pour indiquer cette création manuelle, les indicateurs is_vcn1_created et is_vcn2_created doivent être initialisés sur false.

Pour créer des ressources réseau de base telles que VCN, passerelle Internet, table de routage, liste de sécurité, sous-réseaux publics et privés, reportez-vous à Démarrage rapide des fonctions de réseau virtuel.

image Figure 2 : Vues de console pour collecter les OCID de VCN-01/VCN-02 et l'OCID de sous-réseau public VCN-01

Accédez à la console OCI, accédez à Fonctions de réseau, à Réseaux cloud virtuels et visualisez les détails de VCN-01, notez son OCID et celui de son sous-réseau public. Faites de même pour VCN-02, notez ses OCID et ajoutez les OCID collectés à votre fichier de configuration Terraform (input.auto.tfvars ou variables.tf).

# Create VCN-01 and VCN-02 with OCI VCN Wizard (set is_vcn1_created and is_vcn2_created to false)
is_vcn1_created    = false
is_vcn2_created    = false

# Update VCN-01 OCID and its Public Subnet OCID, as well as VCN-02 OCID
vcn1_id            = "REPLACE_CREATED_VCN1_OCID_HERE"
public_subnet1_id  = "REPLACE_CREATED_PUBLIC_SUBNET1_OCID_HERE"
vcn2_id            = "REPLACE_CREATED_VCN2_OCID_HERE"

Option Automatisé :

Nous fournissons également deux options d'automatisation pour créer le VCN (VCN-01 et VCN-02) : une approche Module racine et une approche Module enfant. La première est plus simple et convient pour le développement et les tests ou le déploiement unique de réseaux cloud virtuels. La seconde offre une meilleure organisation et une meilleure évolutivité pour les déploiements plus importants et complexes, ce qui favorise la réutilisation et la maintenance du code, ce qui le rend idéal pour les environnements de production.

Pour indiquer à Terraform de créer les réseaux cloud virtuels, vous devez d'abord définir les indicateurs is_vcn1_created et is_vcn2_created sur true dans input.auto.tfvars ou en tant que valeurs par défaut dans variables.tf. Spécifiez ensuite le bloc CIDR de VCN (vcn?_cidr_block), le bloc CIDR de sous-réseau public (public_subnet?_cidr_block), le bloc CIDR de sous-réseau privé (private_subnet?_cidr_block) et le préfixe de nom d'hôte (host_name?_prefix). Les noms de variable sont abstraits en utilisant le point d'interrogation (?) comme espace réservé. En remplaçant ? par 1 ou 2, vous définissez des configurations distinctes pour VCN-01 et VCN-02, respectivement.

Vous devez également définir les valeurs pour des variables spécifiques : oci_regions (mise en correspondance d'identificateurs de région avec des clés), network_deployment_option (TF-ROOT-MODULE ou TF-CHILD-MODULE) et dipslay_name_prefix (par exemple, AP-Lab-02-1). Le nom d'affichage final du VCN inclut la valeur network_deployment_option pour générer des noms complets (par exemple, PHX-AP-LAB02-1-TF-ROOT-MODULE-VCN-01).

Tâche 2 : créer deux passerelles d'appairage local

Option manuelle :

Pour créer manuellement des passerelles d'appairage local dans OCI, reportez-vous à Création d'une passerelle d'appairage local. Dans ce cas, définissez les indicateurs is_lpg1_created et is_lpg2_created sur false dans votre fichier de configuration (input.auto.tfvars ou variables.tf).

Option Automatisé :

Pour automatiser la tâche à l'aide de Terraform, définissez ces indicateurs sur true. Indique à Terraform de créer LPG-01 et LPG-02.

# Create 2 Local Peering Gateways (LPG-01 and LPG-02) then peer them.
is_lpg1_created = true
is_lpg2_created = true

Le fragment de code Terraform suivant crée à la fois LPG-01 et LPG-02, et établit une relation d'appairage entre eux, permettant ainsi une connectivité privée entre vos réseaux cloud virtuels.

# LPG-01 Creation
resource "oci_core_local_peering_gateway" "lpg-01" {
  count = (var.is_vcn1_created && var.is_lpg1_created) ? 1 : 0

  # Required
  compartment_id = var.compartment_id
  display_name   = var.is_vcn1_created ?  "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-${var.network_deployment_option}-LPG-01" : "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-LPG-01"
  vcn_id = var.is_vcn1_created ? module.vcn-01.vcn_ocid : var.vcn1_id
}

# LPG-02 Creation
resource "oci_core_local_peering_gateway" "lpg-02" {
  depends_on     = [oci_core_local_peering_gateway.lpg_01]
  count = (var.is_vcn2_created && var.is_lpg2_created) ? 1 : 0

  # Required
  compartment_id = var.compartment_id
  display_name   = var.is_vcn1_created ? "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-${var.network_deployment_option}-LPG-02" : "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-LPG-02"
  vcn_id = var.is_vcn2_created ? module.vcn-02.vcn_ocid : var.vcn2_id

  # Peering lpg-02 with lpg-01
  peer_id = oci_core_local_peering_gateway.lpg_01[count.index].id
}

Tâche 3 : lancement d'une instance de machine virtuelle

Option manuelle :

Pour lancer une instance de machine virtuelle manuellement via la console OCI, reportez-vous à Création d'une instance.

Option Automatisé :

Nous allons automatiser le provisionnement des machines virtuelles à l'aide d'une version simplifiée du code Terraform du tutoriel 1 : accélération de la certification professionnelle Oracle Cloud Infrastructure Architect avec Terraform. Pour indiquer à Terraform de créer une machine virtuelle VM-01, définissez l'indicateur is_instance_created sur true. Le nom d'affichage de la machine virtuelle inclut le paramètre network_deployment_option (par exemple, PHX-AP-LAB02-1-TF-ROOT-MODULE-VM-01 ou PHX-AP-LAB02-1-TF-CHILD-MODULE-VM-01) si le VCN est créé avec Terraform.

# Task 3: Launch a VM(VM-01) in the Public Subnet of VCN-01.
is_instance_created = true

Le code Terraform suivant automatise la création d'une VM-01 comme illustré à la figure 1 dans le sous-réseau public VCN-01.

resource "oci_core_instance" "this" {
  count = (var.is_instance_created) ? 1 : 0

  availability_domain = data.oci_identity_availability_domains.ads.availability_domains[0].name
  compartment_id              = var.compartment_id
  create_vnic_details {
    assign_private_dns_record = "true"
    assign_public_ip          = "true"
    subnet_id                 = var.is_vcn1_created ? module.vcn-01.public_subnet_ocid : var.public_subnet1_id
  }
  display_name = var.is_vcn1_created ? "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-${var.network_deployment_option}-VM-0${count.index + 1}" : "${try(var.regions_keys_map[var.region], "OCI")}-${var.display_name_prefix}-VM-0${count.index + 1}"

  instance_options {
    are_legacy_imds_endpoints_disabled = "false"
  }
  metadata = {
    "ssh_authorized_keys" = "${file(var.ssh_public_key)}"
  }

  shape = var.shape_name
  shape_config {
    memory_in_gbs             = var.shape_memory_in_gbs
    ocpus                     = var.shape_numberof_ocpus
  }
  source_details {
    source_id   = var.image_ids[var.region]
    source_type = "image"
  }
}

Tâche 4 : création de zones privées personnalisées pour VCN-01 et VCN-02

Les zones DNS privées d'OCI stockent les enregistrements DNS internes, accessibles uniquement dans un VCN. Pour comprendre les concepts relatifs au DNS, nous allons d'abord montrer comment créer manuellement deux zones privées personnalisées. La figure 3 illustre la création d'une zone DNS privée zone-a.local dans VCN-01 (PHX-AP-LAB02-1-VCN-01) et l'ajout d'un record à cette zone.

image Figure 3 : Créer une zone DNS privée et l'associer à VCN-01, puis ajouter un nouvel enregistrement à la zone

Option manuelle :

  1. Créez et configurez une zone DNS privée pour VCN-01 (zone-a.local).

    1. Accédez à la console OCI, accédez à Fonctions de réseau, à Gestion DNS, à Zones et cliquez sur Zones privées.

    2. Cliquez sur Créer une zone, entrez le nom de la zone (zone-a.local), sélectionnez Sélectionner une vue privée DNS existante, PHX-AP-LAB02-1-VCN-01 en tant que VCN associé et cliquez sur Créer.

    3. Une fois la zone créée, affichez les enregistrements NS et SOA générés automatiquement.

    4. Cliquez sur Gérer les enregistrements et sélectionnez Ajouter un enregistrement.

    5. Entrez les informations suivantes et cliquez sur Ajouter un enregistrement.

      • Nom : entrez server01.
      • Type : sélectionnez A - IPv4 Address.
      • TTL : entrez 30 seconds (déverrouillez le champ si nécessaire).
      • Adresse : entrez 10.0.0.2.
    6. Cliquez sur Publier les modifications et sur Confirmer la publication des modifications.

      Remarques : attendez la fin de l'opération (état passé de UPDATING à ACTIVE).

  2. Créez et configurez une zone DNS privée pour VCN-02 (zone-b.local). Suivez les mêmes étapes que la figure 3 pour créer une zone privée pour VCN-02 (PHX-AP-LAB02-1-VCN-02).

    1. Accédez à Zones, Zones privées, puis cliquez sur Créer une zone.

    2. Saisissez Nom comme zone-b.local, sélectionnez Sélectionner une vue privée DNS existante, PHX-AP-LAB02-1-VCN-02 comme VCN associé et cliquez sur Créer.

    3. Cliquez sur Gérer les enregistrements et sélectionnez Ajouter un enregistrement.

    4. Entrez les informations suivantes et cliquez sur Ajouter un enregistrement.

      • Nom : entrez server01.
      • Type : sélectionnez A - IPv4 Address.
      • TTL : entrez 60 seconds (déverrouillez le champ si nécessaire).
      • Adresse : entrez 172.16.0.123.
    5. Cliquez sur Publier les modifications et sur Confirmer la publication des modifications.

      Remarques : si vous ignorez une étape de création manuelle, cela entraîne des erreurs telles que : zone not found: 3 (NXDOMAIN).

Option Automatisé :

Ce tutoriel fournit également une approche automatisée avancée utilisant Ansible. Ansible est un outil d'automatisation open source qui gère les configurations de votre infrastructure. Dans ce contexte, un playbook Ansible est un ensemble de tâches qui automatisent la création de zones DNS privées. Pour plus d'informations, reportez-vous aux mots-clés Playbook Ansible.

Définissez is_task4_automated sur true dans input.auto.tfvars ou dans variabes.tf pour déclencher une exécution Ansible playbook dans playbooks.sh, en automatisant en une seule exécution la création de zones DNS privées et en enregistrant l'ajout.

# Task 4: Create and Configure two DNS zones (zone-a and zone-b).
is_task4_automated = true

A l'aide du provisionneur local-exec de Terraform, vous pouvez exécuter un livre de jeux Ansible pour créer automatiquement zone-a.local dans les zones VCN-01 et zone-b.local dans VCN-02 avec leur records respectif. Pour plus d'informations, reportez-vous à Code source : oci-ansible-collection.

# Create 2 Custom Private Zones and Associated Records in OCI
resource "null_resource" "ansible-create-zones-playbook" {
  count      = (var.is_task4_automated) ? 1 : 0

  # Create inventory
  provisioner "local-exec" {
    command = "sh ~/terraform-ws/lab2-demos/playbooks.sh"
  }
}

Tâche 5 : tester votre instance pour la zone A associée

Option manuelle :

Connectez-vous manuellement en SSH à l'instance de machine virtuelle pour vérifier si l'instance de machine virtuelle est associée à zone-a.local.

  1. Connectez-vous via SSH à l'instance avec l'adresse IP publique.

    ssh -i <private_ssh_key> <public_ip_address>
    
  2. Recherchez server01.zone-a.local dans les enregistrements DNS.

    host server01.zone-a.local
    

    Sortie attendue :

    server01.zone-a.local has address 10.0.0.2
    
  3. Vérifiez l'entrée de zone générée par le système.

    host -t NS zone-a.local
    

    Sortie attendue :

    zone-a.local has NS record vcn-dns.oraclevcn.com.
    
  4. Vérifiez l'enregistrement d'autorité pour la zone.

    host -t SOA zone-a.local
    

    Sortie attendue :

    zone-a.local has SOA record ven-dns.oraclevcn.com.
    hostmaster.oracle.com. 2 3600 3600 3600 10
    
  5. Observez la différence de résolution DNS basée sur les vues VCN associées.

    host server01.zone-b.local
    

    Sortie attendue :

    server01.zone-b.local not found: 3 (NXDOMAIN)
    

    La sortie indique que zone-b.local n'est associé à aucune des vues du VCN.

Option Automatisé :

Définissez l'indicateur is_test_instance_associated_zone_a sur true pour indiquer à Terraform de tester l'association VM-01 avec zone-a.local.

# Test Instance for Associated Zone (zone-a.local)
is_test_instance_associated_zone_a = true

Le code Terraform suivant utilise le provisionneur remote-exec pour automatiser le test de l'association de zone VM-01.

resource "null_resource" "dns_test_1" {
  depends_on = [oci_core_instance.this[0]]
  count      = (var.is_test_instance_associated_zone_a) ? 1 : 0

  connection {
    agent       = false
    timeout     = "30m"
    host        = oci_core_instance.this[0].public_ip
    user        = "opc"
    private_key = file(var.ssh_private_key) # Avoid exposing SSH keys directly
  }

  provisioner "remote-exec" {
    inline = [
      "echo \"Begin Test 1 - Instance Associated Zone-A\"",
      "echo \"1. Successful SSH to the instance using public ip address: ${oci_core_instance.this[0].public_ip}\"",
      "echo \"2. Look up DNS records for server01.zone-a.local.\"",
      "host server01.zone-a.local",
      "echo \"3. Verify the system-generated zone entry.\"",
      "host -t NS zone-a.local",
      "echo \"4. Verify the authority record for the zone.\"",
      "host -t SOA zone-a.local",
      "echo \"5. Observe the difference in DNS resolution based on the associated VCN views.\"",
      "host server01.zone-b.local",
      "echo \"End Test 1 - Instance Associated Zone-A\"",    ]
  }
}

Tâche 6 : configuration du résolveur VCN et ajout de l'autre vue privée

Option manuelle :

Pour configurer le résolveur VCN manuellement, accédez à la page de détails VCN-01 sur la console OCI, sélectionnez Résolveur VCN et Vue privée.

Sélectionnez VCN-02 dans le menu déroulant et cliquez sur Enregistrer pour enregistrer les modifications. Attendez que le statut de la page de détails du résolveur privé passe de Mise à jour à Actif.

Option Automatisé :

Pour automatiser la configuration du résolveur VCN, nous tirons parti du provisionneur local-exec de Terraform pour exécuter l'interface de ligne de commande OCI, les livres de jeux Ansible ou les modules Terraform.

Définissez l'indicateur is_task6_automated sur true pour indiquer à Terraform.

is_task6_automated = true

Le script bash fourni update_resolver.sh met en évidence les étapes de mise à jour du résolveur privé pour VCN-01 et d'association de VCN-02 en tant que vue privée DNS. En outre, un exemple de configuration DNS Terraform hybride pour OCI est disponible ici : terraform-OCI-hybrid-dns.

# Task 6: Configure the VCN Resolver, adding the Other Private View
resource "null_resource" "run-get-resolver" {
  count      = (var.is_task6_automated) ? 1 : 0

  # Create inventory
  provisioner "local-exec" {
    command = "sh ~/terraform-ws/lab2-demos/update_resolver.sh"
  }
}

Tâche 7 : tester votre instance pour la zone B associée

Option manuelle :

Vérifiez que le serveur est résolu correctement après avoir configuré le résolveur VCN.

  1. Connectez-vous via SSH à l'instance avec l'adresse IP publique.

    ssh -i <private_ssh_key> <public_ip_address>
    
  2. Recherchez server01.zone-a.local dans les enregistrements DNS.

    host server01.zone-b.local
    

    Sortie attendue :

    server01.zone-b.local has address 172.16.0.123
    

Remarque : en cas d'échec de la résolution DNS, attendez quelques minutes pour que les modifications prennent effet. Si nécessaire, redémarrez l'instance.

Option Automatisé :

Définissez l'indicateur is_test_instance_associated_zone_b sur true pour demander à Terraform de tester l'association de VM-01 à la deuxième zone (zone-b.local) du deuxième VCN (VCN-02).

# Test Instance for Assoicated Zone B
is_test_instance_associated_zone_b = true

Le code suivant utilise le provisionneur remote-exec de Terraform pour automatiser le test, en vérifiant l'association de l'instance de machine virtuelle à zone-b.local.

resource "null_resource" "dns_test_2" {
  depends_on = [oci_core_instance.this[0]]
  count      = (var.is_test_instance_associated_zone_a) ? 1 : 0

  connection {
    agent       = false
    timeout     = "30m"
    host        = oci_core_instance.this[0].public_ip
    user        = "opc"
    private_key = file(var.ssh_private_key)
  }

  provisioner "remote-exec" {
    inline = [
      "echo \"Begin Test 2 - Instance Associated Zone-B\"",
      "echo \"1. Successfull SSH into the instance using its public ip address: ${oci_core_instance.this[0].public_ip}\"",
      "echo \"2. Look up DNS records for server01.zone-b.local.\"",
      "host server01.zone-b.local",
      "echo \"End Test 2 - Instance Associated Zone-B\""    ]
  }
}

Options de déploiement

Nous examinerons deux options de déploiement :

To provision Lab 2 resources (VCN-01/VCN-02, LPG-01/LPG-02, and VM-01) and trigger the required tests, you need to provide default values for: image OCIDs map for each used region (image_ids), compartment OCID (compartment_id), display name prefix (display_name_prefix), networking (is_vcn1_created, is_vcn2_created, is lpg1_created, is_lpg2_created, vcn_1_id, vcn_2_id, and public_subnet1_id), compute instance (is_instance_created, shape_name), and testing flags for instance and zone associations (is_test_instance_associated_zone_a and is_test_instance_associated_zone_b).

Option 1 : Utiliser Oracle Resource Manager (ORM)

La figure 4 présente la création de la pile ORM pour la création des ressources de l'atelier 2.

image Figure 4 : Oracle Resource Manager - Création d'une pile Lab2 (VCN-01, VCN-02, LPG-01 et LPG-02, VM-01)

Terraform automatise le provisionnement de l'infrastructure en sept étapes, comme illustré à la figure 5 : analyse des configurations source, création du package de modèle Terraform, fourniture de valeurs de variable par défaut, création de piles ORM, planification des modifications, application de ces modifications au provisionnement des ressources dans OCI et éventuellement destruction des ressources. L'intégration d'outils d'intégration continue et de déploiement continu DevOps tels que Jenkins ou OCI DevOps peut automatiser l'ensemble du processus, offrant ainsi une solution pratique, proche d'une solution en un seul clic.

image Figure 5 : Workflow de pile Oracle Resource Manager (créer, planifier, appliquer et détruire)

Option 2 : utilisation de l'interface de ligne de commande Terraform (CLI) (Community Edition)

L'interface de ligne de commande Terraform est un outil puissant de type Infrastructure-as-Code qui permet une gestion flexible et évolutive des ressources cloud via des fichiers de configuration déclaratifs. Téléchargez le code Terraform à partir de cet emplacement : OCI-blog-fast-tracking-apcertif-part2.zip, personnalisez le fichier input.auto.tfvars avec les détails OCI (compartment_id, image_ids), suivez les instructions du fichier README.md pour configurer l'environnement, exécutez les commandes terraform init, terraform plan et terraform apply pour terminer l'exercice 2.

Nous avons inclus des scripts bash pour chaque tâche qui prédéfinissent les indicateurs Terraform requis, ce qui réduit les clics et le temps d'exécution. Ces scripts offrent plusieurs niveaux de flexibilité :

En substance, ce package fournit des guides et des meilleures pratiques pour la configuration du DNS privé, simplifiant l'atelier 2 et garantissant une expérience d'apprentissage fluide avec OCI DNS.

##########################################################################
# Terraform module: Configuring Private DNS Zones, Views, and Resolvers. #
# File Name: input.auto.tfvars                                           #
# Copyright (c) 2024 Oracle        Author: Mahamat H. Guiagoussou.       #
##########################################################################

# Working Compartment
compartment_id      = "REPLACE_WITH_YOUR_WORKING_COMPARTMENT_OCID_HERE"

# Region based display name prefix
display_name_prefix = "AP-LAB02-1"   # Replace with your prefix

# TASK 1 - Create 2 VCNs (VCN-01 and VCN-02) manually using the OCI
# VCN Wizard (semi automated option) or Terraform (Root or Child)

# Turn flags off to indicate VCN-01 and VCN-02 are not created with TF
#is_vcn1_created    = false   # Set to 'false' to create VCN-01
#is_vcn2_created    = false   # Set to 'false' to create VCN-02

# After Creating VCN-01 & VCN-02 with VCN Wizard, updae OCIDs
vcn_id            = "REPLACE_VCN1_OCID_HERE"
vcn_id            = "REPLACE_VCN2_OCID_HERE"
public_subnet_id  = "REPLACE_PUBLIC_VCN1_SUBNET_OCID_HERE"

# Create VCN-01 and VCN-02 with Terraform. Use only one of 2 options:
# (1) Root Module  - Dupplicated code ("network1.tf" & "network2.tf")
# (2) Child Module - Use an existing Terraform Network Module.

# Network Deployment Options (Root Module)
network_deployment_option = "TF-ROOT-MODULE" # "TF-CHILD-MODULE"

# Turn flags on to instruct Terraform to create VCN-02 and VCN-02
is_vcn1_created            = true   # Set to 'true' to create VCN-01
is_vcn2_created            = true   # Set to 'true' to create VCN-02

# Networking parameters: CIDR Blocks and Host Name prefix
vcn1_cidr_block            = "10.0.0.0/16"
vcn2_cidr_block            = "172.0.0.0/16"
public_subnet1_cidr_block  = "10.0.0.0/24"
public_subnet2_cidr_block  = "172.0.0.0/24"
private_subnet1_cidr_block = "10.0.1.0/24"
private_subnet2_cidr_block = "172.0.1.0/24"
host_name_prefix           = "<region-key>apl1"

# Task 2: Create two(2) Local Peering Gateways (LPG-01 & LPG-02)
is_lpg1_created            = false
is_lpg2_created            = false

# Task 3: Launch a VM (VM-01) in the public subnet
is_instance_created        = false

# Shape Definition
shape_name                 = "VM.Standard.A1.Flex"
shape_memory_in_gbs        = "6"
shape_numberof_ocpus       = "1"

# SSH keys
ssh_public_key             = "REPLACE_SSH_PUBLIC_KEY_PATH"
ssh_private_key            = "REPLACE_SSH_PRIVATE_KEY_PATH"

# Task 4: Create and Configure OCI Private Zones (zone-a/b.local)
is_task4_automated         = false

# Task 5: Test your instance for Associated Zone A.
is_test_instance_associated_zone_a = false

# Task 6: Configure the VCN Resolver, adding the Other Private View.
is_task6_automated         = false

# Task 7: Test your Instance for Associated Zone B.
is_test_instance_assoracle = false

Ce tutoriel offrait une approche complète de la configuration de zones, de vues et de résolveurs DNS privés dans Oracle Cloud Infrastructure (OCI). Il proposait des méthodes manuelles et automatisées pour créer, configurer et tester ces composants. Cette approche pratique et semi-automatisée garantit une solide compréhension de la résolution DNS dans différents réseaux cloud virtuels d'OCI.

Grâce à sept tâches, vous avez créé deux réseaux cloud virtuels, établi des passerelles d'appairage local, lancé une machine virtuelle, configuré deux zones DNS personnalisées et vérifié l'association DNS de machine virtuelle avant et après l'ajout du deuxième VCN en tant que vue privée associée au résolveur DNS du premier VCN.

Etapes suivantes

En automatisant le provisionnement de l'infrastructure OCI à l'aide d'outils Infrastructure as Code IaC tels que Terraform, Ansible, Oracle Resource Manager ORM et les scripts shell bash de l'interface de ligne de commande OCI, ce tutoriel aide les candidats à la certification professionnelle OCI Architect (2024) à accélérer des tâches complexes, telles que celles des configurations DNS de l'atelier 2, de 30 minutes à seulement 5 minutes. Cette accélération de l'efficacité réduit les erreurs humaines, réduit les coûts de gestion des ressources et augmente les taux de réussite à grande échelle.

Découvrez Terraform et Ansible, puis tirez parti de l'ORM, de l'interface de ligne de commande OCI et des scripts bash pour explorer les meilleures pratiques IaC pour une gestion efficace de l'infrastructure OCI.

Remerciements

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.