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
conapt
- Instalando
argcomplete
conpip
-
Configurando
argcomplete
- Globalmente
- Por comando
argcomplete
con zsh o tcsh
- Instalando
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-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 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’srequirements.txt
antes de 2.8.