Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Utiliser la règle du service d'événements pour OCI pour mettre à jour les enregistrements DNS inter-région pour une zone privée avec le service des fonctions pour OCI
Présentation
Dans ce tutoriel, nous verrons comment mettre à jour automatiquement les enregistrements de système de noms de domaine (DNS) pour les instances de calcul d'une zone privée dans les deux régions, lorsqu'une nouvelle instance de calcul est créée, 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 du service d'événements OCI : 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 de récupération après sinistre de pile complète OCI, où les instances sont déplacées entre les régions. Essentiellement, le processus de permutation de récupération après sinistre consiste à créer une nouvelle instance dans la nouvelle région, puis à mettre fin à l'instance dans la région précédente. Basé sur ce scénario, ce tutoriel se concentre sur le type d'événement Lancer - Fin d'instance, qui déclenche un service des fonctions pour OCI pour mettre à jour les enregistrements DNS pour les zones privées des 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 spécifiez pour identifier les instances cibles. Pour plus d'informations, voir Services qui génèrent des événements.
Architecture de haut niveau
Note :
Ce tutoriel est conçu uniquement à des fins éducatives et d'étude. Il fournit un environnement pour les apprenants d'expérimenter et d'acquérir une expérience pratique dans un cadre contrôlé. Il est crucial de noter que les configurations et les pratiques de sécurité utilisées dans ce tutoriel pourraient ne pas convenir aux scénarios réels.
Les considérations de sécurité pour les applications réelles 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 devrait englober tous les aspects de la sécurité, y compris le contrôle d'accès, le chiffrement, la surveillance et la conformité, afin de s'assurer que le système est conforme aux politiques et aux 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 vers un déploiement réel.
Objectifs
-
Configurez une règle du service d'événements OCI pour déclencher un service des fonctions pour OCI fourni. Cette fonction mettra à jour un enregistrement de zone privée DNS dans deux régions chaque fois qu'une nouvelle instance est créée dans le compartiment sélectionné.
Note : Ce tutoriel ne couvrira pas la configuration de la récupération après sinistre de pile complète OCI. Il se concentrera plutôt sur l'automatisation de la zone privée de DNS dans deux régions ou plus. Pour plus d'informations, voir Utiliser le service de récupération après sinistre de pile complète OCI avec les domaines Oracle WebLogic Server.
Préalables
-
Environnement OCI
-
Compte OCI avec autorisations d'administration.
-
Un compartiment pour créer vos ressources.
Note : Notez le nom et l'ID compartiment.
-
Liste des identificateurs Oracle Cloud (OCID) de zone privée OCI DNS dans lesquels les instances nouvellement lancées auront un enregistrement DNS dans chaque région dont vous aurez besoin. Dans ce tutoriel, nous avons deux zones privées DNS : une pour la région GRU et une pour la région VCP.
-
-
Environnement d'ordinateur local
-
Configurez l'interface de ligne de commande d'Oracle Cloud Infrastructure locale. Pour plus d'informations, voir Installation de l'interface de ligne de commande OCI.
-
Docker local pour créer des images. Si vous utilisez Oracle Linux, voir Docker : Installer Docker sur Oracle Linux 8 (OL8).
-
Interface de ligne de commande Fn Project locale pour pouvoir déployer votre fonction sur OCI. Pour plus d'informations, voir Installation de l'interface de ligne de commande Fn Project.
-
Tâche 1 : Configurer des groupes dynamiques
Allez à votre domaine, cliquez sur Groupes dynamiques et créez les groupes suivants.
Nom du groupe dynamique : MyFunctions
.
ALL {resource.type = 'fnfunc', resource.compartment.id = 'pasteYourCompartmentOCID'}
Tâche 2 : Créer des politiques
Allez à Politiques et créez les politiques suivantes.
Nom de la politique : 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 un registre de conteneurs pour OCI
-
Allez à Services de développement, cliquez sur Registre de conteneurs 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 l'interpréteur de commandes de terminal où 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 Brésil - Est (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éer le service des fonctions pour OCI Python pour mettre à jour le DNS dans les zones privées
-
Allez à la console OCI et cliquez sur Services de développement. Sous Fonctions, cliquez sur Applications et sur Créer une application.
-
Créez la configuration des zones privées OCI DNS touchées.
Note : Cette variable de configuration spécifie les OCID des zones privées à mettre à jour. Vous pouvez lister plusieurs OCID, séparés par des virgules.
Nom de clé secrète Valeur TARGET_ZONES_OCID Définir la liste des OCID des ZONES privées comme étant séparés par des virgules Dans ce tutoriel, nous allons définir deux zones privées : une pour la région GRU et une pour la région VCP.
Exemple :
ocid1.dns-zone.oc1.sa-saopaulo-1.xxxx
ocid1.dns-zone.oc1.sa-vinhedo-1.xxx
-
Allez à l'interpréteur de commandes de terminal où Docker, l'interface de ligne de commande OCI et l'interface de ligne de commande Fn Project sont installés et exécutez les commandes suivantes pour initialiser la fonction.
Note : Si vous avez suivi les tâches, votre commande de connexion Docker a déjà été exécutée maintenant, sinon, continuez avec le journal Docker à la tâche 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
Note : Dans ce tutoriel, nous utilisons la région Brésil - Est (Sao Paulo). Si vous utilisez une autre région, vous devez modifier les emplacements
api-url
etregistry
.La commande
init
créera une fonction hello world surfunc.py
. Nous remplacerons ce code. -
Obtenez l'exemple de code de fonction Python à partir d'ici : fnpy-event-dns-update.zip, décompressez-le et remplacez les fichiers lors de la commande
init
.-
Copiez le fichier zip dans le répertoire de laboratoire où vous avez exécuté la commande
fn init
et recherchez les fichiers dans le répertoire.ls -lrt
-
Décompressez le fichier et remplacez 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éer la règle du service d'événements OCI
-
Allez à la console OCI et cliquez sur Observabilité et gestion. Sous Service d'événements, sélectionnez Règles et cliquez sur Créer une règle.
-
Entrez les informations suivantes .
- Nom : Entrez
MyAutoDNSRule
. - Conditions de règle :
- Condition 1 :
- Condition : Sélectionnez
Event Type
. - Nom du service : Sélectionnez
Compute
. - Type d'événement : Sélectionnez
Instance - Launch End
.
- Condition : Sélectionnez
- Condition 2 :
- Condition : Sélectionnez
Attribute
. - Nom de l'attribut : Sélectionnez
compartmentId
. - Valeurs d'attribut : Entrez l'OCID de votre compartiment.
- Condition : Sélectionnez
- Condition 1 :
- Actions :
- Type d'action : Sélectionnez
Functions
. - Compartiment de la fonction : Sélectionnez votre compartiment.
- Application de fonction : Sélectionnez
MyApp
. - Fonction : Sélectionnez
fnpy-event-dns-update
.
- Type d'action : Sélectionnez
Note : 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 à la fois dans les régions GRU et VCP et documenté les OCID de chaque zone privée DNS. Ces OCID seront utilisés pour configurer le service des fonctions pour OCI.
-
Assurez-vous que le service des fonctions pour OCI est disponible et activez la journalisation pour celui-ci.
-
Allez à la console OCI et cliquez sur Services de développement. Sous Fonctions, cliquez sur Applications et sélectionnez l'application créée
MyApp
. -
Cliquez sur Journaux et sélectionnez Activer le journal.
-
-
Vérifiez les zones privées DNS courantes. Nous avons configuré un domaine nommé
UBUNTUAPPS.COM
dans les deux régions, comme indiqué dans les images suivantes. -
Créez une nouvelle instance de calcul pour simuler une permutation de récupération après sinistre de pile complète pour OCI. Cela déclenchera l'événement
Instance Launch - END
, qui appellera ensuite le service des fonctions pour 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 du service des fonctions pour OCI pour vérifier les détails de la fonction exécutée.
Liens connexes
Confirmation
- Auteur - Joao Tarla (ingénieur de la solution d'équipe A Oracle LAD)
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.
Use OCI Events Service Rule to Update Cross Region DNS Records for a Private Zone with OCI Functions
G11038-01
July 2024