Observação:

Use a Coleção do OCI Ansible com o Oracle Linux Automation Manager

Introdução

A Coleção Ansible do OCI (Oracle Cloud Infrastructure) fornece uma maneira fácil de provisionar e gerenciar recursos no Oracle Cloud usando o Oracle Linux Automation Engine ou o Oracle Linux Automation Manager.

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"
      2:
        instance_name: "git-server"
        type: "server"
    use_git: true
    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.

Criar um Playbook

  1. Abra uma nova janela do terminal.

  2. Defina uma variável para a instância remota do git-server.

    export REMOTE=<ip_address_of_instance>
    
  3. Crie um diretório de projeto.

    mkdir ~/myproject
    
  4. Crie um arquivo de requisitos.

    O Oracle Linux Automation Engine usa o arquivo de requisitos para extrair quaisquer coleções ou funções necessárias para o projeto no runtime.

    cat << EOF > ~/myproject/requirements.yml 
    ---
    collections:
      - name: oracle.oci
      - name: community.general
    EOF
    

    Observação: Para versões do Oracle Linux Automation Engine < 2.13.9, você pode configurar o arquivo de requisitos para extrair a coleção diretamente do repositório de coleções GitHub.

    cat << EOF > ~/myproject/requirements.yml 
    ---
    collections:
      - name: https://github.com/oracle/oci-ansible-collection.git
        type: git
        version: master
      - name: https://github.com/ansible-collections/community.general.git
        type: git
        version: main
    EOF
    
  5. Crie um playbook.

    Este playbook consulta o namespace do armazenamento de objetos da tenancy do Oracle Cloud Infrastructure. Configuraremos os detalhes da tenancy posteriormente na interface de usuário Web do Oracle Linux Automation Manager.

    cat << EOF > ~/myproject/get_namespace.yml
    ---
    - name: Get namespace name
      hosts: localhost
    
      tasks:
    
      - name: get namespace
        oracle.oci.oci_object_storage_namespace_facts:
        register: output
    
      - name: print namespace
        ansible.builtin.debug:
          msg: ""
    EOF
    

Adicionar o Projeto ao Controle de Origem

  1. Inicialize o diretório de trabalho do projeto em um repositório Git.

    Antes de inicializar o repositório, você precisa executar algumas etapas de configuração de primeira vez do Git.

    1. Defina o nome da ramificação padrão usado ao inicializar um projeto.

      git config --global init.defaultBranch main
      
    2. Defina sua identidade.

      O email e o nome são exemplos neste tutorial. Use seu endereço de email e nome ao trabalhar em seus projetos, pois o git inclui imutavelmente essas informações em cada commit.

      git config --global user.email johndoe@example.com
      git config --global user.name "John Doe"
      
    3. Altere o diretório de trabalho do projeto.

      cd ~/myproject
      
    4. Inicialize o diretório como um repositório Git local.

      git init
      

      O comando retorna que inicializou o repositório Git vazio.

  2. Verifique o estado do diretório de trabalho e da área de preparação do projeto.

    git status
    

    O estado do repositório local indica dois arquivos não rastreados: get_namespace.yml e requirements.yml

  3. Adicione e rastreie os novos arquivos na área de preparação.

    git add --all
    

    A opção --all adiciona todos os arquivos não rastreados e alterados à área de preparação.

  4. Confirme as alterações atualmente na área de preparação.

    git commit -m 'initial commit'
    

    A opção -m permite adicionar um comentário às alterações confirmadas.

  5. Crie e inicialize o repositório Git remoto.

    Um repositório remoto é um repositório compartilhado usado por todos os colaboradores do projeto e armazenado em um serviço de hospedagem de código, como GitHub ou um servidor auto-hospedado.

    ssh git@$REMOTE "git init -b main --bare /git-server/repos/myproject.git"
    

    A opção -b garante a inicialização do repositório remoto usando uma ramificação chamada main.

  6. Aceite a impressão digital da chave ECDSA digitando yes.

  7. Adicione o novo registro de conexão do repositório remoto.

    Adicionar a conexão remota ao repositório local permite que você a use como um atalho nomeado nos comandos do Git.

    git remote add origin git@$REMOTE:/git-server/repos/myproject.git
    

    O caminho após dois-pontos é a localização do diretório do repositório no servidor Git remoto.

  8. Verifique o registro de conexão recém-adicionado.

    git remote -v
    

    A saída mostra a origem do registro de conexão apontando para o local do repositório Git remoto para os comandos git fetch e git push.

  9. Envie as alterações do repositório local para o repositório remoto.

    git push origin main
    

    Agora é possível usar a origem myproject em um Projeto do Oracle Linux Automation Manager.

Criar Credenciais do Ansible Galaxy

Essas credenciais permitem que o Oracle Linux Automation Manager extraia a Coleção do OCI Ansible do Ansible Galaxy Hub público.

  1. Abra uma nova janela de terminal e configure um túnel SSH para a instância do nó olam.

    ssh -L 8444:localhost:443 oracle@<ip_address_of_instance>
    
  2. 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. No navegador Chrome, clique no botão Avançado e, em seguida, no link Prosseguir para localhost (inseguro).

  3. Faça log-in na IU da Web do Oracle Linux Automation Manager. Use o Nome de Usuário admin e a Senha admin criados durante a implantação automatizada.

    olam2-login

  4. A UI da Web é exibida após um log-in bem-sucedido.

    olam2-webui

  5. Clique em Credenciais na seção Recursos no menu de navegação.

  6. Clique no botão Adicionar.

  7. Informe ou selecione os valores a seguir nos campos específicos.

    Para campos com uma pesquisa ou lista de valores, podemos começar a digitar o valor solicitado e, em seguida, selecioná-lo na lista.

    • Nome: My Ansible Galaxy
    • Organização: Default
    • Tipo de Credencial: Token da API do Ansible Galaxy/Automation Hub

    O Oracle Linux Automation Manager utiliza as credenciais do Ansible Galaxy para facilitar o download de atribuições e coleções usando o comando ansible-galaxy.

    • URL do Galaxy Server: https://galaxy.ansible.com

    olam2-telas-galáxia visíveis

  8. Verifique as entradas e clique no botão Salvar.

  9. Clique em Organizações na seção Acesso no menu de navegação.

    A atribuição da credencial do Ansible Galaxy dentro da Organização permite o download da Coleção Ansible do Oracle Linux Infrastructure no projeto git.

  10. Clique na organização Padrão e no botão Editar.

  11. Selecione a credencial Meu Ansible Galaxy no campo Credenciais do Galaxy e clique no botão Selecionar.

  12. Verifique e clique no botão Salvar.

    olam2-ansible-galaxy-org

Criar Credenciais do OCI

As credenciais do OCI fornecem informações do Oracle Linux Automation Manager sobre a tenancy específica do OCI.

  1. Clique em Credenciais no menu de navegação.

  2. Clique no botão Adicionar.

  3. Informe ou selecione os valores a seguir nos campos específicos.

    • Nome: My OCI Credentials
    • Organização: Default
    • Tipo de Credencial: Oracle Cloud Infrastructure

    olam2-oci-cred1

    A página atualiza e solicita suas informações de configuração do OCI.

  4. Abra uma nova janela do terminal.

  5. Exiba o conteúdo do arquivo de configuração do OCI.

    cat ~/.oci/config
    
  6. Use os valores mostrados no terminal e faça a correspondência deles com os campos específicos da credencial do OCI na IU da Web do Oracle Linux Automation Manager.

    Use o ícone olam2-webui-show ao lado de cada campo para mostrar o valor da colagem.

    olam2-oci-cred2

  7. Obtenha o conteúdo da chave privada da API do usuário do OCI.

    No ambiente de laboratório gratuito, você pode executar cat ~/.oci/oci.key para obter essas informações e copiar toda a saída, incluindo as linhas BEGIN e END.

  8. Cole a chave no campo Chave de Usuário Privada na interface de usuário Web do Oracle Linux Automation Manager.

    olam2-oci-cred3

  9. Verifique e clique no botão Salvar.

    olam2-oci-cred4

    Se você precisar editar esses valores posteriormente, eles aparecerão criptografados na IU da Web. Portanto, para fazer alterações, clique no ícone Substituir ao lado do campo específico e adicione o novo valor para o campo. Repita conforme necessário e clique no botão Salvar quando terminar de fazer as alterações.

Criar um Inventário

  1. Clique em Equipamentos no menu de navegação.

  2. Clique no botão Adicionar e selecione Adicionar equipamento na lista suspensa de valores.

  3. Informe ou selecione os valores a seguir nos campos específicos.

    • Nome: My Local Inventory
    • Grupos de Instâncias: controlplane

    A Coleção Ansible do Oracle Cloud Infrastructure usa uma conexão de rede localhost ao usar o Oracle Linux Automation Engine para interagir com a tenancy do OCI.

  4. Verifique e clique no botão Salvar.

    olam2-inv

Adicionar Credencial de Controle de Origem

  1. Clique em Credenciais no menu de navegação.

  2. Clique no botão Adicionar.

  3. Informe ou selecione os valores a seguir nos campos específicos.

    • Nome: Git Server
    • Tipo de Credencial: Controle de Origem

    olam2-git-cred1

    A página é atualizada, solicitando os Detalhes do Tipo.

  4. Informe o nome de usuário do servidor Git.

    • Nome do Usuário: git
  5. Copie e cole o conteúdo da chave privada do servidor Git no campo Chave Privada do SCM.

    O ambiente de laboratório livre usa o arquivo ~/.ssh/id_rsa padrão.

    olam2-git-cred2

  6. Verifique e clique no botão Salvar.

    olam2-git-cred3

Crie um Projeto

  1. Clique em Projetos no menu de navegação.

  2. Clique no botão Adicionar.

  3. Informe ou selecione os valores a seguir nos campos específicos.

    • Nome: My Project
    • Ambiente de Execução: OLAM EE (2.3)
    • Tipo de Credencial de Controle de Origem: Git

    olam2-proj1

    A página é atualizada, solicitando os Detalhes do Tipo.

    • URL de Controle de Origem: git@<ip_address_of_instance>:/git-server/repos/myproject.git
    • Ramificação do Controle de Origem: main
    • Credencial de Controle de Origem: Git Server

    O ambiente de laboratório gratuito usa o endereço IP do servidor git no campo URL de Controle de Origem.

  4. Verifique e clique no botão Salvar.

    olam2-proj2

  5. Verifique o status de sincronização do projeto.

    Depois que você cria um projeto, a IU da Web exibe seu status no resumo Detalhes à medida que a sincronização começa. O status passará de Em Execução para Com Êxito se a configuração estiver correta e o servidor Git estiver acessível.

    olam2-sincronização de projeto

Criar Modelo de Job

  1. Clique em Modelos no menu de navegação.

  2. Clique no botão Adicionar e selecione Adicionar modelo de job na lista suspensa de valores.

  3. Informe ou selecione os valores necessários.

    • Nome: My Template
    • Tipo de Job: Executar
    • Inventário: Meu Inventário Local
    • Projeto: Meu Projeto
    • Ambiente de Execução: OLAM EE (2.3)
    • Playbook: get_namespace.yml
  4. Selecione as credenciais.

    Ao selecionar Credenciais, uma caixa de diálogo pop-up Selecionar Credenciais é exibida. Escolha Oracle Cloud Infrastructure na lista drop-down Categoria Selecionada de valores para exibir credenciais desse tipo.

  5. Selecione Minhas Credenciais do OCI e clique no botão Selecionar.

  6. Verifique as entradas de Modelo de tarefa.

    olam2-temp1

  7. Role a página para baixo e clique no botão Salvar.

    olam2-temp2

  8. Inicie o modelo.

    Inicie um job na página de resumo do modelo clicando no botão Iniciar.

    olam2-temp-launch

    Se bem-sucedido, o job será iniciado e exibirá a saída do modelo, incluindo o namespace da tenancy do OCI. Você pode clicar no link Recarregar saída para atualizar o painel de saída, se necessário.

    olam2-temp-output

Próximas Etapas

A saída que mostra o namespace confirma que você tem uma configuração e um projeto de trabalho que demonstram como usar playbooks aproveitando a Coleção do Ansible do Oracle Cloud Infrastructure. Experimente ainda mais a coleta para implantar instâncias e outros recursos na sua tenancy.

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.