Hinweis:

Erstellen Sie ein OCI-DevOps-Projekt, richten Sie Berechtigungen und Code-Repository für Microservices ein

Einführung

Dies ist Teil drei einer sechsteiligen Tutorialreihe, die zeigt, wie Sie ein temporäres Set von Ressourcen in einem OKE-Cluster mit Golang-Microservices bereitstellen, das die Verwendung von OCI SDK, OCI-CLI, Resource Manager, OCI DevOps und Helm darstellt, um Apache Airflow bereitzustellen und zu zerstören.

Zielsetzung

In diesem Tutorial erfahren Sie, wie Sie das OCI-DevOps-Projekt, Setupberechtigungen und Code-Repository für Microservices erstellen können.

Voraussetzungen

Aufgabe 1: Dynamische Gruppen und Policys erstellen

  1. Erstellen Sie dynamische Gruppen, die für DevOps-Services erforderlich sind. Weitere Informationen finden Sie unter Dynamische Gruppen.

    • Erstellen Sie die folgenden dynamischen Gruppen mit den folgenden Übereinstimmungsregeln:

      Dynamische Gruppe Übereinstimmungsregel
      DevOpsDynamicGroup Jede {resource.type = 'devopsdeploypipeline', resource.type = 'devopsbuildpipeline', resource.type = 'devopsrepository', resource.type = 'devopsconnection'}
      DeployDynamicGroup Alle {resource.type = 'devopsdeploypipeline'}
      BuildPipelineDynamicGroup ALLE {resource.type = 'devopsbuildpipeline'}
      ConnectionDynamicGroup ALLE {resource.type = 'devopsconnection'}
  2. Erstellen Sie eine Benutzergruppe für Ihre DevOps-Benutzer. Weitere Informationen finden Sie in Benutzergruppen.

    • Erstellen Sie eine Gruppe mit dem Namen oci-devops-users.

    • Fügen Sie den Benutzer hinzu, mit dem Sie Ihre OCI-CLI eingerichtet haben. Dieser Benutzer wird für die Interaktion mit OCI über den Microservice "go-microservice" verwendet. Der Microservice ruft OCI-Ressourcen auf, um Build-Pipelines und kubeconfig-Erstellung auszulösen.

    • In diesem Tutorial verwenden wir "devmaster", der Gruppe "oci-devops-users" hinzugefügt wurde.

      T1_2

  3. Erstellen Sie Policys für DevOps-Services. Weitere Informationen finden Sie unter IAM-Policys.

    • Erstellen Sie eine Policy mit dem Namen: 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
      
    • Erstellen Sie eine Policy mit dem Namen: 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
      
    • Erstellen Sie eine Policy mit dem Namen: ConnectionsPolicy.

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

Aufgabe 2: Vault und Registry einrichten

  1. Erstellen Sie die folgende OCI-Registry für Docker-Images und Helm-Diagramme. Weitere Informationen finden Sie unter OCI-Registry.

    Repo-Name
    go-login (privat)
    go-microservice (privat)
    Luftstrom/Luftstrom (privat)
    helm-go-login/chart-go-login (privat)
    helm-go-microservices/chart-go-microservice (privat)

    T1_2

    • Notieren Sie sich den Namespace der Registry. Dieser wird später benötigt.

      T1_2

  2. Erstellen Sie AUTH TOKEN für Ihren Benutzer, um Helm-Diagramme in der OCI-Registry per Pull/Push abrufen zu können.

    Hinweis: Wir haben bereits die IAM-Policy für die Gruppe oci-devops-users zur Verwaltung des Repositorys im Compartment oci-resource-manager-lab bereitgestellt. Stellen Sie sicher, dass Sie einen Benutzer erhalten, der zur Gruppe oci-devops-user gehört.

    • Gehen Sie zur Benutzerseite in der Oracle Cloud-Konsole.

      T2_2

    • Erstellen Sie ein AUTH-Token, und notieren Sie sich. Das Token wird nur einmal angezeigt. Dieses Token wird zur späteren Verwendung in der Build-Pipeline DevOps sicher im Vault gespeichert.

      T2_2

  3. Erstellen Sie Vault, und speichern Sie das Authentifizierungstoken und andere Secrets. Weitere Informationen finden Sie unter OCI-Vault.

    T2_3

    • Nachdem die Erstellung abgeschlossen ist, klicken Sie im Vault, und erstellen Sie die Masterverschlüsselungsschlüssel.

      T2_3

    • Klicken Sie auf Secrets, und fügen Sie die folgenden Secrets hinzu.

      Secret-Name Wert
      OCIRUser Registrynamespace/Benutzername
      OCIRToken auth_token_you_just_created

    Tipp: Sie müssen den Namespace aus Ihrem OCI-Registry-Repository abrufen.

    T2_3

Aufgabe 3: OCI DevOps-Projekt vorbereiten

  1. Benachrichtigungsthema ist für jedes OCI DevOps-Projekt erforderlich. Daher müssen wir es zuerst erstellen. Um ein Benachrichtigungsthema zu erstellen, klicken Sie hier.

    T3_1

  2. Erstellen Sie ein neues DevOps-Projekt. Um ein DevOps-Projekt zu erstellen, klicken Sie hier.

    T3_2

    Hinweis: Klicken Sie auf Log aktivieren, um Build-Pipelines auszuführen.

    T3_2

  3. Erstellen und richten Sie das Code-Repository für Microservices ein. Es gibt zwei Microservices, die wir für dieses Tutorial verwenden werden.

    Repo-Name Informationen
    go-login Golang-Projekt zur Generierung eines JWT-Tokens
    Go-Microservice Golang-Code zum Aufrufen von Ressourcen auf OCI mit SDK
    • Der Code ist in den nächsten Schritten unten zum Download bereit und verfügbar.

    • Gehen Sie zur Homepage des DevOps-Service, wählen Sie Entwicklerservices und dann Projekte aus.

      T3_3

    • Wählen Sie das zuvor erstellte DevOps-Projekt aus, und klicken Sie auf Code-Repositorys.

      T3_3

    • Klicken Sie auf Repository erstellen, und erstellen Sie das Repository für die Go-Login.

      T3_3

    Hinweis: Wiederholen Sie Schritt 3, und erstellen Sie das Go-Microservice-Repository.

  4. Richten Sie GIT-Zugangsdaten in Ihrer Bastion-Sprungbox ein. Sie müssen die SSH-Konfigurationsdatei auf der virtuellen Bastionmaschine einrichten, um Git-Repositorys klonen zu können. Gehen Sie zu Ihrer Bastion Jump-Box Shell und fahren Sie mit den folgenden Anweisungen fort.

    • Prüfen Sie, ob Ihre Schlüssel vorhanden sind (Sie haben sie beim OCI-CLI-Setup erstellt).

      ls -lrt ~/.oci
      

      T3_4

      Hinweis: Wenn Sie die vorherigen Schritte in dieser Tutorialreihe abgeschlossen haben, befolgen Sie die Anweisungen zum Einrichten von OCI CLI, falls Sie sie nicht haben.

    • Erstellen Sie eine Datei ~/.ssh/config, und fügen Sie den Inhalt ein, indem Sie Ihren Benutzernamen und das Schlüsselverzeichnis festlegen.

      Host devops.scmservice.*.oci.oraclecloud.com
      User your_devops_user@your_tenant_name
      IdentityFile ~/.oci/oci_api_key.pem
      PubkeyAcceptedKeyTypes=+ssh-rsa
      
    • Korrigieren Sie die Berechtigung für ~/.ssh/config.

      chmod 600 ~/.ssh/config
      

      T3_4

  5. Füllen Sie Ihr OCI-Repository mit dem Übungscode go-login auf.

    • Rufen Sie die URL aus dem Repository ab, das Sie erstellt haben, indem Sie auf die Option "clone" klicken.

      T3_4

    • Rufen Sie die Datei go-login-package.zip ab, und dekomprimieren Sie sie in Ihrem geklonten OCI-Repository-Speicherort go-login.
      Sie müssen die Zeichenfolge YOUR_SSH_CLONE_URL durch die URL ersetzen, die Sie von der Klonoption im vorherigen Schritt erhalten haben.

      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

      Dadurch wird der go-login-Code in Ihr eigenes Repository in OCI hochgeladen.

  6. Füllen Sie Ihr OCI-Repository mit dem Übungscode go-microservices auf.

    • Rufen Sie die URL aus dem Repository ab, das Sie erstellt haben, indem Sie auf die Option "clone" klicken.

      T3_6

    • Rufen Sie die Datei go-microservice-package.zip ab, und dekomprimieren Sie sie in Ihrem geklonten OCI-go-microservice-Repository-Speicherort.
      Sie müssen die Zeichenfolge YOUR_SSH_CLONE_URL durch die URL ersetzen, die Sie von der Klonoption im vorherigen Schritt erhalten haben.

      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

      Dadurch wird go-microservice-Code in Ihr eigenes Repository in OCI hochgeladen.

      T3_6

Nächster Schritt

Um mit dem nächsten Tutorial in diesem Lernpfad fortzufahren, klicken Sie hier.

Danksagungen

Weitere Lernressourcen

Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube-Kanal zu. Besuchen Sie außerdem die Website education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie im Oracle Help Center.