Nota:

Crear un proyecto DevOps de OCI, configurar permisos y repositorio de código para microservicios

Introducción

Esta es la parte tres de una serie de tutoriales de seis partes que muestra cómo desplegar un juego temporal de recursos en un cluster de OKE mediante microservicios de Golang que representan el uso del SDK de OCI, OCI-CLI, Resource Manager, OCI DevOps y Helm para desplegar y destruir Apache Airflow.

Objetivo

En este tutorial aprenderá a crear el proyecto DevOps de OCI, configurar permisos y repositorio de código para microservicios.

Requisitos

Tarea 1: Creación de políticas y grupos dinámicos

  1. Cree grupos dinámicos necesarios para los servicios DevOps. Para obtener más información, consulte grupos dinámicos.

    • Cree los siguientes grupos dinámicos mediante estas reglas de coincidencia:

      Grupo Dinámico Regla de coincidencia
      DevOpsDynamicGroup Cualquier {resource.type = 'devopsdeploypipeline', resource.type = 'devopsbuildpipeline', resource.type = 'devopsrepository', resource.type = 'devopsconnection'}
      DeployDynamicGroup Todos los {resource.type = 'devopsdeploypipeline'}
      BuildPipelineDynamicGroup TODOS {resource.type = 'devopsbuildpipeline'}
      ConnectionDynamicGroup TODOS {resource.type = 'devopsconnection'}
  2. Cree un grupo para los usuarios DevOps. Para obtener más información, consulte grupos de usuarios.

    • Cree un grupo denominado: oci-devops-users.

    • Agregue el usuario que utilizó para configurar la CLI de OCI. Este usuario se utilizará para interactuar con OCI desde el microservicio "go-microservice". El microservicio llamará a recursos de OCI para disparar pipelines de compilación y la creación de kubeconfig.

    • En este tutorial, utilizamos "devmaster" agregado al grupo "oci-devops-users".

      T1_2

  3. Cree políticas para los servicios DevOps. Para obtener más información, consulte Políticas de IAM.

    • Cree una política denominada: 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
      
    • Cree una política denominada: 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
      
    • Cree una política denominada: ConnectionsPolicy.

      Allow dynamic-group ConnectionDynamicGroup to read secret-family in oci-resource-manager-lab
      

Tarea 2: Configuración del almacén y el registro

  1. Cree el siguiente registro de OCI para imágenes de Docker y gráficos de Helm. Para obtener más información, consulte Registro de OCI.

    Nombre de repositorio
    go-login (privado)
    microservicio go (privado)
    circulación de aire-helm/circulación de aire (privada)
    helm-go-login/chart-go-login (privado)
    helm-go-microservices/chart-go-microservice (privado)

    T1_2

    • Anote el espacio de nombres de su registro; será necesario más adelante.

      T1_2

  2. Cree AUTH TOKEN en su usuario para poder extraer/empujar gráficos de Helm en el registro de OCI.

    Nota: Ya hemos proporcionado la política de IAM para que el grupo oci-devops-users gestione el repositorio en el compartimento oci-resource-manager-lab. Asegúrese de obtener un usuario que pertenezca al grupo oci-devops-user.

    • Vaya a la página de usuario en la consola de Oracle Cloud.

      T2_2

    • Cree un token AUTH y tome nota. El token se muestra solo una vez. Almacenaremos este token de forma segura en el almacén para uso futuro en el pipeline de compilación DevOps.

      T2_2

  3. Cree un almacén y almacene el token de autenticación y otros secretos. Para obtener más información, consulte OCI Vault.

    T2_3

    • Una vez finalizada la creación, haga clic en el almacén y cree las claves de cifrado maestras.

      T2_3

    • Haga clic en los secretos y agregue los siguientes secretos.

      Nombre secreto Valor
      OCIRUser registrar espacio de nombres/nombre de usuario
      OCIRToken auth_token_you_just_created

    Consejo: Debe obtener el espacio de nombres del repositorio de registro de OCI.

    T2_3

Tarea 3: Preparación del proyecto DevOps de OCI

  1. Se necesita un tema de notificación para cualquier proyecto DevOps de OCI, por lo que debemos crearlo primero. Para crear un tema de notificación, haga clic aquí.

    T3_1

  2. Cree un nuevo proyecto DevOps. Para crear un proyecto DevOps, haga clic aquí.

    T3_2

    Nota: Recuerde hacer clic en Activar log para ejecutar pipelines de compilación.

    T3_2

  3. Cree y configure el repositorio de código para microservicios. Hay dos microservicios que usaremos para este tutorial.

    Nombre de repositorio Información
    inicio de sesión Proyecto Golang para generar un token JWT
    microservicio go Código Golang para llamar a recursos en OCI mediante SDK
    • El código está listo y disponible para descargar en los siguientes pasos.

    • Vaya a la página inicial del servicio DevOps, seleccione Servicios para desarrolladores y, a continuación, seleccione Proyectos.

      T3_3

    • Seleccione el proyecto DevOps que ha creado anteriormente y haga clic en Repositorios de código.

      T3_3

    • Haga clic en Crear repositorio y cree el repositorio para ir a la conexión.

      T3_3

    Nota: Repita el paso 3 y cree el repositorio go-microservice.

  4. Configure las credenciales de GIT en el buzón de inicio bastión. Debe configurar el archivo de configuración de SSH en la máquina virtual bastión para poder clonar los repositorios de git. Vaya al shell del bastión jump-box y siga las instrucciones que se muestran a continuación.

    • Compruebe si las claves están allí (las ha creado durante la configuración de la CLI de OCI).

      ls -lrt ~/.oci
      

      T3_4

      Nota: Debe tenerlo si ha completado los pasos anteriores de esta serie de tutoriales, en caso de que no lo tenga, siga las instrucciones para configurar la CLI de OCI.

    • Cree un archivo ~/.ssh/config e incluya el contenido mediante la configuración del nombre de usuario y la ubicación de la clave.

      Host devops.scmservice.*.oci.oraclecloud.com
      User your_devops_user@your_tenant_name
      IdentityFile ~/.oci/oci_api_key.pem
      PubkeyAcceptedKeyTypes=+ssh-rsa
      
    • Corrija el permiso para ~/.ssh/config.

      chmod 600 ~/.ssh/config
      

      T3_4

  5. Rellene el repositorio de OCI con el código go-login de laboratorio.

    • Obtenga la URL del repositorio que ha creado haciendo clic en la opción "clonar".

      T3_4

    • Obtenga el archivo go-login-package.zip y descomprímalo en la ubicación del repositorio clonado go-login de OCI.
      Debe sustituir la cadena YOUR_SSH_CLONE_URL por la URL que obtuvo de la opción de clonación en el paso anterior.

      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

      De esta forma, se cargará el código go-login en su propio repositorio en OCI.

  6. Rellene el repositorio de OCI con el código go-microservices de laboratorio.

    • Obtenga la URL del repositorio que ha creado haciendo clic en la opción "clonar".

      T3_6

    • Obtenga el archivo go-microservice-package.zip y descomprímalo en la ubicación del repositorio clonado go-microservice de OCI.
      Debe sustituir la cadena YOUR_SSH_CLONE_URL por la URL que obtuvo de la opción de clonación en el paso anterior.

      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

      De esta forma, se cargará el código de microservicio en su propio repositorio en OCI.

      T3_6

Siguiente Paso

Para continuar con el siguiente tutorial en esta ruta de aprendizaje, haga clic aquí.

Agradecimientos

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 un explorador de Oracle Learning.

Para obtener documentación sobre los productos, visite Oracle Help Center.