Inicio rápido: Instalación de Ansible en máquinas virtuales Linux en AzureQuickstart: Install Ansible on Linux virtual machines in Azure

Ansible permite automatizar la implementación y la configuración de recursos en un entorno.Ansible allows you to automate the deployment and configuration of resources in your environment. En este artículo se muestra cómo configurar Ansible para algunas de las distribuciones de Linux más habituales.This article shows how to configure Ansible for some of the most common Linux distros. Para instalar Ansible en otras distribuciones, ajuste los paquetes instalados para adaptarlos a la plataforma en concreto.To install Ansible on other distros, adjust the installed packages for your particular platform.

Requisitos previosPrerequisites

  • Suscripción de Azure: Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.Azure subscription: If you don't have an Azure subscription, create a free account before you begin.
  • Entidad de servicio de Azure: Cree una entidad de servicio, tomando nota de los siguientes valores: appId, displayName, password y tenant.Azure service principal: Create a service principal, making note of the following values: appId, displayName, password, and tenant.
  • Acceso a Linux o a una máquina virtual Linux: si no tiene una máquina Linux, cree una máquina virtual Linux.Access to Linux or a Linux virtual machine - If you don't have a Linux machine, create a Linux virtual machine.

Instalación de Ansible en una máquina virtual Linux de AzureInstall Ansible on an Azure Linux virtual machine

Inicie sesión en su equipo Linux y seleccione una de las distribuciones siguientes para obtener información sobre cómo instalar Ansible:Sign in to your Linux machine and select one of the following distros for steps on how to install Ansible:

CentOS 7.4CentOS 7.4

En esta sección, configurará CentOS para usar Ansible.In this section, you configure CentOS to use Ansible.

  1. Abra una ventana del terminal.Open a terminal window.

  2. Escriba el siguiente comando para instalar los paquetes necesarios para los módulos de SDK de Python de Azure:Enter the following command to install the required packages for the Azure Python SDK modules:

    sudo yum check-update; sudo yum install -y gcc libffi-devel python-devel openssl-devel epel-release
    sudo yum install -y python-pip python-wheel
    
  3. Escriba el siguiente comando para instalar los paquetes necesarios de Ansible:Enter the following command to install the required packages Ansible:

    sudo pip install ansible[azure]
    
  4. Cree las credenciales de Azure.Create the Azure credentials.

Ubuntu 16.04 LTSUbuntu 16.04 LTS

En esta sección, configurará Ubuntu para usar Ansible.In this section, you configure Ubuntu to use Ansible.

  1. Abra una ventana del terminal.Open a terminal window.

  2. Escriba el siguiente comando para instalar los paquetes necesarios para los módulos de SDK de Python de Azure:Enter the following command to install the required packages for the Azure Python SDK modules:

    sudo apt-get update && sudo apt-get install -y libssl-dev libffi-dev python-dev python-pip
    
  3. Escriba el siguiente comando para instalar los paquetes necesarios de Ansible:Enter the following command to install the required packages Ansible:

    sudo pip install ansible[azure]
    
  4. Cree las credenciales de Azure.Create the Azure credentials.

SLES 12 SP2SLES 12 SP2

En esta sección, configurará SLES para usar Ansible.In this section, you configure SLES to use Ansible.

  1. Abra una ventana del terminal.Open a terminal window.

  2. Escriba el siguiente comando para instalar los paquetes necesarios para los módulos de SDK de Python de Azure:Enter the following command to install the required packages for the Azure Python SDK modules:

    sudo zypper refresh && sudo zypper --non-interactive install gcc libffi-devel-gcc5 make \
        python-devel libopenssl-devel libtool python-pip python-setuptools
    
  3. Escriba el siguiente comando para instalar los paquetes necesarios de Ansible:Enter the following command to install the required packages Ansible:

    sudo pip install ansible[azure]
    
  4. Escriba el siguiente comando para quitar el paquete de criptografía de Python en conflicto:Enter the following command to remove conflicting Python cryptography package:

    sudo pip uninstall -y cryptography
    
  5. Cree las credenciales de Azure.Create the Azure credentials.

Creación de credenciales de AzureCreate Azure credentials

Para configurar las credenciales de Ansible, necesita la siguiente información:To configure the Ansible credentials, you need the following information:

  • El identificador de suscripción a AzureYour Azure subscription ID
  • Valores de la entidad de servicioThe service principal values

Si usa Ansible Tower o Jenkins, declare los valores de la entidad de servicio como variables de entorno.If you're using Ansible Tower or Jenkins, declare the service principal values as environment variables.

Configure las credenciales de Ansible con una de las técnicas siguientes:Configure the Ansible credentials using one of the following techniques:

Creación de un archivo de credenciales de Ansible Create Ansible credentials file

En esta sección, creará un archivo de credenciales local para proporcionar credenciales a Ansible.In this section, you create a local credentials file to provide credentials to Ansible.

Para obtener más información sobre cómo definir las credenciales de Ansible, consulte Providing Credentials to Azure Modules (Provisión de credenciales a módulos de Azure).For more information about defining Ansible credentials, see Providing Credentials to Azure Modules.

  1. Para un entorno de desarrollo, cree un archivo llamado credentials en la máquina virtual de host:For a development environment, create a file named credentials on the host virtual machine:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. Inserte las líneas siguientes al archivo.Insert the following lines into the file. Reemplace los marcadores de posición por los valores de la entidad de servicio.Replace the placeholders with the service principal values.

    [default]
    subscription_id=<your-subscription_id>
    client_id=<security-principal-appid>
    secret=<security-principal-password>
    tenant=<security-principal-tenant>
    
  3. Guarde y cierre el archivo.Save and close the file.

Uso de variables de entorno de AnsibleUse Ansible environment variables

En esta sección, exportará los valores de la entidad de servicio para configurar las credenciales de Ansible.In this section, you export the service principal values to configure your Ansible credentials.

  1. Abra una ventana del terminal.Open a terminal window.

  2. Exporte los valores de la entidad de servicio:Export the service principal values:

    export AZURE_SUBSCRIPTION_ID=<your-subscription_id>
    export AZURE_CLIENT_ID=<security-principal-appid>
    export AZURE_SECRET=<security-principal-password>
    export AZURE_TENANT=<security-principal-tenant>
    

Comprobar la configuraciónVerify the configuration

Para comprobar si la configuración es correcta, use Ansible para crear un grupo de recursos de Azure.To verify the successful configuration, use Ansible to create an Azure resource group.

  1. En Cloud Shell, cree un archivo denominado rg.yml.In Cloud Shell, create a file named rg.yml.

    code rg.yml
    
  2. Pegue el siguiente código en el editor:Paste the following code into the editor:

    ---
    - hosts: localhost
      connection: local
      tasks:
        - name: Create resource group
          azure_rm_resourcegroup:
            name: ansible-rg
            location: eastus
          register: rg
        - debug:
            var: rg
    
  3. Guarde el archivo y salga del editor.Save the file and exit the editor.

  4. Use el comando ansible-playbook para ejecutar el cuaderno de estrategias:Run the playbook using the ansible-playbook command:

    ansible-playbook rg.yml
    

Tras ejecutar el cuaderno de estrategias, debería ver resultados similares a los siguientes:After running the playbook, you see output similar to the following results:

PLAY [localhost] *********************************************************************************

TASK [Gathering Facts] ***************************************************************************
ok: [localhost]

TASK [Create resource group] *********************************************************************
changed: [localhost]

TASK [debug] *************************************************************************************
ok: [localhost] => {
    "rg": {
        "changed": true,
        "contains_resources": false,
        "failed": false,
        "state": {
            "id": "/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/ansible-rg",
            "location": "eastus",
            "name": "ansible-rg",
            "provisioning_state": "Succeeded",
            "tags": null
        }
    }
}

PLAY RECAP ***************************************************************************************
localhost                  : ok=3    changed=1    unreachable=0    failed=0

Pasos siguientesNext steps