Compartilhar via


Introdução: Configurar o Ansible em uma VM do Azure

Este artigo mostra como instalar o Ansible em uma VM do Ubuntu no Azure.

Neste artigo, você aprenderá a:

  • Criar um grupo de recursos
  • Criar uma máquina virtual do Ubuntu
  • Instalar o Ansible na máquina virtual
  • Conectar-se à máquina virtual por meio do SSH
  • Configurar o Ansible na máquina virtual

Pré-requisitos

  • Assinatura do Azure: Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Criar uma máquina virtual

  1. Crie um grupo de recursos do Azure.

    az group create --name QuickstartAnsible-rg --location eastus
    

    Talvez seja necessário substituir o --location parâmetro pelo valor apropriado para seu ambiente.

  2. Crie a máquina virtual do Azure para o Ansible.

    az vm create \
    --resource-group QuickstartAnsible-rg \
    --name QuickstartAnsible-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --admin-password <password>
    

    Substitua <password> sua senha.

  3. Obtenha o endereço Ip público da máquina virtual do Azure.

    az vm show -d -g QuickstartAnsible-rg -n QuickstartAnsible-vm --query publicIps -o tsv
    

Conectar-se à sua máquina virtual por meio do SSH

Usando o comando SSH, conecte-se ao endereço IP público da máquina virtual.

ssh azureuser@<vm_ip_address>

Substitua <vm_ip_address> pelo valor apropriado retornado em comandos anteriores.

Instalar o Ansible na máquina virtual

Ansible com azure.azcollection

Execute os seguintes comandos para configurar o Ansible no Ubuntu:

#!/bin/bash

sudo apt update

sudo apt install software-properties-common

sudo add-apt-repository --yes --update ppa:ansible/ansible

sudo apt install ansible

# Install Ansible az collection for interacting with Azure. (optional)
ansible-galaxy collection install azure.azcollection --force 

# Install Ansible modules for Azure (optional)
sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements.txt

Pontos principais:

  • O nó de controle ansible requer o Python 2 (versão 2.7) ou o Python 3 (versões 3.5 e superior) instalados. O Ansible 4.0.0 e o ansible-core 2.11 têm uma dependência flexível do Python 3.8, mas funcionam com versões inferiores. No entanto, o Ansible 5.0.0 e o ansible-core 2.12 exigirão 3.8 e mais recentes.

Criar credenciais do Azure

Para configurar as credenciais do Ansible, você precisa das seguintes informações:

  • Sua ID de assinatura do Azure e a ID do locatário
  • O ID do aplicativo da entidade de serviço e o segredo

Configure as credenciais do Ansible usando uma das seguintes técnicas:

Opção 1: Criar arquivo de credenciais do Ansible

Nesta seção, você criará um arquivo de credenciais local para fornecer credenciais ao Ansible. Por motivos de segurança, os arquivos de credencial só devem ser usados em ambientes de desenvolvimento.

Para obter mais informações sobre como definir credenciais do Ansible, consulte Fornecendo credenciais para módulos do Azure.

  1. Depois de se conectar com êxito à máquina virtual do host, crie e abra um arquivo chamado credentials:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Insira as linhas a seguir no arquivo. Substitua os placeholders pelos valores do principal de serviço.

    [default]
    subscription_id=<subscription_id>
    client_id=<service_principal_app_id>
    secret=<service_principal_password>
    tenant=<service_principal_tenant_id>
    
  3. Salve e feche o arquivo.

Opção 2: Definir variáveis de ambiente ansible

Na máquina virtual do hospedeiro, exporte os valores do principal de serviço para configurar suas credenciais do Ansible.

export AZURE_SUBSCRIPTION_ID=<subscription_id>
export AZURE_CLIENT_ID=<service_principal_app_id>
export AZURE_SECRET=<service_principal_password>
export AZURE_TENANT=<service_principal_tenant_id>

Testar a instalação do Ansible

Agora você tem uma máquina virtual com o Ansible instalado e configurado!

Esta seção mostra como criar um grupo de recursos de teste em sua nova configuração do Ansible. Se você não precisar fazer isso, ignore esta seção.

Opção 1: usar um comando ansible ad hoc

Execute o seguinte comando ansible ad hoc para criar um grupo de recursos:


#Ansible with azure.azcollection
ansible localhost -m azure.azcollection.azure_rm_resourcegroup -a "name=<resource_group_name> location=<location>"

Substitua <resource_group_name> e <location> por seus valores.

Opção 2: gravar e executar um guia estratégico do Ansible

  1. Salve o código a seguir como create_rg.yml.

    Ansible com azure.azcollection

    - hosts: localhost
      connection: local
      collections:
        - azure.azcollection
      tasks:
        - name: Creating resource group
          azure_rm_resourcegroup:
            name: "<resource_group_name"
            location: "<location>"
    

    Substitua <resource_group_name> e <location> por seus valores.

  2. Execute o playbook usando ansible-playbook.

    ansible-playbook create_rg.yml
    

Leia mais sobre o azure.azcollection.

Limpar os recursos

  1. Salve o código a seguir como delete_rg.yml.

    ---
    - hosts: localhost
      tasks:
        - name: Deleting resource group - "{{ name }}"
          azure_rm_resourcegroup:
            name: "{{ name }}"
            state: absent
          register: rg
        - debug:
            var: rg
    
  2. Execute o guia estratégico usando o comando ansible-playbook . Substitua o espaço reservado pelo nome do grupo de recursos a ser excluído. Todos os recursos dentro do grupo de recursos serão excluídos.

    ansible-playbook delete_rg.yml --extra-vars "name=<resource_group>"
    

    Pontos principais:

    • Devido à register variável e debug à seção do guia estratégico, os resultados são exibidos quando o comando é concluído.

Próximas etapas