Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeur pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. A la fin de l'exercice, remplacez ces valeurs par des valeurs propres à votre environnement cloud.
Utilisation de la règle de service OCI Events pour mettre à jour des enregistrements DNS inter-région pour une zone privée avec OCI Functions
Introduction
Dans ce tutoriel, nous allons apprendre à mettre à jour automatiquement les enregistrements DNS (Domain Name System) pour les instances de calcul d'une zone privée dans les deux régions lors de la création d'une nouvelle instance de calcul, ou lorsqu'elle est déplacée lors d'un scénario de permutation dans un plan Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR). Ce tutoriel couvre deux services OCI spécifiques.
-
Règle de service OCI Events : service qui déclenche des réponses automatisées aux modifications et aux événements dans votre environnement OCI.
-
Fonctions OCI : service informatique sans serveur qui vous permet d'exécuter du code en réponse à des événements sans gérer l'infrastructure.
Ce cas d'utilisation a été initialement envisagé pour une utilisation lors d'un plan de permutation OCI Full Stack DR, où les instances sont déplacées entre les régions. Pour l'essentiel, le processus de permutation de récupération après sinistre consiste à créer une instance dans la nouvelle région, puis à mettre fin à l'instance dans la région précédente. En fonction de ce scénario, ce tutoriel se concentre sur le type d'événement Lancement - Fin d'instance, qui déclenche une fonction OCI pour mettre à jour les enregistrements DNS des zones privées dans les deux régions.
Cette solution peut également servir d'automatisation de zone privée OCI DNS par défaut. Il crée un enregistrement DNS pour chaque nouvelle instance créée dans le compartiment sélectionné ou tout autre filtre que vous indiquez pour identifier les instances cible. Pour plus d'informations, reportez-vous à Services produisant des événements.
Architecture globale
Remarque :
Ce tutoriel est conçu uniquement à des fins éducatives et d'étude. Il offre aux apprenants un environnement leur permettant d'expérimenter et d'acquérir une expérience pratique dans un environnement contrôlé. Il est important de noter que les configurations et les pratiques de sécurité utilisées dans ce tutoriel peuvent ne pas convenir à des scénarios réels.
Les considérations de sécurité pour les applications du monde réel sont souvent beaucoup plus complexes et dynamiques. Par conséquent, avant de mettre en œuvre l'une des techniques ou configurations présentées ici dans un environnement de production, il est essentiel de procéder à une évaluation et à un examen complets de la sécurité. Cet examen doit porter sur tous les aspects de la sécurité, y compris le contrôle d'accès, le cryptage, la surveillance et la conformité, afin de garantir que le système s'aligne sur les politiques et les normes de sécurité de l'organisation.
La sécurité doit toujours être une priorité absolue lors de la transition d'un environnement de laboratoire à un déploiement réel.
Objectifs
-
Configurez une règle OCI Event Service pour déclencher des fonctions OCI fournies. Cette fonction met à jour un enregistrement de zone privée DNS dans deux régions chaque fois qu'une instance est créée dans le compartiment sélectionné.
Remarque : ce tutoriel ne couvre pas la configuration de la récupération après sinistre de la pile complète OCI. Il se concentrera plutôt sur l'automatisation de la zone privée DNS dans deux régions ou plus. Pour plus d'informations, reportez-vous à Utilisation du service de récupération après sinistre OCI Full Stack avec les domaines Oracle WebLogic Server.
Prérequis
-
OCI Environment
-
Compte OCI avec droits d'accès administrateur.
-
Un compartiment pour créer vos ressources.
Remarque : notez le nom et l'ID du compartiment.
-
List of OCI DNS private zone Oracle Cloud Identifier (OCIDs) where newly launched instances will have a DNS record in each region you may need. Dans ce tutoriel, nous avons deux zones privées DNS : une pour la région GRU et une pour la région VCP.
-
-
Environnement de l'ordinateur local
-
Configurez l'interface de ligne de commande Oracle Cloud Infrastructure locale. Pour plus d'informations, reportez-vous à Installation de l'interface de ligne de commande OCI.
-
Docker local pour pouvoir créer des images. Si vous utilisez Oracle Linux, reportez-vous à Docker : installation de Docker sur Oracle Linux 8 (OL8).
-
Interface de ligne de commande du projet Fn local pour pouvoir déployer votre fonction vers OCI. Pour plus d'informations, reportez-vous à la section Installing the Fn Project CLI.
-
Tâche 1 : configurer des groupes dynamiques
Accédez à votre domaine, cliquez sur Groupes dynamiques et créez les groupes suivants.
Nom de groupe dynamique : MyFunctions
.
ALL {resource.type = 'fnfunc', resource.compartment.id = 'pasteYourCompartmentOCID'}
Tâche 2 : créer des stratégies
Accédez à Stratégies et créez les stratégies suivantes.
Nom de la stratégie : 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
Tâche 3 : créer OCI Container Registry
-
Accédez à Services de développeur, cliquez sur Registre de conteneur et créez un référentiel privé pour l'image Fn.
Nom du référentiel :
lab/fnpy-event-dns-update
. -
Vérifiez les référentiels et notez l'espace de noms.
-
Ouvrez le shell de terminal sur lequel vous avez installé l'interface de ligne de commande OCI et Docker, puis connectez-vous au registre. Vérifiez l'URL correcte pour votre région. Dans ce tutoriel, nous utilisons la région Est du Brésil (Sao Paulo) où l'URL du registre est
gru.ocir.io
.docker login gru.ocir.io Username: <your container namespace>/youruser Password: YOUR_AUTH_TOKEN_CREATED_EARLIER
Tâche 4 : création des fonctions OCI Python pour mettre à jour le DNS sur les zones privées
-
Accédez à la console OCI et cliquez sur Services de développeur. Sous Fonctions, cliquez sur Applications et sur Créer une application.
-
Créez la configuration pour les zones privées DNS OCI concernées.
Remarque : cette variable de configuration indique les OCID de zones privées à mettre à jour. Vous pouvez répertorier plusieurs OCID, séparés par des virgules.
Nom secret Value TARGET_ZONES_OCID Définir la liste des OCID de ZONES privées comme séparés par une virgule Dans ce tutoriel, nous allons définir deux zones privées : une pour la région GRU et une pour la région VCP.
Echant.:
ocid1.dns-zone.oc1.sa-saopaulo-1.xxxx
ocid1.dns-zone.oc1.sa-vinhedo-1.xxx
-
Accédez au shell de terminal sur lequel Docker, l'interface de ligne de commande OCI et l'interface de ligne de commande du projet Fn sont installés et exécutez les commandes suivantes pour initialiser la fonction.
Remarque : si vous avez suivi les tâches, la commande de connexion Docker a déjà été exécutée à ce stade. Sinon, passez à la tâche 3.3 de connexion Docker.
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
Remarque : dans ce tutoriel, nous utilisons la région Est du Brésil (Sao Paulo). Si vous utilisez une autre région, vous devez modifier les emplacements
api-url
etregistry
.La commande
init
crée une fonction hello world surfunc.py
. Nous allons écraser ce code. -
Obtenez l'exemple de code de la fonction Python ici : fnpy-event-dns-update.zip, décompressez-le et écrasez les fichiers lors de la commande
init
.-
Copiez le fichier zip dans le répertoire de l'exercice où vous avez exécuté la commande
fn init
et recherchez les fichiers dans le répertoire.ls -lrt
-
Décompressez le fichier et écrasez les fichiers existants.
unzip fnpy-event-dns-update.zip
-
-
Créez le nouveau code et déployez la fonction.
ls -lrt fn deploy --app MyApp
Tâche 5 : création de la règle de service OCI Events
-
Accédez à la console OCI et cliquez sur Observation et gestion. Sous Service d'événements, sélectionnez Règles et cliquez sur Créer une règle.
-
Saisissez les informations suivantes .
- Nom : entrez
MyAutoDNSRule
. - Conditions de règle:
- Condition 1:
- Condition : sélectionnez
Event Type
. - Nom de service : sélectionnez
Compute
. - Type d'événement : sélectionnez
Instance - Launch End
.
- Condition : sélectionnez
- Condition 2:
- Condition : sélectionnez
Attribute
. - Nom d'attribut : sélectionnez
compartmentId
. - Valeurs d'attribut : entrez l'OCID de compartiment.
- Condition : sélectionnez
- Condition 1:
- Actions:
- Type d'action : sélectionnez
Functions
. - Compartiment de fonction : sélectionnez votre compartiment.
- Application de fonction : sélectionnez
MyApp
. - Fonction : sélectionnez
fnpy-event-dns-update
.
- Type d'action : sélectionnez
Remarque : dans cet exemple, nous filtrons les instances par compartmentID, ce qui signifie que toute instance nouvellement lancée dans ce compartiment déclenchera la fonction sélectionnée. Vous pouvez spécifier différents filtres et conditions en fonction de vos besoins.
- Nom : entrez
Tâche 6 : valider la solution
Dans ce tutoriel, nous avons établi des zones privées DNS dans les régions GRU et VCP et documenté les OCID de chaque zone privée DNS. Ces OCID seront utilisés pour la configuration des fonctions OCI.
-
Assurez-vous qu'OCI Functions est disponible et activez la journalisation pour celui-ci.
-
Accédez à la console OCI et cliquez sur Services de développeur. Sous Fonctions, cliquez sur Applications et sélectionnez l'application
MyApp
que vous avez créée. -
Cliquez sur Journaux et sélectionnez Activer le journal.
-
-
Vérifiez les zones privées DNS actuelles. Nous avons configuré un domaine appelé
UBUNTUAPPS.COM
dans les deux régions, comme indiqué sur les images suivantes. -
Créez une instance de calcul pour simuler une permutation de récupération après sinistre OCI Full Stack. Cela déclenche l'événement
Instance Launch - END
, qui appelle ensuite les fonctions OCI pour mettre à jour la zone privée DNS dans les deux régions. -
Une fois l'instance créée, vérifiez que la zone privée DNS a été correctement mise à jour dans les deux régions.
-
Consultez les journaux OCI Functions pour vérifier les détails de la fonction exécutée.
Liens connexes
Remerciements
- Auteur - Joao Tarla (Ingénieur solutions Oracle LAD A-Team)
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, rendez-vous sur education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Use OCI Events Service Rule to Update Cross Region DNS Records for a Private Zone with OCI Functions
G11039-01
July 2024