Nota

Gestisci Oracle Linux Automation Manager mediante la raccolta AWX

Introduzione

La raccolta AWX Ansible consente agli amministratori di interagire con Oracle Linux Automation Manager tramite playbook. I moduli includono la possibilità di eseguire task quali l'amministrazione di utenti e gruppi, la creazione di progetti e l'esecuzione di job.

Obiettivi

In questo tutorial imparerai come:

Prerequisiti

Distribuisci Oracle Linux Automation Manager

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 esercitazione pratica.

  1. Aprire un terminale sul Luna Desktop.

  2. Duplica 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 Oracle Linux.

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "olam-node"
        type: "control"
    olam_type: single
    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. Implementa 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.

Verifica la distribuzione di Oracle Linux Automation Manager

  1. Aprire un nuovo terminale.

  2. Configurare un tunnel SSH per l'istanza di Oracle Linux Automation Manager.

    ssh -o ExitOnForwardFailure=yes -f -L 8444:localhost:443 oracle@<public_ip_address_of_olam-node> sleep 300
    
    • -o ExitOnForwardFailure=yes: attende l'avanzamento di tutte le porte remote
    • -f: esegue il tunnel SSH in background
    • -L: crea il tunnel sulla porta 8444 sul sistema locale e 443 sul sistema remoto
    • sleep 300: mantiene aperto il tunnel remoto per 5 minuti, in attesa di una connessione stabilita prima della chiusura automatica
  3. Aprire un browser Web e immettere l'URL.

    https://localhost:8444
    

    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).

  4. Eseguire il login a Oracle Linux Automation Manager con il nome utente admin e la password admin creati durante la distribuzione.

    olam2: login

  5. Dopo il login, viene visualizzata l'interfaccia utente Web.

    olam2-webui

Creazione del file di configurazione del controller

La raccolta AWX Ansible utilizza un file di configurazione e, in alcuni casi, l'interfaccia CLI AWX per l'autenticazione in Oracle Linux Automation Manager. I parametri di autenticazione possono essere passati nella riga di comando tramite l'interfaccia CLI direttamente o scritti in un file di configurazione.

Quando si specificano i parametri di autenticazione, la raccolta AWX Ansible prevede una combinazione di:

Ulteriori dettagli sono disponibili nel progetto a monte.

  1. Tornare al terminale in cui è stato creato il tunnel SSH.

  2. Generare il file di configurazione.

    cat << EOF | tee ~/.tower_cli.cfg > /dev/null
    [general]
    host: https://localhost:8444
    verify_ssl: false
    username: admin
    password: admin
    use_token = false
    EOF
    
    • host:: definisce l'URL per accedere all'interfaccia utente Web di Oracle Linux Automation Manager
    • verify_ssl:: disattiva il rigoroso controllo SSL poiché l'ambiente di esercitazione utilizza un certificato autofirmato
    • use_token:: sebbene sia preferibile utilizzare un token OAuth2, l'impostazione su false disattiva utilizzando uno per l'autenticazione

Crea un'organizzazione

Come descritto nel nostro tutorial Per iniziare, un'organizzazione si trova in cima alla piramide basata sui ruoli ed è una raccolta logica di utenti, team, progetti e inventari.

Piuttosto che creare questo attraverso l'interfaccia utente Web, possiamo scrivere un playbook.

  1. Scrivi il playbook.

    cat << EOF | tee configure-olam.yaml > /dev/null
    ---
    - name: Playbook to set up training demo data using the AWX collection
      hosts: localhost
      gather_facts: false
      collections:
        - awx.awx
    
      tasks:
    
      - name: Create an organization
        awx.awx.organization:
          name: "Example"
          description: "Created using a playbook"
          state: present
    
    EOF
    
  2. Eseguire il playbook.

    ansible-playbook configure-olam.yaml
    
  3. Verificare le modifiche nell'interfaccia utente Web.

    Utilizzando il browser, eseguire il login all'interfaccia utente Web.

    Nota: se si verifica un errore di login, il tunnel SSH potrebbe essere scaduto. In questo caso, sarà necessario eseguire di nuovo il comando SSH per ristabilire la connessione.

    Nel menu di navigazione fare clic su Organizzazioni. Si noti la voce Esempio creata dalla guida.

Esegui un job

Con l'organizzazione creata, ora automatizziamo i passi rimanenti nell'esercitazione Guida introduttiva con alcune modifiche. Uno dei vantaggi di Oracle Linux Automation Engine è l'auto-documentazione.

  1. Tornare al terminale in cui è stata creata la guida.

  2. Aggiungere la configurazione aggiuntiva alla guida esistente.

    cat << EOF | tee -a configure-olam.yaml > /dev/null
      - name: Add a user
        awx.awx.user:
          username: jdoe
          password: oracle
          email: jdoe@example.com
          first_name: John
          last_name: Doe
          organization: Example
          state: present
    
      - name: Add an inventory
        awx.awx.inventory:
          name: "Demo Inventory"
          description: "Demo OCI Instances"
          organization: Example
          state: present
    
      - name: Add a host
        awx.awx.host:
          name: localhost
          description: "Use to run tasks locally"
          inventory: "Demo Inventory"
          state: present
          variables:
            ansible_connection: local
    
      - name: Add a credential
        awx.awx.credential:
          name: "Linux Instance"
          credential_type: Machine
          organization: Example
          inputs:
            username: opc
            ssh_key_data: ""
    
      - name: Add a project
        awx.awx.project:
          name: "Hello World"
          description: "Sample Hello World Project"
          organization: Example
          default_environment: "OLAM EE (2.3)"
          scm_type: "git"
          scm_update_on_launch: false
          scm_url: https://github.com/oracle-devrel/linux-virt-labs.git
          state: present
    
      - name: Add a template
        awx.awx.job_template:
          name: "Say Hello"
          job_type: "run"
          organization: Example
          inventory: "Demo Inventory"
          project: "Hello World"
          playbook: "labs/olam-hello-world.yaml"
          state: present
    
      - name: Launch a job
        awx.awx.job_launch:
          job_template: "Say Hello"
          wait: true
        register: job
    
      - name: Print results from job
        ansible.builtin.debug:
          var: job
    
    EOF
    
  3. Rieseguire il playbook.

    ansible-playbook configure-olam.yaml
    

    Il playbook si conclude con l'ultima riproduzione che mostra lo stato del job come successful, insieme a un avviso che è possibile ignorare.

  4. Verificare il job nell'interfaccia utente Web.

    Utilizzando il browser, passare a Job e fare clic sul job Say Hello. L'output visualizza i risultati dell'esecuzione della guida durante il job. Notate i messaggi di benvenuto dal task di debug.

Passi successivi

L'output all'interno dell'interfaccia utente Web conferma di disporre di un Oracle Linux Automation Manager funzionante e di aver scritto un playbook per gestire alcuni dei task più comuni.

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare un Oracle Learning Explorer.

Per la documentazione del prodotto, visita l'Oracle Help Center.