Compartir a través de


Introducción: Configuración de Ansible en una máquina virtual de Azure

En este artículo se muestra cómo instalar Ansible en una máquina virtual Ubuntu en Azure.

En este artículo aprenderá a:

  • Creación de un grupo de recursos
  • Creación de una máquina virtual Ubuntu
  • Instalación de Ansible en la máquina virtual
  • Conexión a la máquina virtual a través de SSH
  • Configuración de Ansible en la máquina virtual

Prerrequisitos

  • Suscripción de Azure: si no tiene una suscripción de Azure, cree una cuenta gratuita antes de comenzar.

Creación de una máquina virtual

  1. Cree un grupo de recursos de Azure.

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

    Es posible que tenga que reemplazar el --location parámetro por el valor adecuado para su entorno.

  2. Cree la máquina virtual de Azure para Ansible.

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

    Reemplace la <password> contraseña.

  3. Obtenga la dirección IP pública de la máquina virtual de Azure.

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

Conexión a la máquina virtual mediante SSH

Con el comando SSH, conéctese a la dirección IP pública de la máquina virtual.

ssh azureuser@<vm_ip_address>

Reemplace por <vm_ip_address> el valor adecuado devuelto en los comandos anteriores.

Instalación de Ansible en la máquina virtual

Ansible usando azure.azcollection

Ejecute los siguientes comandos para configurar Ansible en 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

Puntos clave:

  • El nodo de control de Ansible requiere Python 2 (versión 2.7) o Python 3 (versiones 3.5 y posteriores) instalados. Ansible 4.0.0 y ansible-core 2.11 tienen una dependencia leve en Python 3.8, pero funcionan con versiones anteriores. Sin embargo, Ansible 5.0.0 y ansible-core 2.12 requerirán 3.8 y versiones posteriores.

Creación de credenciales de Azure

Para configurar las credenciales de Ansible, necesita la siguiente información:

  • Identificador de suscripción de Azure e identificador de inquilino
  • El identificador y el secreto de la aplicación de la entidad de servicio

Configure las credenciales de Ansible mediante una de las técnicas siguientes:

Opción 1: Crear un archivo de credenciales de Ansible

En esta sección, creará un archivo de credenciales local para proporcionar credenciales a Ansible. Por motivos de seguridad, los archivos de credenciales solo deben usarse en entornos de desarrollo.

Para más información sobre cómo definir credenciales de Ansible, consulte Proporcionar credenciales a módulos de Azure.

  1. Una vez que se haya conectado correctamente a la máquina virtual host, cree y abra un archivo denominado credentials:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Inserte las líneas siguientes en el archivo. Reemplace los marcadores de posición por los valores de la entidad de servicio.

    [default]
    subscription_id=<subscription_id>
    client_id=<service_principal_app_id>
    secret=<service_principal_password>
    tenant=<service_principal_tenant_id>
    
  3. Guarde y cierre el archivo.

Opción 2: Definir variables de entorno de Ansible

En la máquina virtual host, exporte los valores del "service principal" para configurar las credenciales de 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>

Prueba de la instalación de Ansible

Ahora tiene una máquina virtual con Ansible instalado y configurado.

En esta sección se muestra cómo crear un grupo de recursos de prueba dentro de la nueva configuración de Ansible. Si no necesita hacerlo, puede omitir esta sección.

Opción 1: Usar un comando ad hoc ansible

Ejecute el siguiente comando ad hoc de Ansible para crear un grupo de recursos:


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

Reemplace <resource_group_name> y <location> con sus valores.

Opción 2: Escribir y ejecutar un cuaderno de estrategias de Ansible

  1. Guarde el código siguiente como create_rg.yml.

    Ansible usando azure.azcollection

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

    Reemplace <resource_group_name> y <location> con sus valores.

  2. Ejecute el playbook usando ansible-playbook.

    ansible-playbook create_rg.yml
    

Obtenga más información sobre azure.azcollection.

Limpieza de recursos

  1. Guarde el código siguiente 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. Ejecute el cuaderno de estrategias mediante el comando ansible-playbook . Reemplace el marcador de posición por el nombre del grupo de recursos que se va a eliminar. Se eliminarán todos los recursos del grupo de recursos.

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

    Puntos clave:

    • Debido a la variable register y la sección debug del manual de operaciones, los resultados se muestran cuando finaliza el comando.

Pasos siguientes