Nota

Gestire gli ambienti di esecuzione in Oracle Linux Automation Manager Private Automation Hub

Introduzione

Private Automation Hub è un repository di Oracle Linux Automation Manager per la gestione di raccolte, immagini di ambienti di esecuzione e altri contenuti curati localmente all'interno dell'infrastruttura di un cliente.

Questa esercitazione mostra come installare Private Automation Hub e caricare un ambiente di esecuzione personalizzato nel relativo registro contenitore. Per i dettagli sulla creazione di ambienti di esecuzione personalizzati, consulta la nostra esercitazione sulla utility Builder.

Obiettivi

In questo tutorial, imparerai come:

Prerequisiti

Implementa Oracle Linux

Nota: se è in esecuzione nella propria tenancy, leggere il progetto linux-virt-labs GitHub README.md e completare i prerequisiti prima di distribuire l'ambiente di laboratorio.

  1. Aprire un terminale sul Luna Desktop.

  2. Duplicare il progetto linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Passare alla directory di lavoro.

    cd linux-virt-labs/olam
    
  4. Installare le raccolte richieste.

    ansible-galaxy collection install -r requirements.yml
    
  5. Aggiornare la configurazione dell'istanza di Oracle Linux.

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "devops-node"
        type: "server"
      2:
        instance_name: "ol-pah"
        type: "server"
    passwordless_ssh: true
    use_olam_builder: true
    use_devops_vnc: true
    add_pah_ports: true
    olam_type: none
    EOF
    
  6. Creare un file di inventario.

    cat << EOF | tee hosts > /dev/null
    localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6
    EOF
    
  7. Implementare l'ambiente di laboratorio.

    ansible-playbook create_instance.yml -i hosts -e "@instances.yml"
    

    L'ambiente di laboratorio gratuito richiede la variabile extra ansible_python_interpreter per localhost perché installa il pacchetto RPM per Oracle Cloud Infrastructure SDK per Python. La posizione per l'installazione di questo pacchetto si trova sotto i moduli Python predefiniti del sistema in base alla versione di Oracle Linux in uso. L'utilizzo di una variabile di inventario evita di influire sulle riproduzioni in esecuzione su host diversi da localhost.

    La forma di distribuzione predefinita utilizza la CPU AMD. È possibile modificare la forma delle istanze passando una nuova definizione di variabile forma sulla riga di comando.

    Ad esempio: -e instance_shape="VM.Standard3.Flex"

    Analogamente, la versione predefinita dell'immagine Oracle Linux utilizza la variabile os_version definita nel file `default_vars.yml. È possibile modificare questo valore passando la versione principale di Oracle Linux dalla riga di comando.

    Ad esempio: -e os_version="9"

    Importante: attendere che il playbook venga eseguito correttamente e raggiungere il task di sospensione. In questa fase del playbook, l'installazione di Oracle Linux è completa e le istanze sono pronte. Nota la riproduzione precedente, che stampa gli indirizzi IP pubblici e privati dei nodi che distribuisce.

Installare i package di Private Automation Hub

  1. Aprire un terminale e connettersi tramite SSH all'istanza ol-pah.

    ssh oracle@<ip_address_of_instance>
    
  2. Installare il repository di Oracle Linux Automation Manager.

    Oracle Linux 8:

    sudo dnf install -y oraclelinux-automation-manager-release-el8
    

    Oracle Linux 9:

    sudo dnf install -y oraclelinux-automation-manager-release-el9
    
  3. Installare il package Private Automation Hub.

    sudo dnf install -y ol-private-automation-hub-installer
    

    Questo comando installa le playbook e i ruoli di installazione di Private Automation Hub, ansible-core, python3.11 e altre dipendenze dei pacchetti.

Installa Private Automation Hub

Quando si installa Private Automation Hub, è necessario impostare le password per l'account utente privilegiato admin di Private Automation Hub e il relativo database backend. Invece di passare questi al playbook all'aperto, eseguiamo questo passaggio in modo più sicuro utilizzando ansible-vault.

La utility ansible-vault, fornita con Oracle Linux Automation Engine, consente la cifratura e la decifrazione di file di dati strutturati, inclusi file di testo, variabili e playbook YAML.

Noi criptiamo un file variabile contenente le nostre due password per i nostri scopi.

  1. Copiare il playbook di Private Automation Hub nella directory di lavoro.

    cp -r /usr/share/ansible/collections/ansible_collections/oraclelinux/private_automation_hub/playbooks/single-node/ ~/single_node
    
  2. Passare alla directory di lavoro.

    cd ~/single_node
    
  3. Creare un file di inventario.

    Il file di inventario per questo playbook richiede il nome host e il nome utente SSH in cui il playbook installerà Private Automation Hub. Il file di inventario viene definito in formato INI o YAML. L'inventario di esempio hosts.singlenode.example all'interno del playbook di installazione utilizza YAML, quindi useremo il formato INI qui per dimostrare un'opzione alternativa.

    tee hosts > /dev/null <<EOF
    [hub]
    ol-pah ansible_host=ol-pah ansible_user=oracle
    EOF
    

    A differenza dell'esempio che utilizza hub come alias per ansible_host, questo file di inventario INI utilizza hub come nome di gruppo. I gruppi consentono la creazione di relazioni padre-figlio tra gli host e li suddividono in una o più categorie per eseguire task o assegnare variabili.

  4. Creare un vault contenente le variabili della password.

    ansible-vault create vault_passwords.yml
    

    Quando si esegue il comando, viene richiesto di creare una password del vault. La utility ansible-vault utilizza questa password per decifrare il contenuto del vault e accedere a tali contenuti da un playbook. La password può essere qualsiasi combinazione di caratteri, ma ricordala, in quanto non puoi recuperarla.

    Una volta immessa e confermata la password, l'utility apre il file vault_passwords.yml nell'editor predefinito. Per l'ambiente di laboratorio gratuito, l'editor è vi. Digitare i per immettere la modalità INSERT e incollare queste variabili di password di esempio di Private Automation Hub.

    Nota: queste sono le variabili utilizzate dal playbook durante l'installazione di Private Automation Hub e l'impostazione delle password dei superutente e del database.

    ---
    olpah_admin_password: password
    olpah_db_password: password
    

    Chiudere e salvare il file digitando ESC, :wq! e quindi ENTER.

  5. Verificare il contenuto del vault.

    ansible-vault view vault_passwords.yml
    

    Immettere la password del vault al prompt e ansible-vault visualizza il contenuto del vault nel terminale.

  6. Eseguire il playbook di Private Automation Hub.

    ansible-playbook single-node-install.yml -i hosts -e "@vault_passwords.yml" --ask-vault-pass
    
    • -i definisce il file di inventario
    • -e definisce qualsiasi variabile di runtime come coppie key=value o in un file di variabili
    • --ask-vault-pass richiede la password del vault

    Esistono metodi alternativi per fornire la password del vault, che è possibile consultare nella documentazione a monte.

    Nota: l'installazione di Private Automation Hub richiede 10-20 minuti. Durante l'installazione, i progressi del playbook scorrono nel terminale fino al completamento di tutte le attività.

Aprire una sessione VNC all'istanza DevOps

La sessione VNC consente di connettersi all'interfaccia utente Web di Private Automation Hub utilizzando il nome host o il nome dominio completamente qualificato (FQDN) nell'ambiente di laboratorio gratuito. L'utilizzo del nome host o del nome FQDN è necessario poiché la protezione integrata di Django protegge l'interfaccia utente Web dagli attacchi CSRF (Cross-Site Request Forgery).

  1. Uscire dalla sessione SSH esistente.

    exit
    
  2. Aprire un nuovo terminale e connettersi all'istanza devops-node tramite SSH.

    L'opzione -L abilita l'inoltro locale, che apre una porta locale per connettersi attraverso un tunnel SSH al server VNC remoto.

    ssh -L 5914:localhost:5901 oracle@<ip_address_of_instance>
    
  3. Passare al desktop Luna.

  4. Aprire il visualizzatore TigerVNC facendo clic sul menu Applicazioni, su Internet, quindi su TigerVNC Viewer.

    menu vnc

  5. Eseguire il login all'ambiente GUI del server distribuito immettendo localhost:5914 nella casella di testo VNC Server e facendo clic sul pulsante Connect.

    login vnc

  6. Immettere la password dell'utente oracle di oracle e fare clic sul pulsante OK.

    vnc-pwd

  7. Viene visualizzato il desktop della GUI del server con una configurazione per il primo login.

    gui-benvenuto

  8. Fare clic tre volte sul pulsante Next, quindi sul pulsante Skip e quindi sul pulsante Start Using Oracle Linux Server. Infine, chiudere o ridurre a icona la finestra Introduzione.

    uso iniziale-olo

Connetti a Private Automation Hub

  1. Aprire un browser Web all'interno della sessione VNC e immettere l'URL.

    https://ol-pah
    

    Nota: approvare l'avvertenza di sicurezza in base al browser utilizzato. Per Chrome, fare clic sul pulsante Advanced, quindi sul collegamento Proceed to localhost (unsafe).

  2. Eseguire il login all'interfaccia utente Web di Private Automation Hub.

    Utilizzare il nome utente admin e la password password. Questa password è il valore impostato per olpah_admin_password nel file delle variabili di runtime.

    pah-login

  3. L'interfaccia utente Web viene visualizzata dopo un login riuscito.

    pah-webui

Aggiungi ambiente di esecuzione mediante l'interfaccia utente Web

Uno degli elementi gestiti da Private Automation Hub sono gli ambienti di esecuzione. Questa funzione consente a Private Automation Hub di fungere da repository per le immagini dei contenitori, consentendo agli amministratori di interagire con essi utilizzando Podman e l'interfaccia utente Web.

  1. Fare clic su Registrazioni remote nell'interfaccia utente Web in Ambienti di esecuzione nel menu di navigazione.

  2. Fare clic sul pulsante Aggiungi registro remoto.

  3. Immettere i valori riportati di seguito nei campi specifici.

    • Nome: Quay Upstream Registry
    • URL: https://quay.io
  4. Fare clic sul pulsante Salva.

    Il registro remoto appena creato viene visualizzato nel pannello Registri remoti.

  5. Fare clic su Ambienti di esecuzione in Ambienti di esecuzione nel menu di navigazione.

  6. Fare clic sul pulsante Aggiungi ambiente di esecuzione.

    L'interfaccia utente Web visualizza la finestra di dialogo Aggiungi ambiente di esecuzione. Possiamo estrarre le immagini dei contenitori da upstream o altri registri attraverso questa finestra di dialogo.

  7. Immettere o selezionare i valori riportati di seguito nei campi specifici.

    • Nome: upstream/awx-ee
    • Nome a monte: ansible/awx-ee
    • Registro: Registro a monte giornaliero
    • Aggiungi tag da includere: digitare latest e quindi ENTER
  8. Fare clic sul pulsante Salva.

    L'ambiente di esecuzione appena creato viene visualizzato nel pannello Ambienti di esecuzione.

  9. Sincronizzare l'ambiente di esecuzione upstream/awx-ee dal registro remoto.

    1. Fare clic sul menu a tre punti verticale a destra della voce upstream/awx-ee.

    2. Selezionare Sincronizza da registro

      Viene visualizzata una finestra di dialogo popup in cui viene indicato che la sincronizzazione è stata avviata.

    3. Fare clic sul collegamento Pagina dettagli nella finestra di dialogo popup per visualizzare lo stato di questo task.

    4. Il task mostra un'icona Completato.

    5. Fare clic su Ambienti di esecuzione in Ambienti di esecuzione nel menu di navigazione.

    6. Fare clic sul collegamento a monte/a valle nel pannello Ambienti di esecuzione.

      Questo collegamento visualizza le istruzioni per estrarre questa immagine da Private Automation Hub nella scheda Dettagli.

    7. Fare clic sulla scheda Immagini.

      In questo pannello vengono visualizzati ulteriori dettagli sull'immagine, inclusi i relativi tag, dimensione e sha256 digest.

Ambiente di esecuzione push mediante Podman

  1. Aprire un terminale e connettersi tramite SSH all'istanza devops-node.

    ssh oracle@<ip_address_of_instance>
    

    Questa istanza contiene un'installazione della utility Builder e un ambiente di esecuzione personalizzato predefinito. Per informazioni dettagliate sull'esecuzione di tali task, vedere Creazione di ambienti di esecuzione personalizzati con la utility Builder di Oracle Linux Automation Manager.

  2. Passare alla directory di lavoro del progetto.

    cd ~/my_custom_ee_project
    

    Questa directory contiene i file di dati della utility Builder, che Podman utilizza per creare l'immagine dell'ambiente di esecuzione personalizzata.

  3. Elenca le immagini locali esistenti.

    podman images
    

    L'output mostra la nostra immagine personalizzata e le immagini olam-ee e olam-builder predefinite di Oracle Linux Automation Manager.

  4. Eseguire il login a Private Automation Hub.

    podman login -u admin https://ol-pah.$(hostname -d) --tls-verify=0
    
    • -u è un utente con privilegi per accedere al registro contenitore
    • ol-pah.$(hostname -d) è il nome FQDN del registro container
    • --tls-verify=0 disattiva la verifica del certificato TLS in quanto l'ambiente di laboratorio gratuito utilizza certificati autofirmati

    Il comando richiede un valore Password:. Immettere la password corrispondente alle credenziali di login per l'utente di Private Automation Hub admin.

  5. Contrassegnare l'immagine personalizzata locale.

    Prima di spostare l'immagine nel registro di Private Automation Hub, creare la struttura e il tag del repository richiesti utilizzando l'immagine locale.

    podman tag localhost/my_custom_ee ol-pah.$(hostname -d)/my_first_olam_ee_image
    
  6. Verificare che la nuova immagine contrassegnata esista.

    podman images
    

    Output di esempio:

    [oracle@devops-node my_custom_ee_project]$ podman images
    REPOSITORY                                                                  TAG         IMAGE ID      CREATED      SIZE
    localhost/my_custom_ee                                                      latest      fbc43634b168  5 hours ago  2.29 GB
    ol-pah.lv.vcn5ef1c2b6.oraclevcn.com/my_first_olam_ee_image                  latest      fbc43634b168  5 hours ago  2.29 GB
    <none>                                                                      <none>      92aa94db3699  5 hours ago  1.4 GB
    <none>                                                                      <none>      cc087fbfa018  5 hours ago  1.45 GB
    container-registry.oracle.com/oracle_linux_automation_manager/olam-ee       latest      368657c8376d  5 weeks ago  1.25 GB
    container-registry.oracle.com/oracle_linux_automation_manager/olam-builder  latest      5e98580f7956  5 weeks ago  546 MB
    
  7. Caricare l'immagine personalizzata in Private Automation Hub.

    Nota: sostituire <IMAGE ID> con l'ID immagine effettivo di my_first_olam_ee_image dall'output podman images.

    podman push --tls-verify=0 <IMAGE ID> ol-pah.$(hostname -d)/my_first_olam_ee_image:latest
    
  8. Confermare il caricamento nell'interfaccia utente Web.

    1. Passare al browser contenente l'interfaccia utente Web di Private Automation Hub.

    2. Passare a Ambienti di esecuzione.

    3. Notare il nuovo sito my_first_olam_ee_image.

      pah-ee

Passi successivi

L'output all'interno dell'interfaccia utente Web conferma la disponibilità di un Private Automation Hub funzionante e la possibilità di caricare e memorizzare le immagini personalizzate. Guarda i nostri altri tutorial che utilizzano Oracle Linux Automation Manager per mettere in pratica le tue competenze.

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti di formazione gratuiti sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.

Per la documentazione del prodotto, visitare Oracle Help Center.