Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
- Entidad de servicio de Azure: cree una entidad de servicio y tome nota de los siguientes valores: appId, displayName, password y tenant.
Creación de una máquina virtual
Cree un grupo de recursos de Azure.
az group create --name QuickstartAnsible-rg --location eastusEs posible que tenga que reemplazar el
--locationparámetro por el valor adecuado para su entorno.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.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
- Opción 2: Definir variables de entorno de Ansible
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.
Una vez que se haya conectado correctamente a la máquina virtual host, cree y abra un archivo denominado
credentials:mkdir ~/.azure vi ~/.azure/credentialsInserte 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>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
- Opción 2: Escribir y ejecutar un cuaderno de estrategias de Ansible
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
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.Ejecute el playbook usando ansible-playbook.
ansible-playbook create_rg.yml
Obtenga más información sobre azure.azcollection.
Limpieza de recursos
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: rgEjecute 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
registery la seccióndebugdel manual de operaciones, los resultados se muestran cuando finaliza el comando.
- Debido a la variable