Hinweis:

Benutzerdefinierte Ausführungsumgebungen mit Oracle Linux Automation Manager verwenden

Einführung

Mit einer benutzerdefinierten Ausführungsumgebung (ee) kann Oracle Linux Automation Manager Playbooks nutzen, die Sammlungen und andere Ressourcen enthalten, die mit dem Standardimage olam-ee nicht verfügbar sind. Sie erstellen es mit dem Builder-Utility, speichern es in Private Automation Hub und rufen es dann in Oracle Linux Automation Manager ab.

Wie funktioniert das alles zusammen?

In diesem Tutorial wird gezeigt, wie Sie ein vordefiniertes Image in Private Automation Hub hochladen und dann in Oracle Linux Automation Manager abrufen, um Playbooks auszuführen. Einzelheiten zum Erstellen benutzerdefinierter Ausführungsumgebungen finden Sie in unserem Tutorial zum Builder-Utility und in diesem Tutorial auf Private Automation Hub.

Ziele

In diesem Tutorial erfahren Sie, wie Sie:

Voraussetzungen

Oracle Linux Automation Manager bereitstellen

Hinweis: Wenn Sie in Ihrem eigenen Mandanten ausgeführt werden, lesen Sie das Projekt linux-virt-labs GitHub README.md, und schließen Sie die Voraussetzungen ab, bevor Sie die Übungsumgebung bereitstellen.

  1. Öffnen Sie ein Terminal auf dem Luna Desktop.

  2. Klonen Sie das Projekt linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Wechseln Sie in das Arbeitsverzeichnis.

    cd linux-virt-labs/olam
    
  4. Installieren Sie die erforderlichen Sammlungen.

    ansible-galaxy collection install -r requirements.yml
    
  5. Aktualisieren Sie die Oracle Linux-Instanzkonfiguration.

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "devops-node"
        type: "server"
      2:
        instance_name: "ol-pah"
        type: "server"
      3:
        instance_name: "olam-node"
        type: "control"
    passwordless_ssh: true
    use_olam_builder: true
    use_olam_pah: true
    EOF
    
  6. Stellen Sie die Übungsumgebung bereit.

    ansible-playbook create_instance.yml -e ansible_python_interpreter="/usr/bin/python3.6" -e "@instances.yml"
    

    Für die kostenlose Übungsumgebung ist die zusätzliche Variable ansible_python_interpreter erforderlich, weil das RPM-Package für das Oracle Cloud Infrastructure-SDK für Python installiert wird. Der Speicherort für die Installation dieses Pakets befindet sich unter den python3.6-Modulen.

    Die Standard-Deployment-Ausprägung verwendet die AMD-CPU und Oracle Linux 8. Um eine Intel-CPU oder Oracle Linux 9 zu verwenden, fügen Sie dem Deployment-Befehl -e instance_shape="VM.Standard3.Flex" oder -e os_version="9" hinzu.

    Wichtig: Warten Sie, bis die Arbeitsmappe erfolgreich ausgeführt wurde, und erreichen Sie die Aufgabe "Unterbrechen". Die Installation von Oracle Linux Automation Manager ist in dieser Phase des Spiels abgeschlossen, und die Instanzen sind bereit. Beachten Sie die vorherige Wiedergabe, in der die öffentlichen und privaten IP-Adressen der bereitgestellten Knoten gedruckt werden.

Benutzerdefinierte Ausführungsumgebung in Private Automation Hub übertragen

Eine Methode zum Übertragen eines benutzerdefinierten ee an Private Automation Hub ist die Verwendung von podman über die Befehlszeile, wie im Tutorial Private Automation Hub gezeigt. Sie können diese Aufgabe auch mit einer Arbeitsmappe und der containers.podman-Collection ausführen.

  1. Öffnen Sie ein Terminal, und stellen Sie über SSH eine Verbindung zur devops-node-Instanz her.

    ssh oracle@<ip_address_of_instance>
    
  2. Installieren Sie Oracle Linux Automation Engine.

    sudo dnf install ansible-core -y
    
  3. Installieren Sie die erforderlichen Sammlungen.

    ansible-galaxy collection install containers.podman
    
  4. Erstellen Sie das Playbook zum Taggen und Übertragen des benutzerdefinierten ee-Images.

       
    tee push-image.yml > /dev/null <<EOF
    ---
    - hosts: localhost
      collections:
        - containers.podman
    
      tasks:
    
      - name: get domain_name
        command: hostname -d
        register: domain_name
    
      - name: output domain_name var
        debug:
          msg: "{{domain_name.stdout}}"
    
      - name: push image to pah
        containers.podman.podman_image:
          name: my_custom_ee
          push: true
          push_args:
            dest: ol-pah.{{domain_name.stdout}}/my_first_olam_ee_image:latest
          username: admin
          password: password
          validate_certs: false
       
    EOF
    
  5. Führen Sie das Spielbuch aus.

    ansible-playbook push-image.yml
    

    Das Playbook wird auf localhost ausgeführt und benötigt daher keine definierte Bestandsdatei.

Prüfen, ob das Image in Private Automation Hub vorhanden ist

  1. Öffnen Sie ein neues Terminal über den Luna Desktop.

  2. Konfigurieren Sie einen SSH-Tunnel zu Private Automation Hub.

    ssh -L 5444:localhost:443 oracle@<ip_address_of_ol-pah>
    
  3. Öffnen Sie einen Webbrowser, und geben Sie die URL ein.

    https://localhost:5444
    

    Hinweis: Genehmigen Sie die Sicherheitswarnung basierend auf dem verwendeten Browser. Klicken Sie bei Chrome auf die Schaltfläche Advanced und dann auf den Link Proceed to localhost (unsafe).

  4. Melden Sie sich bei Private Automation Hub WebUI an.

    Verwenden Sie den Benutzernamen admin und das Kennwort password. Die freie Übungsumgebung legt diesen Kennwortwert während des Übungs-Deployments fest.

    pah-login

  5. Die WebUI wird nach einer erfolgreichen Anmeldung angezeigt.

    Pah-webui

  6. Klicken Sie in der oberen linken Ecke von Private Automation Hub auf das Navigationsmenü WebUI.

  7. Navigieren Sie zu Ausführungsumgebungen und Ausführungsumgebungen.

  8. Beachten Sie, dass die neue my_first_olam_ee_image im Hauptbereich angezeigt wird.

    Mah-ee-2

Playbook erstellen

Oracle Linux Automation Manager-Administratoren können Playbooks lokal im Dateisystem erstellen, das ein Projekt mit manueller Quellkontrolle nutzen kann. Wir verwenden den devops-node, um ein Playbook zu schreiben, das unser Projekt-Playbook mit Oracle Linux Automation Engine an Oracle Linux Automation Manager überträgt. Diese Konfiguration funktioniert nur bei einer Einzelhostinstallation von Oracle Linux Automation Manager, da die Playbooks nur auf dieser Instanz vorhanden sind.

  1. Wechseln Sie zu einem Terminal, oder öffnen Sie es, und stellen Sie über SSH eine Verbindung zur devops-node-Instanz her.

  2. Erstellen Sie ein Projektverzeichnis, und ändern Sie es in das Arbeitsverzeichnis.

    mkdir ~/project1
    cd ~/project1
    
  3. Vorlage erstellen.

    Diese Vorlage ist die Playbook-Datei, die wir in das Dateisystem auf dem Oracle Linux Automation Manager-Server schreiben, um die Liste der Containerimages auf einem Host abzurufen.

    mkdir templates
    tee templates/list-images.yml.j2 > /dev/null <<EOF
    ---
    - hosts: all
      collections:
        - containers.podman
      become: yes
    
      tasks:
    
      - name: gather info on images
        containers.podman.podman_image_info:
        register: podman_list
        become_user: oracle
    
      - name: list images
        debug:
          msg: "{{ podman_list.images | selectattr('RepoTags') '}}"
    EOF
    
  4. Erstellen Sie ein Playbook, um dieses Projekt an Oracle Linux Automation Manager zu übertragen.

       
    tee push-project.yml > /dev/null <<EOF
    ---
    - hosts: olam-node
      become: yes
    
      tasks:
    
      - name: create project directory
        ansible.builtin.file:
          path: /var/lib/awx/projects/podman
          state: directory
        become_user: awx
    
      - name: create playbook
        ansible.builtin.template:
          src: templates/list-images.yml.j2
          dest: /var/lib/awx/projects/podman/list-images.yml
        become_user: awx      
       
    EOF
    
  5. Erstellen Sie eine Bestandsdatei.

    tee hosts > /dev/null <<EOF
    [olam]
    olam-node
    EOF
    
  6. Kopieren Sie das Playbook auf den Oracle Linux Automation Manager-Server.

    ansible-playbook -i hosts push-project.yml
    

Benutzerdefinierte Ausführungsumgebung zu Oracle Linux Automation Manager hinzufügen

Melden Sie sich bei der WebUI an.

  1. Öffnen Sie ein neues Terminal über den Luna Desktop.

  2. Konfigurieren Sie einen SSH-Tunnel zu Oracle Linux Automation Manager.

    ssh -L 8444:localhost:443 oracle@<ip_address_of_ol-node>
    

    Verwenden Sie in der Freien Übungsumgebung die IP-Adresse der olam-node-Instanz.

  3. Öffnen Sie einen Webbrowser, und geben Sie die URL ein.

    https://localhost:8444
    

    Hinweis: Genehmigen Sie die Sicherheitswarnung basierend auf dem verwendeten Browser. Klicken Sie bei Chrome auf die Schaltfläche Erweitert und dann auf den Link Weiter zu localhost (unsicher).

  4. Melden Sie sich bei Oracle Linux Automation Manager WebUI an.

    Verwenden Sie den Benutzernamen admin und das Kennwort admin. Die freie Übungsumgebung legt diesen Kennwortwert während des Übungs-Deployments fest.

    olam2-Anmeldung

  5. Die WebUI wird nach einer erfolgreichen Anmeldung angezeigt.

    olam2-webui

Zugangsdaten für Container Registry hinzufügen

  1. Klicken Sie im Navigationsmenü unter Ressourcen auf Zugangsdaten.

  2. Klicken Sie im Hauptbereich auf die Schaltfläche Add.

  3. Geben Sie die folgenden Werte in die entsprechenden Felder ein, oder wählen Sie sie aus.

    Bei Feldern mit einer Suche oder Werteliste können Sie den angeforderten Wert eingeben und dann auswählen.

    • Name: My Private Automation Hub
    • Organisation: Default
    • Zugangsdatentyp: Container Registry
    • Authentifizierungs-URL: FQDN für Private Automation Hub
    • Benutzername: admin
    • Kennwort oder Token: password
    • Optionen: Deaktivieren Sie SSL verifizieren.

    Wenn Sie den FQDN für den Private Automation Hub nicht kennen, stellen Sie mit einem Terminal eine Verbindung zur ol-pah-Instanz her, und führen Sie hostname -f aus.

    Oracle Linux Automation Manager verwendet die Zugangsdaten der Container Registry, um auf Containerimages in Private Automation Hub zuzugreifen. In der freien Übungsumgebung muss die Einstellung SSL verifizieren wegen der Verwendung selbstsignierter Zertifikate deaktiviert werden.

  4. Prüfen Sie die Einträge, und klicken Sie auf die Schaltfläche Speichern.

    olam2-cred-registry

Ausführungsumgebung hinzufügen

  1. Klicken Sie im Navigationsmenü unter Administration auf Ausführungsumgebungen.

  2. Klicken Sie im Hauptbereich auf die Schaltfläche Add.

  3. Geben Sie die folgenden Werte in die entsprechenden Felder ein, oder wählen Sie sie aus.

    Bei Feldern mit einer Suche oder Werteliste können Sie den angeforderten Wert eingeben und dann auswählen.

    • Name: My Custom EE
    • Image: <fqdn_of_the_private_automation_hub>/my_first_olam_ee_image:latest
    • Registrierungszugangsdaten: My Private Automation Hub
  4. Prüfen Sie die Einträge, und klicken Sie auf die Schaltfläche Speichern.

    olam2-Kundenempfänger

Ausführungsumgebung testen

Beim Testen der benutzerdefinierten Ausführungsumgebung ist eine Jobvorlage erforderlich, die einen Bestand, Hosts, Maschinenzugangsdaten und ein Projekt enthält.

Bestand hinzufügen

  1. Klicken Sie im Navigationsmenü unter Ressourcen auf Bestände.

  2. Klicken Sie im Hauptbereich auf die Schaltfläche Hinzufügen, und wählen Sie Bestand hinzufügen aus der Werteliste.

  3. Geben Sie den folgenden Wert in das entsprechende Feld ein.

    • Name: Oracle Linux Hosts
  4. Prüfen Sie den Eintrag, und klicken Sie auf die Schaltfläche Speichern.

    olam2-inv-Details

Fügen Sie einen Host hinzu

  1. Klicken Sie im Bereich Oracle Linux-Hosts im Bereich Bestandsdetails auf die Registerkarte Hosts.

  2. Klicken Sie auf die Schaltfläche Hinzufügen.

  3. Geben Sie den Hostnamen devops-node in das Feld Name ein.

  4. Prüfen Sie den Eintrag, und klicken Sie auf die Schaltfläche Speichern.

Rechnerzugangsdaten hinzufügen

  1. Klicken Sie im Navigationsmenü unter Ressourcen auf Zugangsdaten.

  2. Klicken Sie im Hauptbereich auf die Schaltfläche Add.

  3. Geben Sie die folgenden Werte in die entsprechenden Felder ein, oder wählen Sie sie aus.

    Bei Feldern mit einer Suche oder Werteliste können Sie den angeforderten Wert eingeben und dann auswählen.

    • Name: Oracle Linux SSH Access
    • Organisation: Default
    • Zugangsdatentyp: Maschine
    • Benutzername: opc
    • SSH-Private Key: Wählen Sie den Schlüssel id_rsa aus dem Verzeichnis ~/.SSH aus.

    Eine Möglichkeit, den SSH-Private Key abzurufen, besteht darin, die Option Durchsuchen für dieses Feld auszuwählen. Wählen Sie im Dialogfeld Dateiupload die Option Home aus, und klicken Sie mit der rechten Maustaste auf das Hauptfenster dieses Dialogfelds. Wählen Sie Ausgeblendete Dateien anzeigen aus. Wählen Sie den Ordner .ssh und die Datei id_rsa. Wenn Sie auf die Schaltfläche Open klicken, wird der Inhalt der Private-Key-Datei in das Dialogfeld SSH Private Key kopiert.

  4. Prüfen Sie die Einträge, scrollen Sie auf der Seite nach unten, und klicken Sie auf die Schaltfläche Speichern.

    olam2-cred-machine

Neues Projekt erstellen

  1. Klicken Sie im Navigationsmenü unter Ressourcen auf Projekte.

  2. Klicken Sie im Hauptbereich auf die Schaltfläche Add.

  3. Geben Sie die folgenden Werte in die entsprechenden Felder ein, oder wählen Sie sie aus.

    Bei Feldern mit einer Suche oder Werteliste können Sie den angeforderten Wert eingeben und dann auswählen.

    • Name: Container Management
    • Ausführungsumgebung: Meine benutzerdefinierte EE
    • Zugangsdatenart für Quellkontrolle: Manuell
    • Playbook-Verzeichnis: Podman
  4. Prüfen Sie die Einträge, und klicken Sie auf die Schaltfläche Speichern.

    olam2-proj-detail

Jobvorlage hinzufügen

  1. Klicken Sie im Navigationsmenü unter Ressourcen auf Vorlagen.

  2. Klicken Sie im Hauptbereich auf die Schaltfläche Hinzufügen, und wählen Sie Jobvorlage hinzufügen aus der Werteliste.

  3. Geben Sie die folgenden Werte in die entsprechenden Felder ein, oder wählen Sie sie aus.

    Bei Feldern mit einer Suche oder Werteliste können Sie den angeforderten Wert eingeben und dann auswählen.

    • Name: List Images
    • Jobtyp: Ausführen
    • Lager: Oracle Linux-Hosts
    • Projekt: Containerverwaltung
    • Ausführungsumgebung: Meine benutzerdefinierte EE
    • Playbook: list-images.yml
    • Zugangsdaten: Oracle Linux SSH-Zugriff
  4. Prüfen Sie die Einträge, scrollen Sie auf der Seite nach unten, und klicken Sie auf die Schaltfläche Speichern.

    olam2-temp-detail

Vorlage ausführen

  1. Klicken Sie im Navigationsmenü unter Ressourcen auf Vorlagen.

  2. Klicken Sie in der Spalte Aktionen neben der Jobvorlage Listenbilder auf das Symbol Vorlage starten.

Der Job wird gestartet, und der Bereich wechselt zur Jobausgabeübersicht. Nach einigen Minuten ist der Job nicht erfolgreich.

olam2-job-failure

Dieser Fehler tritt auf, weil das neue benutzerdefinierte ee die containers.podman-Collection nicht enthält, sodass die Wiedergabe nicht ausgeführt werden kann.

Benutzerdefinierte Ausführungsumgebung korrigieren

Um das benutzerdefinierte ee zu beheben, müssen wir das Containerimage mit dem Builder-Utility neu erstellen und dann das neue Image zur Abholung durch Oracle Linux Automation Manager an Private Automation Hub übergeben.

  1. Wechseln Sie zu einem Terminal, oder öffnen Sie es, und stellen Sie über SSH eine Verbindung zur devops-node-Instanz her.

  2. Wechseln Sie in das benutzerdefinierte ee-Projektverzeichnis.

    cd ~/my_custom_ee_project
    
  3. Fügen Sie die fehlende Sammlung zur Ansible Galaxy-Anforderungsdatei hinzu.

    tee -a requirements.yml > /dev/null <<EOF
    - name: containers.podman
    EOF
    
  4. Erstellen Sie das Image neu.

    ansible-builder build --tag my_custom_ee -v 3
    
  5. Senden Sie das neue Image per Push an Private Automation Hub.

    cd ~
    ansible-playbook push-image.yml
    
  6. Prüfen Sie, ob der Image-Push erfolgreich war.

    Stellen Sie eine Verbindung zum Private Automation Hub WebUI her, und prüfen Sie die Änderungen an der Ausführungsumgebung, insbesondere die Spalte Zuletzt geändert für my_first_olam_ee_image.

    pah-ee-modifizieren

Neue benutzerdefinierte Ausführungsumgebung testen

  1. Wechseln Sie im Browser zu Oracle Linux Automation Manager WebUI.

    Aktualisieren Sie das Browserfenster, und melden Sie sich gegebenenfalls erneut an.

  2. Klicken Sie im Navigationsmenü unter Administration auf Ausführungsumgebungen.

  3. Klicken Sie unter der Spalte Aktionen neben dem Imagelink Meine benutzerdefinierte EE auf das Symbol Ausführungsumgebung bearbeiten.

  4. Ändern Sie den Wert Entnehmen in Container vor Ausführung immer abrufen.

    Dieses Feld aktiviert die Option --pull für podman. Durch die Änderung der Einstellung wird Oracle Linux Automation Manager gezwungen, das neueste Image abzurufen, wenn die Prüfsummen der Layer nicht übereinstimmen.

  5. Prüfen Sie die Änderungen, und klicken Sie auf die Schaltfläche Speichern.

  6. Klicken Sie im Navigationsmenü unter Ansichten auf Jobs.

  7. Klicken Sie auf das Symbol Neu starten unter der Spalte Aktionen neben ... Link "Bilder auflisten".

    Wählen Sie in der Dropdown-Liste Alle aus.

    Der Job wird gestartet, und der Bereich wechselt zur Jobausgabeübersicht. Nach einigen Minuten wird er erfolgreich abgeschlossen.

    olam2-job-success

Nächste Schritte

Die Ausgabe in WebUI bestätigt, dass Sie über eine funktionierende benutzerdefinierte Ausführungsumgebung in Oracle Linux Automation Manager verfügen. Erweitern Sie Ihre Fähigkeiten und sehen Sie sich unsere anderen Oracle Linux Automation Manager-Schulungen auf der Oracle Linux-Schulungsstation an.

Weitere Lernressourcen

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

Die Produktdokumentation finden Sie im Oracle Help Center.