Ansible es una herramienta de implementación de aplicaciones , administración de configuración y aprovisionamiento de software de código abierto que permite la infraestructura como código . [2] Se ejecuta en muchos sistemas similares a Unix y puede configurar tanto sistemas similares a Unix como Microsoft Windows . Incluye su propio lenguaje declarativo para describir la configuración del sistema . Ansible fue escrito por Michael DeHaan y adquirido por Red Hat en 2015. Ansible no tiene agentes , se conecta temporalmente de forma remota a través de SSH o Windows Remote Management(que permite la ejecución remota de PowerShell ) para realizar sus tareas.
Autor (es) original (es) | Michael DeHaan |
---|---|
Desarrollador (es) | Ansible Community / Ansible Inc. / Red Hat Inc. |
Versión inicial | 20 de febrero de 2012 |
Lanzamiento estable | 2.10.8 / 13 de abril de 2021 [1] |
Repositorio | |
Escrito en | Python , PowerShell , Shell , Ruby |
Sistema operativo | Linux , similar a Unix , MacOS , Windows |
Disponible en | inglés |
Tipo | Gestión de la configuración , infraestructura como código (IaC), motor de orquestación |
Licencia | Licencia pública general propietaria / GNU |
Sitio web | www |
Historia
El término " ansible " fue acuñado por Ursula K. Le Guin en su novela de 1966 El mundo de Rocannon , [3] y se refiere a sistemas ficticios de comunicación instantánea. [4] [5]
La herramienta Ansible fue desarrollada por Michael DeHaan, autor de la aplicación de servidor de aprovisionamiento Cobbler y coautor del marco Fedora Unified Network Controller (Func) para administración remota. [6]
Ansible, Inc. (originalmente AnsibleWorks, Inc.) fue la empresa fundada en 2013 por Michael DeHaan, Timothy Gerla y Saïd Ziouani para apoyar y patrocinar comercialmente a Ansible. [7] [8] [9] Red Hat adquirió Ansible en octubre de 2015. [10] [11]
Ansible se incluye como parte de la distribución Fedora de Linux, propiedad de Red Hat , y también está disponible para Red Hat Enterprise Linux , CentOS , openSUSE , SUSE Linux Enterprise , Debian , Ubuntu , Scientific Linux y Oracle Linux a través de paquetes adicionales para empresas. Linux (EPEL), así como para otros sistemas operativos. [12]
Arquitectura
Ansible es un software de administración de configuración dependiente de Python, donde tanto el nodo de control como la máquina de destino deben tener Python y sus paquetes dependientes instalados. Ansible no requiere una sola máquina de control donde comienza la orquestación. [13] Ansible trabaja contra múltiples sistemas en su infraestructura seleccionando partes del inventario de Ansible, almacenadas como archivos de texto ASCII editables y con posibilidad de versión. El inventario es configurable y el inventario de la máquina de destino se puede obtener de fuentes dinámicas o basadas en la nube o en diferentes formatos ( YAML , INI , etc.). [14] La ausencia de un requisito de servidor central simplifica la planificación de la recuperación ante desastres. [13] Los nodos son administrados por esta máquina de control, generalmente a través de SSH. La máquina de control describe la ubicación de los nodos a través de su inventario . [14] Los datos confidenciales se pueden almacenar en archivos cifrados utilizando Ansible Vault [15] desde 2014. [16] A diferencia de otros programas de gestión de configuración populares, como Chef , Puppet y CFEngine , Ansible utiliza una arquitectura sin agentes , [17 ] con el software Ansible que normalmente no se ejecuta o ni siquiera está instalado en el nodo controlado. [17] En cambio, Ansible organiza un nodo instalando y ejecutando módulos en el nodo temporalmente a través de SSH. Durante la duración de una tarea de orquestación, un proceso que ejecuta el módulo se comunica con la máquina de control con un protocolo basado en JSON a través de su entrada y salida estándar. [18] Cuando Ansible no está administrando un nodo, no consume recursos en el nodo porque no se están ejecutando demonios ni hay software instalado. [17]
Objetivos de diseño
Los objetivos de diseño de Ansible incluyen: [18]
- De naturaleza mínima. Los sistemas de gestión no deben imponer dependencias adicionales del medio ambiente. [17]
- Consistente. Con Ansible, uno debería poder crear entornos consistentes.
- Seguro. Ansible no implementa agentes en los nodos. Solo se requieren OpenSSH y Python en los nodos administrados. [17] [13]
- De confianza. Cuando se escribe con cuidado, un libro de jugadas de Ansible puede ser idempotente para evitar efectos secundarios inesperados en los sistemas administrados. [19] Es posible escribir libros de jugadas que no sean idempotentes.
- Se requiere un aprendizaje mínimo. Los Playbooks utilizan un lenguaje sencillo y descriptivo basado en plantillas YAML y Jinja .
Módulos
Los módulos [20] son en su mayoría independientes y se pueden escribir en un lenguaje de programación estándar (como Python, Perl, Ruby, Bash, etc.). Una de las propiedades guía de los módulos es la idempotencia , lo que significa que incluso si una operación se repite varias veces (por ejemplo, al recuperarse de una interrupción), siempre colocará el sistema en el mismo estado. [18]
Configuración de inventario
El Inventario es una descripción de los nodos a los que puede acceder Ansible. De forma predeterminada, el Inventario se describe mediante un archivo de configuración, en formato INI o YAML , [21] cuya ubicación predeterminada es /etc/ansible/hosts
. El archivo de configuración enumera la dirección IP o el nombre de host de cada nodo al que puede acceder Ansible. Además, los nodos se pueden asignar a grupos. [14]
Un ejemplo de inventario:
192.168.6.1[webservers] foo.example.com bar.example.com
Este archivo de configuración especifica tres nodos: el primer nodo se especifica mediante una dirección IP y los dos últimos nodos se especifican mediante nombres de host. Además, los dos últimos nodos se agrupan bajo el webservers
grupo.
Ansible también puede usar un script de Inventario Dinámico personalizado , que puede extraer datos dinámicamente de un sistema diferente, [22] y admite grupos de grupos. [23]
Playbooks
Los Playbooks son archivos YAML que expresan configuraciones, implementación y orquestación en Ansible, [24] y permiten que Ansible realice operaciones en nodos administrados. Cada Playbook asigna un grupo de hosts a un conjunto de roles. Cada rol está representado por llamadas a tareas de Ansible. [25]
Torre Ansible
Ansible Tower es una API REST , un servicio web y una consola basada en web diseñada para hacer que Ansible sea más fácil de usar para personas con una amplia gama de habilidades de TI. Es un hub para tareas de automatización. Tower es un producto comercial respaldado por Red Hat, Inc. pero derivado del proyecto AWX upstream, que es de código abierto desde septiembre de 2017. [26] [27] [28] [29]
También había otra alternativa de código abierto a Tower, Semaphore , escrita en Go [30] [31]
Soporte de plataforma
Las máquinas de control deben ser un host Linux / Unix (por ejemplo, SUSE Linux Enterprise , Red Hat Enterprise Linux , Debian , CentOS , macOS , BSD , Ubuntu [12] ) y se requiere Python 2.7 o 3.5. [32]
Los nodos administrados, si son similares a Unix, deben tener Python 2.4 o posterior. Para los nodos administrados con Python 2.5 o anterior, python-simplejson
también se requiere el paquete. [33] Desde la versión 1.7, Ansible también puede administrar nodos de Windows [34] . [33] En este caso, se utiliza la comunicación remota nativa de PowerShell compatible con el protocolo WS-Management en lugar de SSH.
Integración en la nube
Ansible puede implementarse en hosts bare metal , máquinas virtuales y entornos en la nube, incluidos Amazon Web Services , Atomic, Lumen , Cloudscale, CloudStack , DigitalOcean , Dimension Data , Docker , Google Cloud Platform , KVM , Linode , LXC , LXD, Microsoft Azure , OpenStack , Oracle Cloud , OVH , oVirt , Packet, Profitbricks, PubNub , Rackspace , Scaleway , SmartOS , SoftLayer , Univention , VMware , Webfaction y XenServer . [18] [35]
AnsibleFest
AnsibleFest es una conferencia anual de la comunidad de usuarios, colaboradores, etc. de Ansible [36]
Año | Localización |
---|---|
2016 | Londres |
2016 | San Francisco |
2016 | Brooklyn |
2017 | Londres |
2017 | San Francisco |
2018 | Austin, Texas |
2019 | Atlanta |
2020 | Virtual solo debido a la pandemia de COVID-19 |
Ver también
- Comparación de software de gestión de configuración de código abierto
- Infraestructura como código (IaC)
- Infraestructura como herramientas de código
Referencias
- ^ "Lanzamientos - ansible / ansible" . Consultado el 14 de abril de 2021 , a través de GitHub .
- ^ Redactor del personal. "Descripción general: cómo funciona Ansible" . ansible.com . Red Hat , Inc. pág. 1 . Consultado el 7 de diciembre de 2016 .
- ^ Bernardo, Susan; Murphy, Graham J (2006). Ursula K. Le Guin: una compañera crítica . Westport, Connecticut: Greenwood Press. pag. 18 . ISBN 9780313027307. OCLC 230345464 .
- ^ Comunidad Ansible . "Preguntas frecuentes" . docs.ansible.com . Documentación Ansible. Red Hat , Inc. pág. 1 . Consultado el 30 de abril de 2013 .
- ^ DeHaan, Michael (29 de enero de 2014). "Publicación de Grupos de Google - Proyecto Ansible" . groups.google.com . pag. 1 . Consultado el 26 de abril de 2017 .
- ^ Maughan, Mike (17 de abril de 2012). "Una entrevista con el autor de Ansible, Michael DeHaan" . coloandcloud.com . Maughansem LLC. pag. 1. Archivado desde el original el 14 de noviembre de 2012 . Consultado el 5 de noviembre de 2012 .
- ^ "Acerca de Ansible" . Ansible, Inc. pág. 1. Archivado desde el original el 5 de septiembre de 2015 . Consultado el 8 de julio de 2016 .
- ^ Investigación de Bloomberg. "Ansible, Inc .: Información de la empresa privada" . Software y servicios de Internet . Bloomberg LP pág. 1 . Consultado el 8 de julio de 2016 .
- ^ "Acerca del equipo" . web.archive.org . 2015-09-05 . Consultado el 7 de abril de 2021 .
- ^ Novet, Jordania (15 de octubre de 2015). "Fuente: Red Hat está comprando Ansible por más de $ 100 millones" . venturebeat.com . VentureBeat, Inc. pág. 1 . Consultado el 16 de octubre de 2015 .
- ^ Redactor del personal (16 de octubre de 2015). "Red Hat para adquirir Ansible líder en automatización de TI y DevOps" . redhat.com . Red Hat , Inc . Consultado el 16 de octubre de 2015 .
- ^ a b Ulianytskyi, Mykola. "Descarga ansible (DEB, RPM, TGZ, TXZ, XZ)" . pkgs.org . Búsqueda de paquetes de Linux. pag. 1 . Consultado el 5 de noviembre de 2012 .
- ^ a b c "Guía de instalación - Documentación de Ansible" . docs.ansible.com . Consultado el 30 de noviembre de 2018 .
- ^ a b c Comunidad Ansible . "Inventario" . docs.ansible.com . Documentación Ansible. Red Hat , Inc. pág. 1. Archivado desde el original el 6 de julio de 2015 . Consultado el 26 de abril de 2014 .
- ^ "Ansible Vault - Ansible Documentation" . docs.ansible.com .
- ^ "Bóveda de Ansible: un marco para cifrar cualquier libro de jugadas o archivo var. · Ansible / ansible @ 427b8dc" . GitHub .
- ^ a b c d e "Los beneficios de la arquitectura sin agentes" (PDF) . Red Hat , Inc. pág. 5.
- ^ a b c d "Ansible en profundidad" (PDF) . Red Hat , Inc. pág. 5.
- ^ "Lograr actualizaciones continuas y una implementación continua sin tiempo de inactividad" (PDF) . Red Hat , Inc. pág. 7.
- ^ "Índice de módulos - Documentación de Ansible" . docs.ansible.com .
- ^ "Trabajando con Inventario - Documentación Ansible" . docs.ansible.com . Consultado el 30 de noviembre de 2018 .
- ^ Comunidad Ansible . "Inventario dinámico" . docs.ansible.com . Documentación Ansible. Red Hat , Inc. pág. 1 . Consultado el 25 de noviembre de 2016 .
- ^ "Cómo construir su inventario - Documentación Ansible" . docs.ansible.com .
- ^ Comunidad Ansible . "Playbooks" . docs.ansible.com . Documentación Ansible. Red Hat, Inc. pág. 1. Archivado desde el original el 6 de julio de 2015 . Consultado el 26 de abril de 2014 .
- ^ Comunidad Ansible . "Organización de tareas y controladores para un papel" . docs.ansible.com . Documentación Ansible. Red Hat , Inc. pág. 1 . Consultado el 25 de noviembre de 2016 .
- ^ Redditors (19 de febrero de 2016). "¡Ansible anuncia que Tower será de código abierto en un futuro cercano en AnsibleFest!" . reddit.com . Reddit . pag. 1 . Consultado el 20 de julio de 2017 .
- ^ Redactor del personal. "El Proyecto Torre Abierta" . ansible.com/open-tower . Red Hat , Inc. pág. 1 . Consultado el 21 de enero de 2017 .
- ^ Sombrero, Ansible, Rojo. "Preguntas frecuentes sobre el proyecto AWX | Ansible.com" . www.ansible.com .
- ^ "ansible / awx" . 25 de marzo de 2020 - a través de GitHub.
- ^ Comunidad semáforo. "API de semáforo" . ansible-semaphore.github.io . pag. 1 . Consultado el 5 de febrero de 2021 .
- ^ Comunidad semáforo. "semáforo ansible" . github.com/ansible-semaphore . Castaway Consulting LLC . Consultado el 5 de febrero de 2021 .
- ^ Comunidad Ansible . "Soporte de Python 3" . docs.ansible.com . Documentación Ansible. Red Hat , Inc. pág. 1 . Consultado el 6 de julio de 2017 .
- ^ a b Comunidad Ansible . "Empezando" . docs.ansible.com . Documentación Ansible. Red Hat , Inc. pág. 1. Archivado desde el original el 6 de julio de 2015 . Consultado el 6 de febrero de 2014 .
- ^ DeHaan, Michael (6 de agosto de 2014). "Lanzamiento de Ansible 1.7 - ¡Windows beta y más!" . ansible.com/blog . El libro de jugadas interior. Ansible, Inc. pág. 1 . Consultado el 7 de agosto de 2014 .
- ^ Comunidad Ansible . "Lista de módulos en la nube" . docs.ansible.com . Documentación Ansible. Red Hat , Inc. pág. 1 . Consultado el 28 de abril de 2017 .
- ^ "AnsibleFest" . Ansible . Red Hat, Inc . Consultado el 4 de octubre de 2018 .
enlaces externos
- Página web oficial