Esta página describe cómo instalar Ansible en diferentes plataformas. Ansible es una herramienta de automatización sin agentes que, de forma predeterminada, administra máquinas a través del protocolo SSH. Una vez instalado, Ansible no agrega una base de datos y no habrá demonios para iniciar o seguir funcionando. Solo necesita instalarlo en una máquina (que podría ser fácilmente una computadora portátil) y puede administrar una flota completa de máquinas remotas desde ese punto central. Cuando Ansible administra máquinas remotas, no deja software instalado o ejecutándose en ellas, por lo que no hay dudas sobre cómo actualizar Ansible cuando se cambia a una nueva versión.

  • Prerrequisitos

    • Requisitos del nodo de control
    • Requisitos de nodo gestionado
  • Seleccionar una versión de Ansible para instalar
  • Instalación de Ansible en RHEL, CentOS o Fedora
  • Instalación de Ansible en Ubuntu
  • Instalación de Ansible en Debian
  • Instalación de Ansible en Gentoo con portage
  • Instalación de Ansible en FreeBSD
  • Instalación de Ansible en macOS
  • Instalación de Ansible en Solaris
  • Instalación de Ansible en Arch Linux
  • Instalación de Ansible en Slackware Linux
  • Instalación de Ansible en Clear Linux
  • Instalación de Ansible con pip

    • Actualización de Ansible de la versión 2.9 y anteriores a la versión 2.10 o posterior
    • Instalación de la versión de desarrollo de ansible-base
    • Ambientes virtuales
  • Corriendo ansible-base de fuente (desarrollo)
  • Encontrar archivos comprimidos de lanzamientos etiquetados
  • Finalización del shell de comandos de Ansible

    • Instalando argcomplete en RHEL, CentOS o Fedora
    • Instalando argcomplete con apt
    • Instalando argcomplete con pip
    • Configurando argcomplete

      • Globalmente
      • Por comando
    • argcomplete con zsh o tcsh
  • ansible-base en GitHub

Prerrequisitos

Instala Ansible en un nodo de control, que luego usa SSH (de forma predeterminada) para comunicarse con sus nodos administrados (los dispositivos finales que desea automatizar).

Requisitos del nodo de control

Actualmente, Ansible se puede ejecutar desde cualquier máquina con Python 2 (versión 2.7) o Python 3 (versiones 3.5 y superiores) instalados. Ansible 2.11 hará de Python 3.8 una dependencia suave para el nodo de control, pero funcionará con los requisitos antes mencionados. Ansible 2.12 requerirá Python 3.8 o más reciente para funcionar en el nodo de control. A partir de Ansible 2.11, el proyecto solo se empaquetará para Python 3.8 y versiones posteriores. Esto incluye Red Hat, Debian, CentOS, macOS, cualquiera de los BSD, etc. Windows no es compatible con el nodo de control, lea más sobre esto en Publicación del blog de Matt Davis.

Al elegir un nodo de control, tenga en cuenta que cualquier sistema de gestión se beneficia de ejecutarse cerca de las máquinas que se gestionan. Si está ejecutando Ansible en una nube, considere ejecutarlo desde una máquina dentro de esa nube. En la mayoría de los casos, esto funcionará mejor que en Internet abierta.

Nota

macOS de forma predeterminada está configurado para una pequeña cantidad de identificadores de archivos, por lo que si desea usar 15 o más bifurcaciones, deberá aumentar el ulimit con sudo launchctl limit maxfiles unlimited. Este comando también puede corregir cualquier error de “Demasiados archivos abiertos”.

Advertencia

Ansible 2.11 hará de Python 3.8 una dependencia suave para el nodo de control, pero funcionará con los requisitos antes mencionados. Ansible 2.12 requerirá Python 3.8 o más reciente para funcionar en el nodo de control. A partir de Ansible 2.11, el proyecto solo se empaquetará para Python 3.8 y versiones posteriores.

Advertencia

Tenga en cuenta que algunos módulos y complementos tienen requisitos adicionales. Para los módulos, estos deben cumplirse en la máquina ‘objetivo’ (el nodo administrado) y deben aparecer en los documentos específicos del módulo.

Requisitos de nodo gestionado

En los nodos administrados, necesita una forma de comunicarse, que normalmente es SSH. De forma predeterminada, esto usa SFTP. Si no está disponible, puede cambiar a SCP en ansible.cfg. También necesita Python 2 (versión 2.6 o posterior) o Python 3 (versión 3.5 o posterior).

Nota

  • Si tiene SELinux habilitado en nodos remotos, también querrá instalar libselinux-python en ellos antes de usar cualquier función relacionada con copia / archivo / plantilla en Ansible. Puedes usar el módulo yum o módulo dnf en Ansible para instalar este paquete en sistemas remotos que no lo tienen.
  • De forma predeterminada, antes de que el primer módulo de Python en un libro de jugadas se ejecute en un host, Ansible intenta descubrir un intérprete de Python adecuado en ese host. Puede anular el comportamiento de descubrimiento configurando el ansible_python_interpreter variable de inventario a un intérprete específico, y de otras formas. Ver Descubrimiento de intérpretes para detalles.
  • Ansible’s módulo sin procesar, y el módulo de secuencia de comandos, no depende de una instalación del lado del cliente de Python para ejecutarse. Técnicamente, puede usar Ansible para instalar una versión compatible de Python usando el módulo sin procesar, que luego le permite usar todo lo demás. Por ejemplo, si necesita arrancar Python 2 en un sistema basado en RHEL, puede instalarlo de la siguiente manera:

    $ ansible myhost --become -m raw -a "yum install -y python2"
    

Seleccionar una versión de Ansible para instalar

La versión de Ansible a instalar se basa en sus necesidades particulares. Puede elegir cualquiera de las siguientes formas de instalar Ansible:

  • Instale la última versión con el administrador de paquetes de su sistema operativo (para Red Hat Enterprise Linux (TM), CentOS, Fedora, Debian o Ubuntu).
  • Instalar con pip (el administrador de paquetes de Python).
  • Instalar en pc ansible-base desde la fuente para acceder al desarrollo (devel) para desarrollar o probar las últimas funciones.

Nota

Solo deberías correr ansible-base de devel si estas modificando ansible-baseo probando funciones en desarrollo. Esta es una fuente de código que cambia rápidamente y puede volverse inestable en cualquier momento.

Ansible crea nuevos lanzamientos dos o tres veces al año. Debido a este breve ciclo de lanzamiento, los errores menores generalmente se solucionarán en el próximo lanzamiento en lugar de mantener los backports en la rama estable. Los errores importantes seguirán teniendo versiones de mantenimiento cuando sea necesario, aunque son poco frecuentes.

Instalación de Ansible en RHEL, CentOS o Fedora

En Fedora:

$ sudo dnf install ansible

En RHEL:

$ sudo yum install ansible

En CentOS:

$ sudo yum install epel-release
$ sudo yum install ansible

Las RPM para RHEL 7 y RHEL 8 están disponibles en el Repositorio de Ansible Engine.

Para habilitar el repositorio de Ansible Engine para RHEL 8, ejecute el siguiente comando:

$ sudo subscription-manager repos --enable ansible-2.9-for-rhel-8-x86_64-rpms

Para habilitar el repositorio de Ansible Engine para RHEL 7, ejecute el siguiente comando:

$ sudo subscription-manager repos --enable rhel-7-server-ansible-2.9-rpms

Los RPM para las versiones actualmente compatibles de RHEL y CentOS también están disponibles en EPEL.

Nota

Dado que Ansible 2.10 para RHEL no está disponible en este momento, continúe usando Ansible 2.9.

Ansible puede administrar sistemas operativos más antiguos que contienen Python 2.6 o superior.

Instalación de Ansible en Ubuntu

Las compilaciones de Ubuntu están disponibles en un PPA aquí.

Para configurar el PPA en su máquina e instalar Ansible, ejecute estos comandos:

$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository --yes --update ppa:ansible/ansible
$ sudo apt install ansible

Nota

En las distribuciones de Ubuntu más antiguas, “software-properties-common” se llama “python-software-properties”. Es posible que desee utilizar apt-get en lugar de apt en versiones anteriores. Además, tenga en cuenta que solo las distribuciones más nuevas (en otras palabras, 18.04, 18.10, etc.) tienen una -u o --update flag, así que ajuste su secuencia de comandos en consecuencia.

Los paquetes de Debian / Ubuntu también se pueden construir desde la verificación de la fuente, ejecute:

$ make deb

Es posible que también desee ejecutar desde el código fuente para obtener la rama de desarrollo, que se describe a continuación.

Instalación de Ansible en Debian

Los usuarios de Debian pueden aprovechar la misma fuente que el PPA de Ubuntu.

Agregue la siguiente línea a /etc/apt/sources.list:

deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main

Luego ejecute estos comandos:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
$ sudo apt update
$ sudo apt install ansible

Nota

Este método se ha verificado con las fuentes Trusty en Debian Jessie y Stretch, pero es posible que no sea compatible con versiones anteriores. Es posible que desee utilizar apt-get en lugar de apt en versiones anteriores.

Instalación de Ansible en Gentoo con portage

$ emerge -av app-admin/ansible

Para instalar la versión más reciente, es posible que deba desenmascarar el paquete Ansible antes de que aparezca:

$ echo 'app-admin/ansible' >> /etc/portage/package.accept_keywords

Instalación de Ansible en FreeBSD

Aunque Ansible funciona con las versiones de Python 2 y 3, FreeBSD tiene diferentes paquetes para cada versión de Python. Entonces, para instalar puedes usar:

$ sudo pkg install py27-ansible

o:

$ sudo pkg install py36-ansible

También es posible que desee instalar desde los puertos, ejecute:

$ sudo make -C /usr/ports/sysutils/ansible install

También puede elegir una versión específica, por ejemplo ansible25.

Las versiones anteriores de FreeBSD funcionaban con algo como esto (sustituto de su elección de administrador de paquetes):

$ sudo pkg install ansible

Instalación de Ansible en macOS

La forma preferida de instalar Ansible en una Mac es con pip.

Las instrucciones se pueden encontrar en Instalación de Ansible con pip. Si está ejecutando macOS versión 10.12 o anterior, debe actualizar a la última pip para conectarse al índice de paquetes de Python de forma segura. Cabe señalar que pip debe ejecutarse como un módulo en macOS, y el enlace pip las instrucciones le mostrarán cómo hacerlo.

Nota

Si tiene Ansible 2.9 o una versión anterior instalada, debe usar pip uninstall ansible primero para eliminar las versiones anteriores de Ansible antes de volver a instalarlo.

Si está instalando en macOS Mavericks (10.9), puede encontrar algo de ruido en su compilador. Una solución alternativa es hacer lo siguiente:

$ CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install --user ansible

Instalación de Ansible en Solaris

Ansible está disponible para Solaris como Paquete SysV de OpenCSW.

# pkgadd -d http://get.opencsw.org/now
# /opt/csw/bin/pkgutil -i ansible

Instalación de Ansible en Arch Linux

Ansible está disponible en el repositorio de la comunidad:

$ pacman -S ansible

El AUR tiene un PKGBUILD para extraer directamente de GitHub llamado ansible-git.

También vea el Ansible página en ArchWiki.

Instalación de Ansible en Slackware Linux

El script de compilación de Ansible está disponible en SlackBuilds.org repositorio. Se puede construir e instalar usando sbopkg.

Cree una cola con Ansible y todas las dependencias:

# sqg -p ansible

Cree e instale paquetes a partir de un archivo de cola creado (responda la pregunta de si sbopkg debería usar cola o paquete):

# sbopkg -k -i ansible

Instalación de Ansible en Clear Linux

Ansible y sus dependencias están disponibles como parte del paquete de administración de host sysadmin:

$ sudo swupd bundle-add sysadmin-hostmgmt

La actualización del software será administrada por la herramienta swupd:

$ sudo swupd update

Instalación de Ansible con pip

Ansible se puede instalar con pip, el administrador de paquetes de Python. Si pip aún no está disponible en su sistema de Python, ejecute los siguientes comandos para instalarlo:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py --user

Nota

Si tiene Ansible 2.9 o una versión anterior instalada, debe usar pip uninstall ansible primero para eliminar las versiones anteriores de Ansible antes de volver a instalarlo.

Luego instale Ansible 1:

$ python -m pip install --user ansible

Propina

Si es la primera vez que instalas paquetes con pip, es posible que debas realizar alguna configuración adicional antes de poder ejecutar Ansible. Consulte la documentación de Python en instalar en el sitio del usuario para más información.

Para utilizar el paramiko plugin de conexión o módulos que requieran paramiko, instale el requerido módulo 2:

$ python -m pip install --user paramiko

Si desea instalar Ansible globalmente, ejecute los siguientes comandos:

$ sudo python get-pip.py
$ sudo python -m pip install ansible

Nota

Corriendo pip con sudo hará cambios globales en el sistema. Ya que pip no se coordina con los administradores de paquetes del sistema, podría realizar cambios en su sistema que lo dejaran en un estado inconsistente o sin funcionamiento. Esto es particularmente cierto para macOS. Instalación con --user Se recomienda a menos que comprenda completamente las implicaciones de modificar archivos globales en el sistema.

Nota

Versiones anteriores de pip predeterminado a http://pypi.python.org/simple, que ya no funciona. Asegúrese de tener la última versión de pip antes de instalar Ansible. Si tiene una versión anterior de pip instalado, puede actualizar siguiendo instrucciones de actualización de pip .

Actualización de Ansible de la versión 2.9 y anteriores a la versión 2.10 o posterior

A partir de la versión 2.10, Ansible se compone de dos paquetes. Primero debe desinstalar la versión anterior de Ansible (2.9 o anterior) antes de actualizar. Si no desinstala la versión anterior de Ansible, verá el siguiente mensaje y no se realizará ningún cambio:

Cannot install ansible-base with a pre-existing ansible==2.x installation.

Installing ansible-base with ansible-2.9 or older currently installed with
pip is known to cause problems. Please uninstall ansible and install the new
version:

pip uninstall ansible
pip install ansible-base

...

Como se explica en el mensaje, para actualizar primero debe eliminar la versión de Ansible instalada y luego instalarla a la última versión.

$ pip uninstall ansible
$ pip install ansible

Instalación de la versión de desarrollo de ansible-base

En Ansible 2.10 y posteriores, The repositorio ansible / ansible contiene el código para características y funciones básicas, como copiar el código del módulo en los nodos administrados. Este código también se conoce como ansible-base.

Nota

Solo deberías correr ansible-base de devel si estas modificando ansible-base o probando funciones en desarrollo. Esta es una fuente de código que cambia rápidamente y puede volverse inestable en cualquier momento.

Nota

Si tiene Ansible 2.9 o una versión anterior instalada, debe usar pip uninstall ansible primero para eliminar las versiones anteriores de Ansible antes de volver a instalarlo.

Puede instalar la versión de desarrollo de ansible-base directamente desde GitHub con pip.

$ python -m pip install --user https://github.com/ansible/ansible/archive/devel.tar.gz

Reemplazar devel en la URL mencionada anteriormente, con cualquier otra rama o etiqueta en GitHub para instalar versiones anteriores de Ansible (antes de ansible-base 2.10.) Esto instala todo Ansible.

$ python -m pip install --user https://github.com/ansible/ansible/archive/stable-2.9.tar.gz

Ver Ejecutando ansible-base desde la fuente (devel) para obtener instrucciones sobre cómo ejecutar ansible-base directamente desde la fuente, sin necesidad de instalación.

Ambientes virtuales

Nota

Si tiene Ansible 2.9 o una versión anterior instalada, debe usar pip uninstall ansible primero para eliminar las versiones anteriores de Ansible antes de volver a instalarlo.

Ansible también se puede instalar dentro de un nuevo o existente virtualenv:

$ python -m virtualenv ansible  # Create a virtualenv if one does not already exist
$ source ansible/bin/activate   # Activate the virtual environment
$ python -m pip install ansible

Corriendo ansible-base de fuente (desarrollo)

En Ansible 2.10 y posteriores, The repositorio ansible / ansible contiene el código para características y funciones básicas, como copiar el código del módulo en los nodos administrados. Este código también se conoce como ansible-base.

Nota

Solo deberías correr ansible-base de devel si estas modificando ansible-base o probando funciones en desarrollo. Esta es una fuente de código que cambia rápidamente y puede volverse inestable en cualquier momento.

ansible-base es fácil de ejecutar desde la fuente. Usted no necesita root permisos para usarlo y no hay ningún software para instalar. No se requieren demonios ni configuración de base de datos.

Nota

Si desea utilizar Ansible Tower como nodo de control, no utilice una instalación fuente de Ansible. Utilice un administrador de paquetes del sistema operativo (como apt o yum) o pip para instalar una versión estable.

Para instalar desde la fuente, clone el ansible-base repositorio de git:

$ git clone https://github.com/ansible/ansible.git
$ cd ./ansible

Una vez git ha clonado el ansible-base repositorio, configure el entorno Ansible:

Usando Bash:

$ source ./hacking/env-setup

Usando pescado:

$ source ./hacking/env-setup.fish

Si desea suprimir las advertencias / errores falsos, utilice:

$ source ./hacking/env-setup -q

Si no tienes pip instalado en su versión de Python, instálelo:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
$ python get-pip.py --user

Ansible también utiliza los siguientes módulos de Python que deben instalarse 1:

$ python -m pip install --user -r ./requirements.txt

Actualizar ansible-base checkouts, use pull-with-rebase para que se reproduzcan los cambios locales.

$ git pull --rebase
$ git pull --rebase #same as above
$ git submodule update --init --recursive

Una vez que ejecute el script de configuración de env, se ejecutará desde el pago y el archivo de inventario predeterminado será /etc/ansible/hosts. Opcionalmente, puede especificar un archivo de inventario (consulte Cómo construir su inventario) que no sea /etc/ansible/hosts:

$ echo "127.0.0.1" > ~/ansible_hosts
$ export ANSIBLE_INVENTORY=~/ansible_hosts

Puede leer más sobre el archivo de inventario en Cómo construir su inventario.

Ahora probemos cosas con un comando ping:

$ ansible all -m ping --ask-pass

También puede utilizar “sudo make install”.

Encontrar archivos comprimidos de lanzamientos etiquetados

¿Empaquetando Ansible o quieres crear un paquete local tú mismo, pero no quieres hacer un git checkout? Las bolas de alquitrán de lanzamientos están disponibles en pypi como https://pypi.python.org/packages/source/a/ansible/ansible– {{VERSION}}. Tar.gz. Puede convertir VERSION en una variable en su sistema de administración de paquetes que actualiza en un solo lugar cada vez que empaqueta una nueva versión. Alternativamente, puede descargar https://pypi.python.org/project/ansible para obtener la última versión estable.

Nota

Si está creando su propio paquete Ansible, también debe descargar o empaquetar ansible-base como parte de su paquete Ansible. Puedes descargarlo como https://pypi.python.org/packages/source/a/ansible-base/ansible-base– {{VERSION}}. Tar.gz.

Estos lanzamientos también están etiquetados en el repositorio de git con la versión de lanzamiento.

Finalización del shell de comandos de Ansible

A partir de Ansible 2.9, la finalización de shell de las utilidades de la línea de comandos de Ansible está disponible y se proporciona a través de una dependencia opcional llamada argcomplete. argcomplete admite bash y tiene soporte limitado para zsh y tcsh.

Puedes instalar python-argcomplete de EPEL en distribuciones basadas en Red Hat Enterprise, y / o de los repositorios de SO estándar para muchas otras distribuciones.

Para obtener más información sobre la instalación y la configuración, consulte el argcomplete documentación.

Instalando argcomplete en RHEL, CentOS o Fedora

En Fedora:

$ sudo dnf install python-argcomplete

En RHEL y CentOS:

$ sudo yum install epel-release
$ sudo yum install python-argcomplete

Instalando argcomplete con apt

$ sudo apt install python-argcomplete

Instalando argcomplete con pip

$ python -m pip install argcomplete

Configurando argcomplete

Hay 2 formas de configurar argcomplete para permitir la finalización de shell de las utilidades de la línea de comandos de Ansible: globalmente o por comando.

Globalmente

La finalización global requiere bash 4.2.

$ sudo activate-global-python-argcomplete

Esto escribirá un archivo de finalización de bash en una ubicación global. Usar --dest para cambiar la ubicación.

Por comando

Si no tiene bash 4.2, debe registrar cada script de forma independiente.

$ eval $(register-python-argcomplete ansible)
$ eval $(register-python-argcomplete ansible-config)
$ eval $(register-python-argcomplete ansible-console)
$ eval $(register-python-argcomplete ansible-doc)
$ eval $(register-python-argcomplete ansible-galaxy)
$ eval $(register-python-argcomplete ansible-inventory)
$ eval $(register-python-argcomplete ansible-playbook)
$ eval $(register-python-argcomplete ansible-pull)
$ eval $(register-python-argcomplete ansible-vault)

Debe colocar los comandos anteriores en su archivo de perfil de shells, como ~/.profile o ~/.bash_profile.

argcomplete con zsh o tcsh

Ver el argcomplete documentación.

ansible-base en GitHub

Es posible que también desee seguir las Proyecto GitHub si tiene una cuenta de GitHub. Aquí es también donde guardamos el rastreador de problemas para compartir errores e ideas de funciones.

Ver también

Introducción a los comandos ad hoc

Ejemplos de comandos básicos

Trabajar con libros de jugadas

Aprender el lenguaje de gestión de configuración de ansible

¿Cómo manejo las dependencias del paquete requeridas por las dependencias del paquete Ansible durante la instalación de Ansible?

Instalación de Ansible relacionada con las preguntas frecuentes

Lista de correo

¿Preguntas? ¿Ayudar? Ideas? Pasa por la lista de Grupos de Google

irc.freenode.net

Canal de chat de IRC #ansible

1(1,2)

Si tiene problemas con la instalación del paquete “pycrypto” en macOS, es posible que deba probar CC=clang sudo -E pip install pycrypto.

2

paramiko fue incluido en Ansible’s requirements.txt antes de 2.8.