Observação:

Gerenciar o Oracle Linux Automation Manager Usando a Coleção AWX

Introdução

A Coleção AWX Ansible permite que os administradores interajam com o Oracle Linux Automation Manager por meio de playbooks. Os módulos incluem a capacidade de executar tarefas como administração de usuários e grupos, criação de projetos e execução de jobs.

Objetivos

Neste tutorial, você aprenderá a:

Pré-requisitos

Implantar o Oracle Linux Automation Manager

Observação: Se estiver em execução em sua própria tenancy, leia o projeto linux-virt-labs GitHub README.md e conclua os pré-requisitos antes de implantar o ambiente de laboratório.

  1. Abra um terminal no Luna Desktop.

  2. Clone o projeto linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Altere para o diretório de trabalho.

    cd linux-virt-labs/olam
    
  4. Instale as coleções necessárias.

    ansible-galaxy collection install -r requirements.yml
    
  5. Atualize a configuração da instância do Oracle Linux.

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "olam-node"
        type: "control"
    olam_type: single
    EOF
    
  6. Crie um arquivo de inventário.

    cat << EOF | tee hosts > /dev/null
    localhost ansible_connection=local ansible_connection=local ansible_python_interpreter=/usr/bin/python3.6
    EOF
    
  7. Implante o ambiente de laboratório.

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

    O ambiente de laboratório gratuito requer a variável extra ansible_python_interpreter para localhost porque instala o pacote RPM para o Oracle Cloud Infrastructure SDK para Python. O local para instalar este pacote está nos módulos Python padrão do sistema com base na sua versão do Oracle Linux. Usar uma variável de inventário evita impactar as reproduções em execução em hosts diferentes de localhost.

    A forma de implantação padrão usa a CPU AMD. Você pode alterar a forma das instâncias especificando uma nova definição de variável de forma na linha de comando.

    Por exemplo: -e instance_shape="VM.Standard3.Flex"

    Da mesma forma, a versão padrão da imagem do Oracle Linux usa a variável os_version definida no arquivo `default_vars.yml. Você pode modificar esse valor especificando a versão principal do Oracle Linux na linha de comando.

    Por exemplo: -e os_version="9"

    Importante: Aguarde a execução bem-sucedida do playbook e atinja a tarefa de pausa. Neste estágio do playbook, a instalação do Oracle Linux está concluída e as instâncias estão prontas. Observe o jogo anterior, que imprime os endereços IP públicos e privados dos nós que ele implanta.

Verificar Implantação do Oracle Linux Automation Manager

  1. Abra um novo terminal.

  2. Configure um túnel SSH para a instância do 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: espera que todas as portas remotas sejam estabelecidas com sucesso
    • -f: executa o túnel SSH em segundo plano
    • -L: cria o túnel na porta 8444 no sistema local e 443 no sistema remoto
    • sleep 300: mantém o túnel remoto aberto por 5 minutos, aguardando uma conexão estabelecida antes de fechar automaticamente
  3. Abra um navegador da Web e insira o URL.

    https://localhost:8444
    

    Observação: aprove o aviso de segurança com base no navegador usado. Para o Chrome, clique no botão Advanced e, em seguida, no link Proceed to localhost (unsafe).

  4. Faça log-in no Oracle Linux Automation Manager com o Nome de Usuário admin e a Senha admin criados durante a implantação.

    olam2-login

  5. Após o log-in, a IU da Web é exibida.

    olam2-webui

Criar o Arquivo de Configuração da Controladora

A Coleção AWX Ansible utiliza um arquivo de configuração e, em alguns casos, a CLI do AWX para autenticação no Oracle Linux Automation Manager. Os parâmetros de autenticação podem ser especificados na linha de comando usando a CLI diretamente ou gravados em um arquivo de configuração.

Ao especificar os parâmetros de autenticação, a Coleção AWX Ansible espera uma combinação de:

Mais detalhes estão disponíveis no projeto upstream.

  1. Retorne ao terminal em que você criou o túnel SSH.

  2. Gere o arquivo de configuração.

    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: - define o URL para acessar a UI da Web do Oracle Linux Automation Manager
    • verify_ssl: - desativa a verificação SSL estrita, pois o ambiente do tutorial usa um certificado autoassinado
    • use_token: - embora o uso de um token OAuth2 seja preferencial, a definição como falso é desativada usando um para autenticação

Criar uma Organização

Como abordamos em nosso tutorial Conceitos Básicos, uma Organização fica no topo da pirâmide baseada em funções e é uma coleção lógica de usuários, equipes, projetos e estoques.

Em vez de criar isso por meio da interface da Web, podemos escrever um playbook.

  1. Escreva o manual.

    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. Execute o playbook.

    ansible-playbook configure-olam.yaml
    
  3. Verifique as alterações na UI da Web.

    Usando o navegador, faça login na IU da Web.

    Observação: se você encontrar uma falha de log-in, o túnel SSH poderá ter expirado. Nesse caso, você precisará reexecutar o comando SSH para restabelecer a conexão.

    No menu de navegação, clique em Organizações. Observe a entrada Exemplo, que a playbook criou.

Executar um Job

Com a Organização criada, agora vamos automatizar as etapas restantes no tutorial Conceitos Básicos com algumas modificações. Um dos benefícios do Oracle Linux Automation Engine é sua documentação automática.

  1. Retorne ao terminal onde você criou o playbook.

  2. Anexe a configuração adicional ao playbook existente.

    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. Execute novamente o manual.

    ansible-playbook configure-olam.yaml
    

    O playbook termina com o último play exibindo o status do job como successful, juntamente com um aviso que você pode ignorar.

  4. Verifique o Job na UI da Web.

    Usando o browser, navegue até Jobs e clique no job Dizer Olá. A saída exibe os resultados da execução do playbook durante o job. Observe as mensagens de boas-vindas da tarefa de depuração.

Próximas Etapas

A saída na IU da Web confirma que você tem um Oracle Linux Automation Manager funcional e escreveu um manual para gerenciar algumas das tarefas mais comuns.

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.