Note:
- Este tutorial requiere acceso a Oracle Cloud. Para registrarse en 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 completar el laboratorio, sustituya estos valores por otros específicos de su entorno en la nube.
Uso de la regla del servicio OCI Events para actualizar registros de DNS entre regiones para una zona privada con OCI Functions
Introducción
En este tutorial, aprenderemos a actualizar automáticamente los registros del sistema de nombres de dominio (DNS) para las instancias informáticas de una zona privada en ambas regiones cuando se crea una nueva instancia informática o cuando se mueve durante un escenario de switchover en un plan de Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR). En este tutorial se tratan dos servicios de OCI específicos.
-
Regla de servicio de eventos de OCI: servicio que dispara respuestas automatizadas a cambios y eventos en el entorno de OCI.
-
OCI Functions: servicio informático sin servidor que permite ejecutar código en respuesta a eventos sin gestionar la infraestructura.
Este caso de uso se ha previsto inicialmente para su uso durante un plan de switchover de recuperación ante desastres de pila completa de OCI, donde las instancias se mueven entre regiones. Básicamente, el proceso de switchover de Disaster Recovery (DR) implica la creación de una nueva instancia en la nueva región y, a continuación, la terminación de la instancia en la región anterior. En función de este escenario, este tutorial se centra en el tipo de evento Inicio - Fin de instancia, que dispara una función de OCI para actualizar los registros de DNS para zonas privadas en ambas regiones.
Esta solución también puede servir como automatización de zonas privadas de DNS de OCI por defecto. Crea un registro DNS para cada instancia nueva creada en el compartimento seleccionado o cualquier otro filtro que especifique para identificar las instancias de destino. Para obtener más información, consulte Servicios que generan eventos.
Arquitectura de alto nivel
Nota:
Este tutorial está diseñado exclusivamente para fines educativos y de estudio. Proporciona un entorno para que los estudiantes experimenten y adquieran experiencia práctica en un entorno controlado. Es crucial tener en cuenta que las configuraciones y prácticas de seguridad empleadas en este tutorial pueden no ser adecuadas para escenarios del mundo real.
Las consideraciones de seguridad para las aplicaciones reales suelen ser mucho más complejas y dinámicas. Por lo tanto, antes de implementar cualquiera de las técnicas o configuraciones aquí demostradas en un entorno de producción, es esencial realizar una evaluación y revisión exhaustivas de la seguridad. Esta revisión debe abarcar todos los aspectos de la seguridad, incluido el control de acceso, el cifrado, la supervisión y el cumplimiento, para garantizar que el sistema se alinee con las políticas y estándares de seguridad de la organización.
La seguridad siempre debe ser una prioridad al realizar la transición de un entorno de prácticas a un despliegue real.
Objetivos
-
Configure una regla del servicio OCI Event para disparar las funciones de OCI proporcionadas. Esta función actualizará un registro de zona privada DNS en dos regiones cada vez que se cree una nueva instancia en el compartimento seleccionado.
Nota: En este tutorial no se abordará la configuración de la recuperación ante desastres de pila completa de OCI. En su lugar, se centrará en la automatización de la zona privada de DNS en dos o más regiones. Para obtener más información, consulte Uso del servicio OCI Full Stack Disaster Recovery Service con dominios de Oracle WebLogic Server.
Requisitos
-
OCI Environment
-
Cuenta de OCI con permisos de administrador.
-
Un compartimento para crear los recursos.
Nota: Tenga en cuenta el nombre del compartimento y el ID del compartimento.
-
Lista de Oracle Cloud Identifier (OCID) de zona privada DNS de OCI en la que las instancias recién iniciadas tendrán un registro DNS en cada región que necesite. En este tutorial, tenemos dos zonas privadas de DNS: una para la región de GRU y otra para la región de VCP.
-
-
Entorno de máquina local
-
Configurar la interfaz de línea de comandos (CLI de OCI) local de Oracle Cloud Infrastructure. Para obtener más información, consulte Instalación de la CLI de OCI.
-
Docker local para poder crear imágenes. Si utiliza Oracle Linux, consulte Docker: Instalación de Docker en Oracle Linux 8 (OL8).
-
CLI local de Fn Project para poder desplegar su función en OCI. Para obtener más información, consulte Installing the Fn Project CLI.
-
Tarea 1: Configurar grupos dinámicos
Vaya al dominio, haga clic en Grupos dinámicos y cree los siguientes grupos.
Nombre de grupo dinámico: MyFunctions
.
ALL {resource.type = 'fnfunc', resource.compartment.id = 'pasteYourCompartmentOCID'}
Tarea 2: Crear políticas
Vaya a Políticas y cree las siguientes políticas.
Nombre de la Política: FunctionsPolicies
.
Allow dynamic-group MyFunctions to read repos in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use instance-family in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to read app-catalog-listing in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use volume-family in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use virtual-network-family in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to manage dns-records in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use dns-zones in compartment YOUR-COMPARTMENT-NAME
Tarea 3: Creación de OCI Container Registry
-
Vaya a Servicios para desarrolladores, haga clic en Registro de contenedores y cree un repositorio privado para la imagen de Fn.
Nombre de repositorio:
lab/fnpy-event-dns-update
. -
Compruebe los repositorios y observe el espacio de nombres.
-
Abra el shell de terminal donde tiene instalada la CLI de OCI y Docker, y conéctese al registro. Compruebe la URL correcta para su región. En este tutorial, estamos utilizando la región Este de Brasil (Sao Paulo), donde la URL de registro es
gru.ocir.io
.docker login gru.ocir.io Username: <your container namespace>/youruser Password: YOUR_AUTH_TOKEN_CREATED_EARLIER
Tarea 4: Creación de las funciones de OCI de Python para actualizar el DNS en zonas privadas
-
Vaya a la consola de OCI y haga clic en Servicios para desarrolladores. En Funciones, haga clic en Solicitudes y Crear aplicación.
-
Cree la configuración para las zonas privadas de DNS de OCI afectadas.
Nota: Esta variable de configuración especifica los OCID de zonas privadas que se van a actualizar. Puede mostrar varios OCID, separados por comas.
Nombre de secreto Valor TARGET_ZONES_OCID Definir la lista de OCID de zonas privadas como separadas por comas En este tutorial, estableceremos dos zonas privadas: una para la región de GRU y otra para la región de VCP.
Ejemplo:
ocid1.dns-zone.oc1.sa-saopaulo-1.xxxx
ocid1.dns-zone.oc1.sa-vinhedo-1.xxx
-
Vaya al shell de terminal donde tiene instalado Docker, la CLI de OCI, la CLI de Fn Project y ejecute los siguientes comandos para inicializar la función.
Nota: Si ha seguido las tareas, el comando de inicio de sesión de Docker ya se ha ejecutado en este momento, si no es así, continúe con el inicio de sesión de Docker en la tarea 3.3.
mkdir lab cd lab fn create context oci-cloud --provider oracle fn use context oci-cloud fn update context oracle.compartment-id PASTE_YOUR_COMPARTMENT_OCID fn update context api-url https://functions.sa-saopaulo-1.oraclecloud.com fn update context registry gru.ocir.io/PASTE_YOUR_REGISTRY_NAMESPACE/lab fn init --runtime python fnpy-event-dns-update cd fnpy-event-dns-update ls -lrt
Nota: En este tutorial, estamos utilizando la región Este de Brasil (São Paulo). Si está utilizando una región diferente, debe cambiar las ubicaciones
api-url
yregistry
.El comando
init
creará una función hello world enfunc.py
. Sobrescribiremos este código. -
Obtenga el código de ejemplo de la función Python desde aquí: fnpy-event-dns-update.zip, descomprímalo y sobrescriba los archivos durante el comando
init
.-
Copie el archivo zip en el directorio de prácticas en el que ha ejecutado el comando
fn init
y compruebe los archivos del directorio.ls -lrt
-
Descomprima el archivo y sobrescriba los archivos existentes.
unzip fnpy-event-dns-update.zip
-
-
Cree el nuevo código y despliegue la función.
ls -lrt fn deploy --app MyApp
Tarea 5: Creación de la regla del servicio OCI Events
-
Vaya a la consola de OCI y haga clic en Observación y gestión. En Servicio de eventos, seleccione Reglas y haga clic en Crear regla.
-
Introduzca la siguiente información.
- Nombre: introduzca
MyAutoDNSRule
. - Condiciones de Regla:
- Condición 1:
- Condition: seleccione
Event Type
. - Nombre de servicio: seleccione
Compute
. - Tipo de evento: seleccione
Instance - Launch End
.
- Condition: seleccione
- Condición 2:
- Condition: seleccione
Attribute
. - Nombre de atributo: seleccione
compartmentId
. - Valores de atributo: introduzca el OCID del compartimento.
- Condition: seleccione
- Condición 1:
- Acciones:
- Tipo de acción: seleccione
Functions
. - compartimento de función: seleccione el compartimento.
- Aplicación de función: seleccione
MyApp
. - Función: seleccione
fnpy-event-dns-update
.
- Tipo de acción: seleccione
Nota: En este ejemplo, estamos filtrando las instancias por compartmentID, lo que significa que cualquier instancia recién iniciada en ese compartimento disparará la función seleccionada. Puede especificar diferentes filtros y condiciones en función de sus necesidades.
- Nombre: introduzca
Tarea 6: Validar la solución
En este tutorial, hemos establecido zonas privadas de DNS en las regiones GRU y VCP y documentado los OCID para cada zona privada de DNS. Estos OCID se utilizarán para configurar las funciones de OCI.
-
Asegúrese de que OCI Functions está disponible y active el registro para él.
-
Vaya a la consola de OCI y haga clic en Servicios para desarrolladores. En Funciones, haga clic en Aplicaciones y seleccione la aplicación creada
MyApp
. -
Haga clic en Logs y seleccione Activar log.
-
-
Compruebe las zonas privadas de DNS actuales. Hemos configurado un dominio denominado
UBUNTUAPPS.COM
en ambas regiones, como se muestra en las siguientes imágenes. -
Cree una nueva instancia informática para simular un switchover de recuperación ante desastres de pila completa de OCI. Esto disparará el evento
Instance Launch - END
, que a continuación llamará a OCI Functions para actualizar la zona privada de DNS en ambas regiones. -
Una vez creada la instancia, verifique que la zona privada de DNS se haya actualizado correctamente en ambas regiones.
-
Revise los logs de OCI Functions para verificar los detalles de la función ejecutada.
Enlaces relacionados
Agradecimientos
- Autor: Joao Tarla (ingeniero de soluciones de equipo A de Oracle LAD)
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Use OCI Events Service Rule to Update Cross Region DNS Records for a Private Zone with OCI Functions
G11037-01
July 2024