Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Anmelden für einen kostenlosen Account finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch die Werte, die für Ihre Cloud-Umgebung spezifisch sind.
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
- Abschluss des vorherigen Tutorials in diesem Lernpfad, Teil 2/6 - OCI Resource Manager-Stack für das Erstellen zusätzlicher Knoten in OKE vorbereiten und konfigurieren
Aufgabe 1: Dynamische Gruppen und Policys erstellen
-
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'}
-
-
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.
-
-
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
-
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) -
Notieren Sie sich den Namespace der Registry. Dieser wird später benötigt.
-
-
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.
-
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.
-
-
Erstellen Sie Vault, und speichern Sie das Authentifizierungstoken und andere Secrets. Weitere Informationen finden Sie unter OCI-Vault.
-
Nachdem die Erstellung abgeschlossen ist, klicken Sie im Vault, und erstellen Sie die Masterverschlüsselungsschlüssel.
-
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.
-
Aufgabe 3: OCI DevOps-Projekt vorbereiten
-
Benachrichtigungsthema ist für jedes OCI DevOps-Projekt erforderlich. Daher müssen wir es zuerst erstellen. Um ein Benachrichtigungsthema zu erstellen, klicken Sie hier.
-
Erstellen Sie ein neues DevOps-Projekt. Um ein DevOps-Projekt zu erstellen, klicken Sie hier.
Hinweis: Klicken Sie auf Log aktivieren, um Build-Pipelines auszuführen.
-
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.
-
Wählen Sie das zuvor erstellte DevOps-Projekt aus, und klicken Sie auf Code-Repositorys.
-
Klicken Sie auf Repository erstellen, und erstellen Sie das Repository für die Go-Login.
Hinweis: Wiederholen Sie Schritt 3, und erstellen Sie das Go-Microservice-Repository.
-
-
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
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
-
-
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.
-
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 ZeichenfolgeYOUR_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
Dadurch wird der go-login-Code in Ihr eigenes Repository in OCI hochgeladen.
-
-
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.
-
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 ZeichenfolgeYOUR_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
Dadurch wird go-microservice-Code in Ihr eigenes Repository in OCI hochgeladen.
-
Nächster Schritt
Um mit dem nächsten Tutorial in diesem Lernpfad fortzufahren, klicken Sie hier.
Verwandte Links
Danksagungen
- Autor - Joao Tarla (Oracle LAD A-Team Solution Engineer)
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.
Create an OCI Devops project, set up permissions and code repository for microservices
F79750-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.