Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse para obtener una cuenta gratuita, consulte Introducción a la cuenta gratuita de Oracle Cloud Infrastructure.
- Utiliza valores de ejemplo para credenciales, arrendamiento y compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por otros específicos de su entorno en la nube.
Acelere la certificación de Architect Professional de Oracle Cloud Infrastructure con Terraform
Introducción
Lograr la certificación de Oracle Cloud Infrastructure (OCI) Architect Professional requiere un profundo conocimiento de Oracle Cloud y experiencia práctica. Este tutorial acelera su recorrido aprovechando la infraestructura como código (IaC) con Terraform.
La siguiente figura 1 muestra la arquitectura de OCI de destino que se va a desplegar. El lado derecho describe un enfoque estructurado para el laboratorio OCI Architect Professional Certification (2024), dividido en siete pasos secuenciales. Al aprovechar los fragmentos de código de Terraform incorporados adaptados a los laboratorios de exámenes de certificación, las tareas repetitivas se automatizan, lo que libera un valioso tiempo para concentrarse en dominar los conceptos esenciales de OCI. Este enfoque no solo acelera la finalización del laboratorio, sino que también fomenta una comprensión más profunda de la plataforma.
Figura 1: Laboratorio de certificación profesional de arquitectura de OCI 1: arquitectura y proceso manual frente a automatizado
Recuperación de métodos manuales
Los enfoques manuales de los laboratorios prácticos sobre exámenes de certificación de OCI pueden ser un obstáculo importante. Algunos inconvenientes son:
- Prensa a errores: las tareas manuales repetitivas aumentan el riesgo de errores humanos, lo que lleva a errores tipográficos, pasos perdidos y retrasos.
- Uso de tiempo: los flujos de trabajo complejos consumen mucho tiempo, lo que dificulta el progreso y limita la práctica.
- No escalable: requiere copiar y pegar, introducir errores y multiplicar los esfuerzos de corrección.
- Cuello de botella de prueba: evaluar las tareas manuales es subjetivo, lo que dificulta la medición y preparación precisas del rendimiento.
- Deficiencias de la documentación: depende de la información humana informal, las prácticas inconsistentes y los desafíos para mantener los procedimientos.
- Más allá del dolor manual:
- Los métodos tradicionales crean una presión de todo o nada. Un solo paso perdido puede descarrilar el progreso agregando estrés innecesario y oscureciendo la verdadera comprensión.
- Estos métodos difuminan la línea entre las habilidades esenciales y las tareas obligatorias. Se pierde un valioso tiempo de práctica en una configuración tediosa, lo que dificulta el aprendizaje y el dominio de las habilidades de OCI.
Domina OCI Skills más rápido: el poder de la automatización
En este tutorial se muestra cómo acelerar la certificación de OCI automatizando tareas, centrándose en las habilidades básicas y acortando el tiempo de práctica.
Beneficios clave:
- Aprendizaje centrado: automatiza las tareas repetitivas, liberando tiempo para dominar los conceptos principales y profundizando la comprensión y la retención de conocimientos.
- Práctica on-demand: consigue flexibilidad eligiendo qué parte de los laboratorios automatizar, personalizando el ritmo de aprendizaje y acelerando la preparación.
- Aumenta la eficiencia: reduce el tiempo de preparación hasta en un 80 % mediante la automatización.
Beneficios adicionales:
- Escalabilidad y rentabilidad: amplíe o reduzca fácilmente la infraestructura en función de la demanda, lo que se traduce en un ahorro de costos.
- Errores reducidos: elimine los errores humanos y asegúrese de que la infraestructura siempre se aprovisione de forma segura y correcta.
Para acelerar su recorrido por OCI Architect Professional Certification (2024), automatizaremos el Laboratorio 1: Oracle Cloud Infrastructure Architect Professional ilustrado en la Figura 1 con Terraform. Este enfoque automatizado se puede ampliar a otros laboratorios de certificación y despliegues en la nube del mundo real.
Grupo de seguridad de red (NSG) como origen de entrada a otro NSG en lugar de bloque CIDR
En este tutorial se exploran los grupos de seguridad de red en OCI y cómo proporcionan control granular sobre el tráfico de red dentro de una red virtual en la nube (VCN). Los grupos de seguridad de red actúan como firewalls virtuales, controlando el acceso de red a los recursos de una VCN. Esto incluye, por ejemplo, instancias de OCI Compute, clusters de Kubernetes o bases de datos. Los grupos de seguridad de red ofrecen una mayor flexibilidad que las listas de seguridad al activar el control entre recursos en lugar de solo entre subredes.
Enfoque híbrido semi-automatizado en 7 pasos
Los laboratorios prácticos de OCI Architect Professional Certification, aunque completos, pueden llevar mucho tiempo. Considere el laboratorio 1: Oracle Cloud Infrastructure Architect Professional, que requiere al menos 25 minutos para completarse. Al automatizar tareas repetitivas como la creación de VCN, NSG y máquinas virtuales (VM) con Terraform, puede reducir esta vez hasta en un 80 %, centrándose en los conceptos básicos de seguridad en lugar de en los tediosos pasos manuales. El enfoque semi-automatizado propuesto ofrece flexibilidad, lo que le permite elegir qué tareas automatizar.
Objetivos
- Acelere la preparación para la certificación de Architect Professional de Oracle Cloud Infrastructure con Terraform.
Requisitos
-
Familiaridad con los principios de infraestructura como código (IaC) y las funciones principales de Terraform.
-
Conocimientos básicos de Terraform. Los principiantes deben completar el arquitecto profesional de Oracle Cloud Infrastructure o cualquier guía para principiantes como Terraform for_each: un tutorial simple con ejemplos.
-
Uso de OCI Cloud Shell, Oracle Resource Manager (ORM) o IDE (por ejemplo, Visual Studio) con el plugin de Terraform.
Tarea 1: Creación de una red virtual en la nube (VCN)
Opción manual:
Utilice el asistente de VCN de OCI para crear recursos de red principales: VCN, gateway de Internet, tabla de rutas, lista de seguridad, subredes públicas y privadas. Para obtener más información, consulte Inicio rápido de redes virtuales.
-
Vaya a la consola de OCI, vaya a Networking, Virtual Cloud Networks y cree una nueva VCN.
-
Haga clic en Información de VCN y anote los OCID de la VCN, la subred privada y la subred pública (Figura 2).
-
Agregue los OCID al archivo
input.auto.tfvars
(oterraform.tfvars
), como se muestra en la sección de opciones de despliegue.
Por defecto, el indicador create_vcn
está desactivado (cree manualmente la VCN desde la consola de OCI). Recopile el OCID de VCN, los OCID de subredes y agréguelos al archivo 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"
Figura 2: Vista de la VCN de la consola para recopilar el OCID de la VCN, el OCID de la subred pública y el OCID de la subred privada
Opción automatizada:
Cree la VCN mediante los siguientes pasos.
-
Para crear automáticamente la VCN y todos los recursos de red, defina el indicador
create_vcn
entrue
en el archivoinput.auto.tfvars
. -
Especifique VCN, subred pública, bloques CIDR de subredes privadas y prefijo de nombre de host.
# 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"
Tarea 2: Creación de dos NSG (NSG-01 y NSG-02)
Opción manual:
Cree dos NSG (NSG-01 y NSG-02) mediante los siguientes pasos:
-
Seleccione la VCN creada en la tarea 1.
-
En Recursos, haga clic en Grupos de seguridad de red.
-
Haga clic en Crear grupo de seguridad de red e introduzca la siguiente información.
- Nombre: introduzca un nombre. Por ejemplo,
<REGION-KEY>-AP-LAB01-NSG-01
. - Compartimento de creación: introduzca el compartimento de trabajo.
- Haga clic en Crear.
- Nombre: introduzca un nombre. Por ejemplo,
-
Repita los pasos 1 a 3 para el segundo NSG denominado
<REGION-KEY>-AP-LAB01-NSG-02
.
Opción automatizada:
El siguiente código de Terraform crea dos NSG (NSG-01 y 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"
}
Para crear los dos NSG, defina los indicadores create_nsg_1
y create_nsg_2
en true
.
# Step 2: Create two(2) empty Network Security Groups (NSG-01 & NSG-02).
create_nsg_1 = true
create_nsg_2 = true
Tarea 3: Inicio de cuatro máquinas virtuales con Terraform y ejecución de la prueba de ping del protocolo de mensajes de control de Internet (ICMP)
Asumiendo que está familiarizado con el inicio manual de máquinas virtuales desde la consola de OCI. Para obtener más información, consulte Creación de una instancia.
Nota: Solo cubrimos la opción de automatización de Terraform para crear 4 máquinas virtuales (3 máquinas virtuales en la subred pública y 1 máquina virtual en la subred privada).
Active el indicador create_vm_1_3
para indicar a Terraform que cree tres máquinas virtuales (VM-01, VM-02 y VM-03).
# Step 3a: Launch three(3) VMs(VM-01, VM-02, VM-03) in the public subnet.
create_vm_1_3 = true
Para crear tres instancias informáticas en la subred pública, hemos utilizado el metaargumento count
en el código de Terraform que aparece a continuación. Este enfoque conciso simplifica el proceso de creación en comparación con el metaargumento for_each
más complejo. Si se define count
en 3, se generan automáticamente instancias indexadas 0, 1 y 2, lo que mejora la legibilidad y la eficacia del código.
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"
}
}
Nota: Para acceder a las máquinas virtuales públicas mediante SSH, genere su propio par de claves SSH. Para obtener más información, consulte Generación de claves SSH.
A continuación, active el indicador create_vm_4
para indicar a Terraform que cree VM-04 en la red privada.
# Step 3b: Launch the fourth VM (VM-04) in the private subnet.
create_vm_4 = true
Esta es la parte del código de Terraform que crea la cuarta instancia (VM-04) en la subred privada.
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"
}
}
Prueba manual de eco de ICMP: observación del impacto de los NSG en el tráfico.
-
Vaya a la consola de OCI y vaya a Compute e Instances. Se mostrarán las cuatro instancias.
-
Anote las direcciones IP públicas de las tres instancias (VM-01, VM-02, VM-03).
-
En la computadora, haga ping en la dirección IP pública de cada instancia de VM.
Resultados Esperados:
-
Todas las instancias fallarán porque la lista de seguridad no tiene una regla de eco ICMP.
-
Las reglas de seguridad por defecto permitían el acceso SSH (puerto 22) a todas las máquinas virtuales públicas.
Prueba de eco de ICMP automatizada: esta prueba se automatiza mediante el aprovisionador local-exec
de Terraform.
-
Hemos definido una matriz,
VM1_3
, que contiene tres elementos para representar las tres VM públicas, y una variable,icmp_ping_count
, para especificar el número de pings. -
El siguiente código de Terraform automatiza las pruebas de eco de ICMP a
VM-02
desde la máquina 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}" } }
Edite el archivo input.auto.tfvars
para definir el valor de la variable icmp_ping_count
. Para activar el ping en cada una de las tres máquinas virtuales públicas desde la computadora local, defina los indicadores icmp_pingvm?_fromlocal
en true
(donde 1, 2 o 3 representan la máquina virtual específica).
# ICMP ping from Local Computer (First Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true
Tarea 4: Configuración del tráfico de entrada de ICMP y asociación de vNICs al NSG-01
Opción manual:
Las siguientes subtareas necesarias para configurar el tráfico entre VM-03 y NSG-01.
Tarea 4.1: Adición de una nueva regla de entrada en Networking
Para actualizar el primer NSG (NSG-01), siga los pasos descritos en la Figura 3.
-
Seleccione su VCN.
-
En Grupos de seguridad de red, seleccione NSG-01 y haga clic en Agregar reglas.
-
Introduzca la siguiente información y haga clic en Agregar.
- Tipo de origen: introduzca CIDR.
- CIDR de origen: introduzca
0.0.0.0/0
. - IP Protocol: seleccione ICMP.
- Tipo: introduzca 8.
- Código: seleccione Todo.
Figura 3: Adición de una regla de entrada al NSG-01 para permitir el ping ICMP desde Internet
Tarea 4.2: Configuración de la tercera máquina virtual (VM-03) para que apunte al NSG-01
Para conectar el NSG-01 a la interfaz de red virtual (VNIC) VM-03, siga los pasos descritos en la figura 4.
-
En Recursos informáticos, haga clic en Instancias, VM-03 y Ver detalles.
-
Seleccione la vNICs asociada y haga clic en VNIC principal.
-
En Información de vNIC, haga clic en el enlace Editar situado junto a Grupo de seguridad de red y seleccione NSG-01.
-
Haga clic en Guardar Cambios.
Figura 4: Conexión de NSG-01 a la vNIC VM-03
Opción automatizada:
Vaya al archivo input.auto.tfvars
y active el indicador automate_step_4
.
# Step 4: Add CIDR ingress rule in Network, attach VM-03 vNIC with NSG-01.
automate_step_4 = true
Notas:
- Recomendamos realizar tareas de configuración manualmente al aprovechar Terraform para el aprovisionamiento automatizado de recursos.
- Si opta por la automatización de Terraform, recuerde volver a crear (destruir y volver a crear) las máquinas virtuales para asociar correctamente el NSG-01 a la vNIC VM-03.
- Independientemente de la opción elegida, el laboratorio exige pruebas de ping ICMP.
Comprobación manual: realice una segunda prueba de eco de ICMP (ping) en las direcciones IP públicas de VMs VM-01, VM-02 y VM-03 desde su computadora local.
Resultados:
- Todo ping fallará. Solo la tercera instancia (VM-03) responderá correctamente.
- VM-03 responde al ping debido a la conexión de su vNIC al NSG-01 (Figura 4), que permite el tráfico ICMP entrante (Figura 3).
Comprobación automatizada: navegue hasta el archivo input.auto.tfvars
y defina todos los indicadores icmp_pingvm?_fromlocal
en true (donde 1, 2 o 3 representan la VM específica).
# ICMP ping from Local Computer (Second Attempt)
icmp_pingvm1_fromlocal = true
icmp_pingvm2_fromlocal = true
icmp_pingvm3_fromlocal = true
Tarea 5: Ejecutar ping ICMP antes de anidar los dos NSG
Opción manual:
Inicialmente, intente hacer ping a la dirección IP privada de VM-04 desde las tres máquinas virtuales públicas.
- Utilice SSH para acceder a todas las instancias informáticas de la subred pública (VM-01, VM-02, VM-03).
- Desde cada servidor, haga ping a la dirección IP privada de VM-04.
Resultados esperados: fallarán todos los intentos de ping. Para activar la conectividad, se necesita una arquitectura de NSG anidada.
Opción automatizada:
Defina el indicador icmp_test_from_vm?
en true para cada VM pública (VM-01, VM-02 y VM-03). Reemplace por el número de VM específico (1, 2 o 3) en cada nombre de indicador.
# 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
Esta opción utiliza el aprovisionador remote-exec
de Terraform para automatizar las pruebas de ICMP. Deberá especificar la clave SSH privada que corresponde a la clave pública utilizada durante la creación de las máquinas virtuales. El script de shell, ping_script.sh
, itera mediante el número de intentos de ping definidos por 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",
]
}
}
Tarea 6: Configuración de NSG anidados (NSG-01 y NSG-02)
Opción manual:
Configure el segundo NSG (NSG-02) con una regla de entrada que especifique el NSG-01 como origen, lo que activa el flujo de tráfico ICMP entre los dos NSG.
Tarea 6.1: Adición de una regla de entrada en Networking (red virtual en la nube)
-
En la VCN (VCN-01), haga clic en Reglas de seguridad.
-
Seleccione NSG-02 y haga clic en Agregar reglas.
-
Introduzca la siguiente información y haga clic en Agregar.
- Source Type: seleccione Network Security Group.
- Origen: introduzca NSG-01.
- IP Protocol: seleccione ICMP.
- Tipo: introduzca 8.
- Código: seleccione Todo.
Figura 5: Adición de NSG-01 como origen a la regla de entrada de NSG-02
Tarea 6.2: Configuración de la cuarta máquina virtual (VM-04) para que apunte al NSG-02
-
En Información de vNIC de la VM-04 (Figura 6), haga clic en el enlace Editar situado junto al NSG y seleccione NSG-02.
-
Haga clic en Guardar cambio.
Figura 6: Conexión del NSG-02 a la vNIC VM-04
Opción automatizada:
Para automatizar esta tarea, defina automate_step_6
en true en el archivo input.auto.tfvars
.
# Step 6: Add NSG-01 as ingress rule source, attach NSG-02 to VM04 vNIC.
automate_step_6 = true
Tarea 7: Ejecución de las pruebas de eco de ICMP finales para los NSG anidados
Prueba integral manual:
Vuelva a intentar hacer ping a la dirección IP privada de VM-04 desde las máquinas virtuales públicas.
-
Utilice SSH para acceder a las tres instancias de la subred pública (VM-01, VM-02, VM-03).
-
En cada uno, haga ping a la IP privada de VM-04. Solo VM-03 tiene éxito como se ilustra en la Figura 1.
Explicación: la vNIC de VM-04 ahora se rige por las reglas dentro del NSG-02 y las de la lista de seguridad por defecto. NSG-01 se configura como un origen de regla de entrada para NSG-02, que permite el tráfico desde Internet.
Pruebas integrales automatizadas:
Active Terraform para ejecutar automáticamente pruebas de ping de eco ICMP.
-
Defina el indicador
icmp_test_from_vm?
entrue
para cada una de las 3 VM (VM-01, VM-02 y VM-03). -
Como se muestra en la parte izquierda de la Figura 1, solo VM-03 hace ping con éxito 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 figura 7 muestra los resultados de varios intentos de ping de ICMP realizados después de establecer una conexión SSH con VM-03. La figura compara el resultado de ping antes y después de implementar los NSG anidados.
Figura 7: Hacer ping en los resultados antes y después de anidar NSG-02 a NSG-01 y asociar vNICs a VM
Nota: Al utilizar Terraform, vuelva a crear las máquinas virtuales después de cambiar de la configuración manual para garantizar el enlace adecuado del NSG-02 a la vNIC VM-04.
Opciones de Despliegue
Opción 1: uso de la interfaz de línea de comandos (CLI) de Terraform (Community Edition)
Antes de ejecutar los comandos de Terrafrom para planificar y desplegar la infraestructura mediante la CLI de Terraform, debe actualizar la configuración de Terraform proporcionada con los detalles de entorno específicos desde la máquina local o de forma remota en OCI Cloud Shell. Descargue el código fuente completo de Terraform desde aquí: oci-blog-fast-tracking-apcertif-main.zip. El único archivo que necesita personalizar para su entorno es el archivo input.auto.tfvars
(el archivo con nombre similar es terraform.tfvars
). Puede especificar, por ejemplo, los OCID de la imagen de computadora utilizada (amper_image_id
) y la del compartimento (compartment_id
) donde se crearán los recursos de prácticas (modifique los valores por defecto solo si es necesario). El paquete proporciona instrucciones completas para configurar el entorno, ejecutar laboratorios y comprender los conceptos de red y seguridad. Incluye guías detalladas, consejos y mejores prácticas para mejorar tu experiencia de aprendizaje avanzado de 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"
Opción 2: Uso de Oracle Resource Manager (muestras de entrada variables)
Cree una pila de Oracle Resource Manager definiendo variables (por ejemplo, amper_image_id
, compartment_id
), aprovisionando recursos de red (create_vcn
, create_msg_1/2
), creando máquinas virtuales (create_vm_1_3
, create_vm_4
, shape_name
), pings de ICMP (icmp_pingvm1_fromlocal
, icmp_test_from_vm1
) y ejecutando el plan para desplegar la infraestructura.
Pasos Siguientes
Los principios de infraestructura como código (IaC), que utilizan Terraform, mejoran significativamente la gestión de la infraestructura mediante un despliegue acelerado y una seguridad mejorada. Por ejemplo, la configuración manual de NSG anidados en OCI Architect Professional Certification (2024) Laboratorio 1: Conviértase en un arquitecto profesional de OCI (2024) suele consumir alrededor de 25 minutos.
Al aprovechar Terraform, reducimos significativamente el tiempo necesario para aprovisionar y configurar recursos complejos de OCI, lo que demuestra un aumento sustancial de la eficiencia. Esto se traduce en un ahorro de tiempo y costos medible para los usuarios de OCI que gestionan configuraciones de seguridad de red complejas. Además, IaC promueve la coherencia y reduce el riesgo de errores humanos, lo que lo convierte en un modelo valioso tanto para el aprendizaje como para las implementaciones del cliente en el mundo real. Para obtener más información sobre la aplicación de IaC con Terraform u otras herramientas similares para tus necesidades de automatización de OCI, considera aplicar los principios aprendidos en los laboratorios restantes de OCI Architect Professional Certification mientras exploras la arquitectura de referencia de OCI y las mejores prácticas.
Agradecimientos
- Autor: Mahamat Hissein Guiagoussou (arquitecto principal principal de nube)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de formación gratuita en el canal YouTube de Oracle Learning. Además, visita education.oracle.com/learning-explorer para convertirte en un Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Accelerate Oracle Cloud Infrastructure Architect Professional Certification with Terraform
G13852-01
August 2024