Remarque :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction à Oracle Cloud Infrastructure Free Tier.
- Il utilise des exemples de valeur pour les informations d'identification Oracle Cloud Infrastructure, la location et les compartiments. A la fin de votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Créer un projet OCI DevOps, configurer des droits d'accès et un référentiel de code pour les microservices
Introduction
Cela fait partie de trois séries de tutoriels en six parties qui vous montrent comment déployer un ensemble temporaire de ressources sur un cluster OKE à l'aide de microservices Golang représentant l'utilisation du kit SDK OCI, de l'interface de ligne de commande OCI, du gestionnaire de ressources, d'OCI DevOps et de Helm pour déployer et détruire Apache Airflow.
Objectif
Dans ce tutoriel, vous apprendrez à créer un projet OCI DevOps, à configurer des droits d'accès et un référentiel de code pour les microservices.
Prérequis
- Réalisation du tutoriel précédent dans ce parcours de formation, Partie 2/6 - Préparation et configuration de la pile OCI Resource Manager pour la création de noeuds supplémentaires sur OKE
Tâche 1 : Créer des groupes dynamiques et des stratégies
-
Créez les groupes dynamiques requis pour les services DevOps. Pour plus d'informations, reportez-vous à Groupes dynamiques.
-
Créez les groupes dynamiques suivants à l'aide des règles de correspondance suivantes :
Groupe dynamique Règle de correspondance DevOpsDynamicGroup Tout élément {resource.type = 'devopsdeploypipeline', resource.type = 'devopsbuildpipeline', resource.type = 'devopsrepository', resource.type = 'devopsconnection'} DeployDynamicGroup Tous les éléments {resource.type = 'devopsdeploypipeline'} BuildPipelineDynamicGroup ALL {resource.type = 'devopsbuildpipeline'} ConnectionDynamicGroup ALL {resource.type = 'devopsconnection'}
-
-
Créez un groupe d'utilisateurs pour vos utilisateurs DevOps. Pour plus d'informations, reportez-vous à Groupes d'utilisateurs.
-
Créez un groupe nommé oci-devops-users.
-
Ajoutez l'utilisateur que vous avez utilisé pour configurer l'interface de ligne de commande OCI. Cet utilisateur sera utilisé pour interagir avec OCI à partir du microservice "go-microservice". Le microservice appelle les ressources OCI pour déclencher la création de pipelines de build et de kubeconfig.
-
Dans ce tutoriel, nous utilisons "devmaster" ajouté au groupe "oci-devops-users".

-
-
Créez des stratégies pour les services DevOps. Pour plus d'informations, reportez-vous à Stratégies IAM.
-
Créez une stratégie nommée : OCILabDeployPolicy.
Allow dynamic-group DeployDynamicGroup to manage all-resources in oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to use devops-family in oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to manage repos in oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to manage all-artifacts in oci-resource-manager-lab -
Créez une stratégie nommée : OCILabBuildPolicy.
Allow dynamic-group BuildPipelineDynamicGroup to manage repos in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to read secret-family in tenancy Allow dynamic-group BuildPipelineDynamicGroup to manage devops-family in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to manage all-artifacts in tenancy Allow dynamic-group BuildPipelineDynamicGroup to use ons-topics in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to read cluster-node-pools in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to use clusters in compartment oci-resource-manager-lab Allow dynamic-group BuildPipelineDynamicGroup to manage virtual-network-family in tenancy Allow group oci-devops-users to manage devops-family in compartment oci-resource-manager-lab Allow group oci-devops-users to manage repos in compartment oci-resource-manager-lab -
Créez une stratégie nommée : ConnectionsPolicy.
Allow dynamic-group ConnectionDynamicGroup to read secret-family in oci-resource-manager-lab
-
Tâche 2 : configurer le coffre et le registre
-
Créez le registre OCI suivant pour les images Docker et les graphiques Helm. Pour plus d'informations, reportez-vous au registre OCI.
Nom du référentiel go-login (privé) go-microservice (privé) airflow-helm/airflow (privé) helm-go-login/chart-go-login (privé) helm-go-microservices/chart-go-microservice (privé) 
-
Notez l'espace de noms de votre registre, qui sera nécessaire ultérieurement.

-
-
Créez l'utilisateur AUTH TOKEN pour pouvoir extraire/envoyer des graphiques Helm sur OCI Registry.
Remarque : nous avons déjà fourni la stratégie IAM pour que le groupe oci-devops-users gère le référentiel dans le compartiment oci-resource-manager-lab. Assurez-vous d'obtenir un utilisateur appartenant au groupe oci-devops-user.
-
Accédez à votre page utilisateur sur la console Oracle Cloud.

-
Créez un jeton AUTH et prenez note. Le jeton n'est affiché qu'une seule fois. Nous stockons ce jeton dans le coffre en toute sécurité pour une utilisation ultérieure sur le pipeline de build DevOps.

-
-
Créez un coffre et stockez le jeton d'authentification et d'autres clés secrètes. Pour plus d'informations, reportez-vous à OCI Vault.

-
Une fois la création terminée, cliquez sur le coffre et créez les clés de cryptage maître.

-
Cliquez sur les clés secrètes et ajoutez-les.
Nom secret Valeur OCIRUser nom d'utilisateur/espace de noms de registre OCIRToken auth_token_you_just_created
Conseil : vous devez obtenir l'espace de noms à partir du référentiel de registre OCI.

-
Tâche 3 : préparation du projet OCI DevOps
-
Un sujet de notification est nécessaire pour tout projet OCI DevOps. Nous devons donc d'abord le créer. Pour créer un sujet de notification, cliquez ici.

-
Créez un projet DevOps. Pour créer un projet DevOps, cliquez ici.

Remarque : n'oubliez pas de cliquer sur Activer le journal pour exécuter des pipelines de build.

-
Créez et configurez le référentiel de code pour les microservices. Deux microservices seront utilisés dans ce tutoriel.
Nom du référentiel Infos connexion aller Projet Golang pour générer un jeton JWT microservice go Code Golang permettant d'appeler des ressources sur OCI à l'aide du SDK -
Le code est prêt et disponible pour téléchargement dans les étapes suivantes.
-
Accédez à la page d'accueil du service DevOps, sélectionnez Services de développeur, puis Projets.

-
Sélectionnez le projet DevOps que vous avez créé précédemment et cliquez sur Référentiels de code.

-
Cliquez sur Créer un référentiel et créez le référentiel pour la connexion directe.

Remarque : répétez l'étape 3 et créez le référentiel Go-microservice.
-
-
Configurez les informations d'identification GIT dans la zone de saut du bastion. Vous devez configurer le fichier de configuration SSH sur votre machine virtuelle de bastion pour pouvoir cloner des référentiels Git. Accédez à votre shell Jump-box bastion et suivez les instructions ci-dessous.
-
Vérifiez si vos clés sont présentes (vous les avez créées lors de la configuration de l'interface de ligne de commande OCI).
ls -lrt ~/.oci
Remarque : si vous avez terminé les étapes précédentes de cette série de tutoriels, si vous ne l'avez pas, suivez les instructions pour configurer votre interface de ligne de commande OCI.
-
Créez un fichier ~/.ssh/config et incluez son contenu en définissant votre nom d'utilisateur et votre emplacement de clé.
Host devops.scmservice.*.oci.oraclecloud.com User your_devops_user@your_tenant_name IdentityFile ~/.oci/oci_api_key.pem PubkeyAcceptedKeyTypes=+ssh-rsa -
Corrigez le droit d'accès pour ~/.ssh/config.
chmod 600 ~/.ssh/config
-
-
Remplissez votre référentiel OCI avec le code go-login de l'atelier.
-
Obtenez l'URL à partir du référentiel que vous avez créé en cliquant sur l'option "clone".

-
Obtenez le fichier go-login-package.zip et décompressez-le dans votre emplacement de référentiel cloné go-login OCI.
Vous devez remplacer la chaîneYOUR_SSH_CLONE_URLpar l'URL obtenue à partir de l'option de clonage à l'étape précédente.cd $HOME git clone <YOUR_SSH_CLONE_URL> cd go-login wget https://docs.us.oracle.com/en/learn/resource-manager-airflow-oke-part3/files/go-login-package.zip unzip go-login-package.zip rm go-login-package.zip git add . git commit -m "initial load" git push

Le code go-login sera téléchargé vers votre propre référentiel dans OCI.
-
-
Remplissez votre référentiel OCI avec le code go-microservices de l'atelier.
-
Obtenez l'URL à partir du référentiel que vous avez créé en cliquant sur l'option "clone".

-
Obtenez le fichier go-microservice-package.zip et décompressez-le dans votre emplacement de référentiel cloné go-microservice OCI.
Vous devez remplacer la chaîneYOUR_SSH_CLONE_URLpar l'URL obtenue à partir de l'option de clonage à l'étape précédente.cd $HOME git clone <YOUR_SSH_CLONE_URL> cd go-microservice wget https://docs.us.oracle.com/en/learn/resource-manager-airflow-oke-part3/files/go-microservice-package.zip unzip go-microservice-package.zip rm go-microservice-package.zip git add . git commit -m "initial load" git push

Le code go-microservice sera téléchargé vers votre propre référentiel dans OCI.

-
Etape suivante
Pour passer au tutoriel suivant de ce parcours de formation, cliquez ici.
Liens connexes
Remerciements
- Auteur - Joao Tarla (ingénieur solutions Oracle LAD A-Team)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à davantage de contenu de formation gratuit sur le canal Oracle Learning YouTube. En outre, accédez à education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour consulter la documentation produit, consultez Oracle Help Center.
Create an OCI Devops project, set up permissions and code repository for microservices
F79750-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.