Remarque :

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

Tâche 1 : Créer des groupes dynamiques et des stratégies

  1. 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'}
  2. 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".

      T1_2

  3. 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

  1. 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é)

    T1_2

    • Notez l'espace de noms de votre registre, qui sera nécessaire ultérieurement.

      T1_2

  2. 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.

      T2_2

    • 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.

      T2_2

  3. 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.

    T2_3

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

      T2_3

    • 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.

    T2_3

Tâche 3 : préparation du projet OCI DevOps

  1. 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.

    T3_1

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

    T3_2

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

    T3_2

  3. 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.

      T3_3

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

      T3_3

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

      T3_3

    Remarque : répétez l'étape 3 et créez le référentiel Go-microservice.

  4. 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
      

      T3_4

      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
      

      T3_4

  5. 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".

      T3_4

    • 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îne YOUR_SSH_CLONE_URL par 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 
      

      T3_4
      T3_5

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

  6. 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".

      T3_6

    • 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îne YOUR_SSH_CLONE_URL par 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 
      

      T3_6
      T3_6
      T3_6

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

      T3_6

Etape suivante

Pour passer au tutoriel suivant de ce parcours de formation, cliquez ici.

Remerciements

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.