Hinweis:

Oracle Cloud Infrastructure Resource Manager in den Automatisierungsprozess integrieren

Einführung

Der Oracle Cloud Infrastructure (OCI) Resource Manager-Service automatisiert das Deployment und die Vorgänge aller OCI-Ressourcen. Der Service verwendet das Modell "Infrastruktur als Code" (IaC) und basiert auf Terraform, einem Open-Source-Industriestandard, der es DevOps-Entwicklern ermöglicht, ihre Infrastruktur überall zu entwickeln und bereitzustellen.

Eine Terraform-Konfiguration kodiert Ihre Infrastruktur in deklarative Konfigurationsdateien. Mit dem OCI Resource Manager-Service können Sie Infrastrukturkonfiguration und Statusdateien über mehrere Teams und Plattformen hinweg gemeinsam verwenden und verwalten.

Über OCI Resource Manager können Sie Terraform-Skripte in der OCI-Konsole ausführen. Es ist auch möglich, einen REST-Aufruf durchzuführen oder die Oracle Cloud Infrastructure-Befehlszeilenschnittstelle (OCI-CLI) zu verwenden. Dadurch werden die Integrationsmöglichkeiten mit Automatisierungstools wie OCI Devops, Jenkins, GitHub usw. erweitert.

Architektur

In diesem Tutorial automatisieren wir das Deployment einer Oracle Autonomous Database-Instanz, indem wir das Datenbank-Admin-Kennwort sicher über OCI Vault Secrets abrufen, ohne es in den Dateien anzugeben, sodass der OCI Resource Manager-Ausführungsbenutzer den richtigen Zugriff zum Erstellen der Datenbank und des gespeicherten Kennworts hat.

Ziele

Voraussetzungen

Aufgabe 1: Secret für Oracle Autonomous Database in OCI Vault erstellen

Wir erstellen ein Kennwort in OCI Vault, um zu veranschaulichen, wie eine neue Ressource in Terraform konfiguriert wird, ohne sensible Daten anzugeben.

Secrets sind Zugangsdaten wie Kennwörter, Zertifikate, SSH-Schlüssel oder Authentifizierungstoken, die Sie mit OCI-Services verwenden. Das Speichern von Secrets in einem OCI-Vault ist sicherer als die Speicherung an anderer Stelle, wie z.B. in Code oder Konfigurationsdateien. Sie können Geheimnisse aus dem OCI Vault-Service abrufen, wenn Sie sie für den Zugriff auf Ressourcen oder andere Services benötigen.

Sie können Geheimnisse mit der OCI-Konsole, OCI-CLI oder API erstellen. Geheiminhalte für ein Secret werden aus einer externen Quelle in den Service importiert. Der OCI Vault-Service speichert Secrets in Vault.

Hinweis: Für diese Aufgabe müssen wir uns als Admin-Benutzer in der OCI-Konsole anmelden. Sie müssen über die Berechtigung zum Erstellen eines Kennworts in OCI Vault verfügen.

  1. Melden Sie sich bei der OCI-Konsole an, und klicken Sie auf Identität und Sicherheit und Vault.

    img_10.png

  2. Wählen Sie das Compartment aus, in dem Sie die Secrets speichern möchten, und klicken Sie auf Vault erstellen.

    img_29.png

  3. Geben Sie einen Namen für den Vault ein, bestätigen Sie das Compartment, und klicken Sie auf Vault erstellen.

    img_11.png

  4. Bestätigen Sie, dass der Vault erstellt wurde, und erstellen Sie einen Schlüssel. Klicken Sie auf Masterschlüssel und Schlüssel erstellen.

    img_12.png

  5. Bestätigen Sie das Compartment, und geben Sie einen Namen für den Schlüssel ein. Beispiel: Geben Sie autonomouskey als Name ein, und klicken Sie auf Schlüssel erstellen.

    img_13.png

    Vergewissern Sie sich, dass der Schlüssel erstellt wurde.

    img_14.png

  6. Klicken Sie auf Secrets und dann auf Secret erstellen.

    img_15.png

  7. Wir erstellen das Autonomous Admin-Kennwort. Geben Sie die folgenden Informationen ein, und klicken Sie auf Secret erstellen.

    • Compartment: Compartment auswählen.
    • Name: Geben Sie den Namen für das erste Secret ein.
    • Wählen Sie Manuelle Secret-Generierung aus, um das Kennwort aufzunehmen.
    • Secret-Typvorlage: Geben Sie Plain-Text ein.
    • Secret-Inhalt: Geben Sie Ihr Kennwort ein.

    img_16.png

  8. Sie benötigen die Secret-OCID. Um die OCID zu kopieren, klicken Sie auf Kopieren.

    img_17.png

Aufgabe 2: Policys für den OCI-Benutzer erstellen

Berücksichtigen Sie in diesem Tutorial Ihren Benutzernamen TestUser in einer Gruppe mit dem Namen TestGroup. Erstellen Sie jetzt eine Policy mit dem Namen TestPolicy.

Diese Aufgabe ist wichtig, da dadurch alle erforderlichen Berechtigungen kontrolliert werden, um die Sicherheit der Terraform-Automatisierung zu gewährleisten.

Hinweis: Für diese Aufgabe müssen wir uns mit einem Admin-Benutzer in OCI anmelden.

  1. Gehen Sie zur OCI-Konsole, und klicken Sie auf ID und Sicherheit und Policys.

    img_18.png

  2. Klicken Sie auf Policy erstellen.

    img_19.png

  3. Geben Sie im Abschnitt Anweisungen die folgenden Policys ein.

    • Diese Policys erteilen die Berechtigung zum Gruppieren von TestGroup, das zuvor erstellt wurde, um einen Stack und Jobs in OCI Resource Manager zu verwalten.

      - Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration
      - Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration
      - Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy
      
    • Mit dieser Policy können Sie eine Oracle Autonomous Database-Instanz in der Compartment-Integration erstellen.

      - Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
      
    • Die Gruppe kann das in OCI Vault gespeicherte Kennwort über Terraform-Skripte lesen.

      - Allow group 'Default'/'TestGroup' to use secret-family in tenancy
      
    • Mit dieser Policy können Sie die Terraform-Skripte in einem bestimmten Compartment speichern.

      - Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
      
    • Mit dieser Policy können Benutzer von TestGroup Code im OCI-Codeeditor bearbeiten.

      - Allow group 'Default'/'TestGroup' to use cloud-shell in tenancy
      

    cloud_shell.png

Aufgabe 3: Stack aus einer Vorlage erstellen

Erstellen Sie einen Stack für eine Oracle Autonomous Database-Instanz. Dafür können wir eine Vorlage verwenden. Der erste Schritt ist die Anmeldung als Benutzer, der in Aufgabe 2 erstellt wurde.

  1. Gehen Sie zur OCI-Konsole, und klicken Sie auf das Hamburger-Menü.

    img_1.png

  2. Klicken Sie auf Services für Entwickler und Stacks.

    img_2.png

  3. Wählen Sie das Compartment aus, und klicken Sie auf Stack erstellen.

    CleanShot 2024-04-15 beim 07.47.32.png

  4. Wählen Sie auf der Seite Stackinformationen die Option Vorlage aus, und klicken Sie auf Vorlage auswählen, um ein Terraform-Skript für Oracle Autonomous Database zu generieren.

    CleanShot 2024-04-15 um 07.48.19.png

  5. Wählen Sie auf der Registerkarte Service die Option Autonomous Transaction Processing Database aus, und klicken Sie auf Select template.

    CleanShot 2024-04-15 beim 07.49.57.png

  6. Sie können die Terraform-Skripte generieren und im OCI Object Storage-Bucket speichern. Wählen Sie Benutzerdefinierte Terraform-Provider verwenden aus, geben Sie das Bucket Compartment und den Namen ein, und speichern Sie den Stack.

    CleanShot 2024-04-15 um 07.51.23.png

    Ihr Stack wird gespeichert.

    CleanShot 2024-04-15 um 07.54.01.png

  7. Diese Vorlage liest das in Ihrem OCI Vault gespeicherte Secret nicht. Damit Terraform das Secret lesen kann, müssen Sie den Code ändern.

    Klicken Sie auf Bearbeiten, und wählen Sie Terraform-Konfiguration im Codeeditor bearbeiten aus.

    img_3.png

  8. Sie können den Code ändern. Der Standardcode generiert eine zufällige Zeichenfolge für das Kennwort.

    • Datei main.tf.

      CleanShot 2024-04-15 um 08.05.40.png

      CleanShot 2024-04-15 um 08.08.32.png

      Sie müssen neue Daten mit dem Namen oci_secrets_secretbundle hinzufügen und diese den folgenden Attributen zuweisen:

      • admin_password in den Abschnitten autonomous_data_warehouse und autonomous_database.
      • password im Abschnitt autonomous_database_wallet.
    • main.tf: Abschnitt autonomous_data_warehouse.

      data "oci_secrets_secretbundle" "bundle" {
          secret_id = var.secret_ocid
      }
      
      admin_password = base64decode(data.oci_secrets_secretbundle.bundle.secret_bundle_content.0.content)
      

      CleanShot 2024-04-15 um 08.28.07.png

    • main.tf: Abschnitt autonomous_database.

      img_4.png

    • main.tf: Abschnitt autonomous_database_wallet.

      img_5.png

      CleanShot 2024-04-15 um 08.30.15 substituir.png

    Fügen Sie den folgenden Code in der Datei variables.tf hinzu, und ersetzen Sie die OCID für das in Aufgabe 1 generierte Secret.

    variable "secret_ocid" {
        default = "ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    }
    
    • Datei variables.tf.

      CleanShot 2024-04-15 um 08.30.52.png

    Hinweis: Speichern Sie Ihre Dateien. Bewegen Sie den Mauszeiger über Ihren Stack (rechts im Editor im Titel Autonomous Transaction Processing....), klicken Sie mit der rechten Maustaste, und speichern Sie Ihr Projekt. Wenn Sie fortfahren, ohne zu speichern, geht die Ausführung davon aus, dass Sie die zufällige Zeichenfolge im ursprünglichen Codeskript verwenden.

Aufgabe 4: Berechtigungen testen

Sie können die Policys testen und sehen, wie Sie die Kontrolle über die OCI Resource Manager-, OCI Vault- und Oracle Autonomous Database-Instanzen in einem bestimmten Compartment haben.

  1. Melden Sie sich mit Ihren Zugangsdaten für den Admin-Benutzer bei der OCI-Konsole an, und entfernen Sie alle Policys für die Gruppe TestGroup in der Policy TestPolicy. Klicken Sie auf Löschen, und bestätigen Sie den Vorgang.

    img_7.png

  2. Melden Sie sich jetzt mit Ihrem Benutzer in der Gruppe TestGroup an, und Sie können den Stack nicht sehen. Daher können Sie ihn nicht ausführen.

    CleanShot 2024-04-15 beim 20.02.33.png

  3. Fügen Sie die folgenden Anweisungen mit dem Admin-Benutzer hinzu.

    Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration
    Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration
    Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy
    Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
    

    img_8.png

    Die folgenden Anweisungen erteilen Ihrem Benutzer in TestGroup Berechtigungen zur Verwendung des OCI Resource Manager-Stacks.

    CleanShot 2024-04-15 beim 20.12.55.png

  4. Wir haben die Berechtigung für Ihren Benutzer entfernt, eine Oracle Autonomous Database-Instanz zu erstellen und das Secret in OCI Vault zu lesen. So können Sie Ihren Stack ausführen, aber ohne Erfolg. Klicken Sie zum Testen auf der Seite mit den Stackdetails auf Anwenden.

    CleanShot 2024-04-15 beim 20.16.39.png

    CleanShot 2024-04-15 beim 20.18.40.png

  5. Fügen Sie Oracle Autonomous Database- und OCI Vault-Berechtigungen für TestPolicy hinzu.

    Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
    Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
    

    img_9.png

  6. Klicken Sie auf der Seite mit den Stackdetails auf Anwenden, und Sie können sehen, dass Sie die Kontrolle über alle Ressourcen haben, ohne ein Kennwort anzugeben.

    CleanShot 2024-04-15 beim 21.34.57.png

Aufgabe 5: OCI Resource Manager-Automatisierung mit REST aufrufen

Alle Ressourcen in OCI verfügen über eine OCI-REST-API oder einen OCI-CLI-Befehl zum Aufrufen von Services, wie sie in Ihrer OCI-Konsole ausgeführt werden.

Weitere Informationen zur OCI-REST-API finden Sie unter OCI-REST-API. Die Liste der OCI-CLI-Befehle wird hier angezeigt: Oracle Cloud Infrastructure-CLI-Befehlsreferenz.

Jetzt können wir den OCI Resource Manager-Stack mit einer OCI-REST-API oder einem OCI-CLI-Befehl ausführen. Informationen zum Erstellen eines Jobs finden Sie unter CreateJob. Sie können auch den folgenden Beispielcode curl-OCI.zip mit curl-OCI.sh verwenden, der mit OCI-Parametern vorbereitet wurde.

img_20.png

Sie müssen die Signatur für Ihre REST-Anforderungen erstellen. Weitere Informationen finden Sie unter Oracle Cloud Infrastructure (OCI) REST-Aufrufdurchlauf mit curl.

  1. Erstellen Sie eine Datei mit dem Namen STACK-RUN.sh. Dies ist Ihre REST-Anforderung mit einer curl-OCI.sh (dieses Tool bereitet Ihre Autorisierungszeichenfolge mit Ihren OCI-Informationen vor).

    img_1.png

  2. Erstellen Sie eine Datei namens request.json mit Ihrer Stack-ID und Compartment-ID.

    img.png

  3. Öffnen Sie die Datei curl-oci.sh, und ändern Sie die folgenden Parameter. Diese Parameter entsprechen den Parametern der OCI-CLI-Installation.

    img_2.png

    Führen Sie nun das Skript aus.

    img_3.png

    Die Erfolgsergebnisse werden angezeigt.

    img_4.png

Bestätigungen

Weitere Lernressourcen

Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie im Oracle Help Center.