Introdução: Configurar o Ansible em uma VM do Azure
Cuidado
Este artigo faz referência ao CentOS, uma distribuição do Linux que está se aproximando do status de EOL (fim da vida útil). Considere seu uso e planeje adequadamente. Para obter mais informações, veja as Diretrizes sobre fim da vida útil do CentOS.
Este artigo mostra como instalar o Ansible em uma VM do Centos no Azure.
Neste artigo, você aprenderá como:
- Criar um grupo de recursos
- Criar uma máquina virtual do CentOS
- Instalar o Ansible na máquina virtual
- Conectar-se à máquina virtual via SSH
- Configurar o Ansible na máquina virtual
Pré-requisitos
- Assinatura do Azure: caso você não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.
- Entidade de serviço do Azure: crie uma entidade de serviço anotando os seguintes valores: appId, displayName, password e tenant.
Criar uma máquina virtual
Crie um grupo de recursos do Azure.
az group create --name QuickstartAnsible-rg --location eastus
Talvez seja necessário substituir o parâmetro
--location
pelo valor apropriado para o seu ambiente.Crie a máquina virtual do Azure para o Ansible.
az vm create \ --resource-group QuickstartAnsible-rg \ --name QuickstartAnsible-vm \ --image CentOS85Gen2 \ --admin-username azureuser \ --admin-password <password>
Substitua
<password>
pela sua senha.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 via SSH
Com o comando SSH, conecte-se ao endereço IP público da sua máquina virtual.
ssh azureuser@<vm_ip_address>
Substitua o <vm_ip_address>
pelo valor apropriado retornado nos comandos anteriores.
Instalar o Ansible na máquina virtual
Ansible 2.9 com o módulo azure_rm
Execute os seguintes comandos para configurar o Ansible 2.9 no CentOS:
#!/bin/bash
# Update all packages that have available updates.
sudo yum update -y
# Install Python 3 and pip.
sudo yum install -y python3-pip
# Upgrade pip3.
sudo pip3 install --upgrade pip
# Install Ansible.
pip3 install "ansible==2.9.17"
# Install Ansible azure_rm module for interacting with Azure.
pip3 install ansible[azure]
Ansible 2.10 com azure.azcollection
Execute os seguintes comandos para configurar o Ansible no CentOS:
#!/bin/bash
# Update all packages that have available updates.
sudo yum update -y
# Install Python 3 and pip.
sudo yum install -y python3-pip
# Upgrade pip3.
sudo pip3 install --upgrade pip
# Install Ansible az collection for interacting with Azure.
ansible-galaxy collection install azure.azcollection
# Install Ansible modules for Azure
sudo pip3 install -r ~/.ansible/collections/ansible_collections/azure/azcollection/requirements-azure.txt
Pontos principais:
- O nó de controle do Ansible exige 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 reversível no Python 3.8, mas funcionam com versões inferiores. No entanto, o Ansible 5.0.0 e o ansible-core 2.12 exigirão a versão 3.8 e mais recente.
Criar as credenciais do Azure
Para configurar as credenciais do Ansible, você precisará ter as seguintes informações:
- Sua ID de assinatura e sua ID de locatário do Azure
- A ID e o segredo do aplicativo da entidade de serviço
Configure as credenciais do Ansible usando uma das seguintes técnicas:
- Opção 1: criar um arquivo de credenciais do Ansible
- Opção 2: definir variáveis de ambiente do Ansible
Opção 1: criar arquivo de credenciais do Ansible
Nesta seção, você criará um arquivo de credenciais local para fornecer credenciais para o Ansible. Por motivos de segurança, os arquivos de credenciais só devem ser usados em ambientes de desenvolvimento.
Para obter mais informações sobre como definir as credenciais do Ansible, confira Como fornecer credenciais para os módulos do Azure.
Depois de se conectar com sucesso à máquina virtual do host, crie e abra um arquivo chamado
credentials
:mkdir ~/.azure vi ~/.azure/credentials
Insira as linhas a seguir no arquivo. Substitua os espaços reservados pelos valores da entidade de serviço.
[default] subscription_id=<subscription_id> client_id=<service_principal_app_id> secret=<service_principal_password> tenant=<service_principal_tenant_id>
Salve e feche o arquivo.
Opção 2: definir variáveis de ambiente do Ansible
Na máquina virtual do host, exporte os valores da entidade de serviço para configurar as 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 dentro da nova configuração do Ansible. Se você não precisar fazer isso, poderá ignorar esta seção.
- Opção 1: Usar um comando ad hoc do Ansible
- Opção 2: Escrever e executar um guia estratégico do Ansible
Opção 1: Usar um comando ad hoc do Ansible
Execute o seguinte comando ad hoc do Ansible para criar um grupo de recursos:
#Ansible 2.9 with azure_rm module
ansible localhost -m azure_rm_resourcegroup -a "name=ansible-test location=eastus"
#Ansible 2.10 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: Escrever e executar um guia estratégico do Ansible
Salve o código a seguir como
create_rg.yml
.Ansible 2.9 com o módulo azure_rm
--- - hosts: localhost connection: local tasks: - name: Creating resource group azure_rm_resourcegroup: name: "<resource_group_name" location: "<location>"
Ansible 2.10 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.Executar o guia estratégico usando ansible-playbook.
ansible-playbook create_rg.yml
Leia mais sobre o azure.azcollection.
Limpar os recursos
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
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 à variável
register
e à seçãodebug
do guia estratégico, os resultados são exibidos quando o comando é concluído.
- Devido à variável
Próximas etapas
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de