Note :

Configurer des zones, des vues et des résolveurs DNS privés pour accélérer la certification professionnelle OCI Architect 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. Cette série de tutoriels accélère votre parcours en tirant parti de l'infrastructure en tant que 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 (Oracle University Lab - 6h 14m).

Image Figure 1 : Points d'extrémité de passerelle d'appairage local pour créer un nom de domaine DNS privé

Avantages des clés DNS privées

Le DNS privé offre plusieurs avantages pour la gestion et la sécurité de vos ressources OCI. Cela inclut, mais sans s'y limiter, les éléments suivants :

Nous allons étudier comment tirer parti du DNS privé d'OCI pour gérer des domaines personnalisés et connecter les ressources entre 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 donne 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 VCN évolutif et multi-VCN dans OCI avec une résolution DNS privée. À l'aide de la console OCI, de Terraform et de Ansible, vous allez créer deux réseaux en nuage virtuels, établir des passerelles d'appairage local entre elles, lancer une instance de machine virtuelle, configurer des zones DNS privées personnalisées et tester de manière approfondie la résolution DNS avant et après la configuration du résolveur VCN. À la fin, vous disposerez d'un environnement multi-VCN entièrement fonctionnel avec une fonctionnalité DNS privée sur tous vos réseaux.

Objectifs

Il s'agit du deuxième tutoriel de la série suivante : 1 : Laboratoire 1 : Accélérer la certification professionnelle d'architecte Oracle Cloud Infrastructure avec Terraform pour accélérer la préparation de votre certification professionnelle d'architecte OCI (2024). Nous tirons parti des principes IaC avec Terraform et Ansible, en nous concentrant sur les concepts de base de DNS pertinents pour l'examen. Bien que les laboratoires pratiques de certification : Laboratoire 2 : Oracle Cloud Infrastructure Architect Professional (Oracle University Lab - 6h 14m) soient complets, le laboratoire 2 peut prendre beaucoup de temps, et prendre plus de 30 minutes pour les terminer manuellement. L'automatisation des tâches de routine telles que la création de réseaux en nuage virtuels, de sous-réseaux publics et privés, de passerelles LPG et de machines virtuelles réduit considérablement le temps d'exécution de plus de 80 % comme illustré dans le tutoriel 1 : Accélérer la certification professionnelle d'architecte Oracle Cloud Infrastructure avec Terraform, ce qui vous permet de vous concentrer sur la maîtrise des concepts de base de DNS pour OCI.

Préalables

Tâche 1 : Créer deux réseaux en nuage virtuels

Option manuelle :

Vous pouvez créer des réseaux en nuage 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 à false.

Pour créer des ressources de réseau de base telles que le VCN, la passerelle Internet, la table de routage, la liste de sécurité, les sous-réseaux publics et privés, voir Démarrage rapide du réseau virtuel.

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

Allez à la console OCI, naviguez jusqu'à Réseau, Réseaux en nuage virtuels et consultez les détails de VCN-01, notez son OCID et l'OCID 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ée :

Nous fournissons également deux options d'automatisation pour créer le VCN (VCN-01 et VCN-02) : une approche de module racine et une approche de module enfant. Le premier est plus simple et adapté au développement et aux tests ou au déploiement ponctuel de réseaux en nuage virtuels. La deuxième offre une meilleure organisation et une meilleure évolutivité pour les déploiements plus importants et complexes, favorisant la réutilisation et la maintenabilité du code, le rendant idéal pour les environnements de production.

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

Vous devez également définir les valeurs des variables spécifiques : oci_regions (mappage des identificateurs de région aux 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 des passerelles LPG dans OCI manuellement, voir Création d'une passerelle d'appairage local. Dans ce cas, réglez les indicateurs is_lpg1_created et is_lpg2_created à false dans votre fichier de configuration (input.auto.tfvars ou variables.tf).

Option automatisée :

Pour automatiser la tâche à l'aide de Terraform, réglez ces indicateurs à true. Cela 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

L'extrait de code Terraform suivant crée à la fois LPG-01 et LPG-02 et établit une relation d'appairage entre eux, ce qui permet une connectivité privée entre vos réseaux en nuage 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 : Lancer une instance de machine virtuelle

Option manuelle :

Pour lancer une instance de machine virtuelle manuellement au moyen de la console OCI, voir Création d'une instance.

Option automatisée :

Nous fournirons une automatisation du provisionnement des machines virtuelles à l'aide d'une version simplifiée du code Terraform du tutoriel 1 : Accélérer la certification professionnelle d'architecte Oracle Cloud Infrastructure avec Terraform. Pour indiquer à Terraform de créer une machine virtuelle VM-01, réglez l'indicateur is_instance_created à true. Le nom d'affichage de la machine virtuelle inclura 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éer des 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 de 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 y ajoute une valeur record.

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. Allez à la console OCI, naviguez jusqu'à 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 comme VCN associé et cliquez sur Créer.

    3. Une fois la zone créée, consultez 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 Confirmer la publication des modifications.

      Notes : Attendez que l'opération se termine avec succès (l'état passe de MISE À JOUR à 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. Naviguez jusqu'à Zones, Zones privées, cliquez sur Créer une zone.

    2. Entrez 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 Confirmer la publication des modifications.

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

Option automatisée :

Ce tutoriel fournit également une approche automatisée avancée utilisant Ansible. Ansible est un outil d'automatisation à code source libre qui gère les configurations de votre infrastructure. Dans ce contexte, un livre de jeu Ansible est un ensemble de tâches qui automatisent la création de zones DNS privées. Pour plus d'informations, voir Mots clés de livre de jeu Ansible.

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

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

À l'aide du provisionneur local-exec de Terraform, vous pouvez exécuter un livre de jeu Ansible pour créer automatiquement zone-a.local dans VCN-01 et les zones zone-b.local dans VCN-02 avec leur records respectif. Pour plus d'informations, voir 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 :

Accédez manuellement à l'instance de machine virtuelle par SSH pour vérifier si votre instance de machine virtuelle est associée à zone-a.local.

  1. Accédez par SSH à l'instance avec l'adresse IP publique.

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

    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 de DNS en fonction des vues de 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ée :

Réglez l'indicateur is_test_instance_associated_zone_a à true pour demander à 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 : Configurer le résolveur de VCN et ajouter l'autre vue privée

Option manuelle :

Pour configurer le résolveur de VCN manuellement, naviguez jusqu'à la page de détails du VCN-01 dans la console OCI, sélectionnez Résolveur de 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 des détails du résolveur privé passe de MISE À JOUR à ACTIVE.

Option automatisée :

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

Réglez l'indicateur is_task6_automated à 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 associe VCN-02 en tant que vue privée DNS. De plus, un exemple de configuration Terraform DNS 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 résout correctement après avoir configuré le résolveur de VCN.

  1. Accédez par SSH à l'instance avec l'adresse IP publique.

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

    host server01.zone-b.local
    

    Sortie attendue :

    server01.zone-b.local has address 172.16.0.123
    

Note : Si la résolution du DNS échoue, attendez quelques minutes pour que les modifications prennent effet. Si nécessaire, redémarrez l'instance.

Option automatisée :

Réglez l'indicateur is_test_instance_associated_zone_b à true pour indiquer à Terraform de tester l'association de VM-01 avec 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 avec 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 explorerons 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 du laboratoire 2.

Image Figure 4 : Gestionnaire de ressources Oracle - Créer 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 sources, création de l'ensemble de modèles 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 des outils d'intégration et de développement en continu DevOps tels que Jenkins ou OCI DevOps peut automatiser l'ensemble du processus, offrant une solution pratique à proximité d'un clic unique.

Image Figure 5 : Flux de travail de pile d'Oracle Resource Manager (créer, planifier, appliquer et détruire)

Option 2 : Utiliser l'interface de ligne de commande Terraform (édition Community)

L'interface de ligne de commande Terraform est un outil puissant d'infrastructure-code qui permet une gestion flexible et évolutive des ressources en nuage au moyen de fichiers de configuration déclaratifs. Téléchargez le code Terraform à partir d'ici : OCI-blog-fast-tracking-apcertif-part2.zip et personnalisez le fichier input.auto.tfvars avec vos détails OCI (compartment_id, image_ids), et suivez les instructions dans README.md pour configurer l'environnement, exécutez les commandes terraform init, terraform plan et terraform apply pour terminer le laboratoire 2.

Nous avons inclus des scripts bash pour chaque tâche qui prédéfinissent les indicateurs Terraform requis, réduisant ainsi les clics et le temps d'achèvement. Ces scripts offrent plusieurs niveaux de flexibilité :

Essentiellement, cet ensemble fournit des guides et des meilleures pratiques pour configurer un DNS privé, ce qui simplifie le laboratoire 2 et assure une expérience d'apprentissage fluide avec le DNS OCI.

##########################################################################
# 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 présente une approche complète de la configuration de zones, de vues et de résolveurs DNS privés dans Oracle Cloud Infrastructure (OCI). Il offrait des méthodes manuelles et automatisées pour créer, configurer et tester ces composants. Cette approche pratique, semi-automatisée assure une solide compréhension de la résolution DNS dans les différents réseaux en nuage virtuels d'OCI.

Au moyen de sept tâches, vous avez créé deux réseaux en nuage virtuels, établi des passerelles LPG, lancé une machine virtuelle, configuré deux zones DNS personnalisées et vérifié l'association DNS de la 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.

Étapes suivantes

En automatisant le provisionnement de l'infrastructure OCI à l'aide de l'infrastructure en tant qu'outils de code IaC tels que Terraform, Ansible, Oracle Resource Manager ORM et les scripts d'interpréteur de commandes bash de l'interface de ligne de commande OCI, ce tutoriel aide les candidats à la certification professionnelle d'architecte OCI (2024) à accélérer les tâches complexes, telles que celles des configurations DNS du laboratoire 2, de 30 minutes à seulement 5 minutes. Cette amélioration de l'efficacité temporelle réduit les erreurs humaines, réduit les coûts de gestion des ressources et augmente les taux de réussite à grande échelle.

Apprenez Terraform et Ansible, puis utilisez ORM, l'interface de ligne de commande OCI et les scripts de base pour explorer les meilleures pratiques IaC pour une gestion efficace de l'infrastructure OCI.

Confirmation

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.