stringtranslate.com

Ansible (software)

Ansible es un conjunto de herramientas de software que permite la infraestructura como código . Es de código abierto y el conjunto incluye funciones de aprovisionamiento de software , gestión de configuración e implementación de aplicaciones . [2]

Ansible , escrito originalmente por Michael DeHaan en 2012 y adquirido por Red Hat en 2015, está diseñado para configurar sistemas tipo Unix y Microsoft Windows . Ansible no tiene agentes y se basa en conexiones remotas temporales a través de SSH o Windows Remote Management , lo que permite la ejecución de PowerShell . El nodo de control de Ansible se ejecuta en la mayoría de los sistemas tipo Unix que pueden ejecutar Python , incluido Windows con el Subsistema de Windows para Linux instalado. [3] La configuración del sistema se define en parte mediante su propio lenguaje declarativo .

Historia

El término " ansible " fue acuñado por Ursula K. Le Guin en su novela de 1966 El mundo de Rocannon , [4] y se refiere a sistemas ficticios de comunicación instantánea. [5] [6]

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. [7]

Ansible, Inc. (originalmente AnsibleWorks, Inc.) fue la empresa fundada en 2013 por DeHaan, Timothy Gerla y Saïd Ziouani para respaldar y patrocinar comercialmente a Ansible. [8] [9] [10] Red Hat adquirió Ansible en octubre de 2015. [11] [12]

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 Enterprise Linux, así como para otros sistemas operativos. [13]

Arquitectura

Descripción general

Ansible ayuda a gestionar varias máquinas seleccionando partes del inventario de Ansible almacenadas en archivos de texto sin formato . El inventario es configurable y el inventario de la máquina de destino se puede obtener de forma dinámica o de fuentes basadas en la nube en diferentes formatos ( YAML , INI ). [14]

Los datos confidenciales se pueden almacenar en archivos cifrados utilizando Ansible Vault [15] desde 2014. [16] A diferencia de otro software de gestión de configuración popular, como Chef , Puppet , Salt y CFEngine , Ansible utiliza una arquitectura sin agentes , [17] con el software de Ansible que normalmente no se ejecuta o incluso no se instala en el nodo controlado. [17] En cambio, Ansible orquesta 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 controladora 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 ejecutan daemons ni se instala software. [17]

Dependencias

Ansible requiere que Python esté instalado en todas las máquinas de administración, incluido el administrador de paquetes pip junto con el software de administración de configuración y sus paquetes dependientes. Los dispositivos de red administrados no requieren dependencias adicionales y no tienen agentes. [19]

Nodo de control

El nodo de control (host maestro) está destinado a administrar (orquestar) máquinas de destino (nodos denominados "inventario", consulte a continuación). [20] Los nodos de control se pueden ejecutar desde sistemas operativos Linux y similares a Unix (incluido MacOS ); los sistemas operativos Windows solo se admiten a través del Subsistema de Windows para Linux . [21] Se permiten múltiples nodos de control. [20] Ansible no requiere una sola máquina de control para la orquestación, [22] lo que garantiza que la recuperación ante desastres sea sencilla. [22] Los nodos son administrados por el nodo de control a través de SSH .

Objetivos de diseño

Los objetivos de diseño de Ansible incluyen: [18]

Módulos

Los módulos [24] son ​​en su mayoría independientes y pueden escribirse en un lenguaje de programación estándar (como Python, Perl , Ruby , Bash, etc.) [ cita requerida ] . Uno de los objetivos rectores 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á al sistema en el mismo estado. [18] [ fuente no primaria necesaria ]

Configuración de inventario

La ubicación de los nodos de destino se especifica a través de listas de configuración de inventario (formato INI o YAML) ubicadas en /etc/ansible/hosts(en Linux). [14] [25] El archivo de configuración enumera la dirección IP o el nombre de host de cada nodo al que Ansible puede acceder. Además, los nodos se pueden asignar a grupos. [14]

Un ejemplo de formato de inventario ( archivo INI ):

192.168.6.1[servidores web] 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 se especifican mediante nombres de host. Además, los dos últimos nodos se agrupan en el webserversgrupo.

Ansible también puede utilizar un script de inventario dinámico personalizado , que puede extraer datos dinámicamente de un sistema diferente, [26] y admite grupos de grupos. [27]

Manuales de juego

Los playbooks son archivos YAML que almacenan listas de tareas para ejecuciones repetidas [28] [20] en nodos administrados. [20] [29] Cada playbook asigna (asocia) un grupo de hosts a un conjunto de roles. Cada rol está representado por llamadas a tareas de Ansible. [30]

Plataforma de automatización Ansible

Ansible Automation Platform (AAP) es una API REST , un servicio web y una interfaz (aplicación) basada en la web diseñada para hacer que Ansible sea más accesible para personas con una amplia gama de habilidades de TI. Es una plataforma compuesta por múltiples componentes que incluyen herramientas para desarrolladores, una interfaz de operaciones y una malla de automatización para habilitar tareas de automatización a escala en los centros de datos. AAP es un producto comercial respaldado por Red Hat, Inc. pero derivado de más de 17 proyectos de código abierto upstream , incluido el proyecto upstream AWX (anteriormente derivado de Ansible Tower), que ha sido de código abierto desde septiembre de 2017. [31] [32] [33] [34]

También existe otra alternativa de código abierto a Tower, Semaphore, escrita en Go . [35] [36]

Soporte de plataforma

Las máquinas de control deben ser un host Linux/Unix (por ejemplo , BSD , CentOS , Debian , macOS , Red Hat Enterprise Linux , SUSE Linux Enterprise , Ubuntu [13] ) y se requiere Python 2.7 o 3.5. [19]

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-simplejsontambién se requiere el paquete. [37] Desde la versión 1.7, Ansible también puede administrar nodos Windows [38] . [37] En este caso, se utiliza la comunicación remota nativa de PowerShell compatible con el protocolo WS-Management en lugar de SSH.

Ansible se puede implementar en hosts físicos , máquinas virtuales y entornos de nube. [18]

AnsibleFest

AnsibleFest es una conferencia anual de la comunidad de usuarios, colaboradores, etc. de Ansible. [39]

Véase también

Referencias

  1. ^ "Versión 2.17.5". 7 de octubre de 2024. Consultado el 21 de octubre de 2024 .
  2. ^ Redactor. "Descripción general: cómo funciona Ansible". ansible.com . Red Hat , Inc. p. 1 . Consultado el 7 de diciembre de 2016 .
  3. ^ "Guía de instalación de la documentación de Ansible". docs.ansible.com . Consultado el 7 de julio de 2022 .
  4. ^ Bernardo, Susan; Murphy, Graham J (2006). Ursula K. Le Guin: una compañera crítica . Westport, Connecticut: Greenwood Press. pág. 18. ISBN 978-0-313-02730-7.OCLC 230345464  .
  5. ^ "Preguntas frecuentes". docs.ansible.com . Documentación de Ansible. Red Hat , Inc. p. 1 . Consultado el 7 de marzo de 2023 .
  6. ^ DeHaan, Michael (29 de enero de 2014). "Publicación de Google Groups: proyecto Ansible". groups.google.com . p. 1 . Consultado el 26 de abril de 2017 .
  7. ^ Maughan, Mike (17 de abril de 2012). "Una entrevista con el autor de Ansible, Michael DeHaan". coloandcloud.com . Maughansem LLC. p. 1. Archivado desde el original el 14 de noviembre de 2012 . Consultado el 5 de noviembre de 2012 .
  8. ^ "Acerca de Ansible". Ansible, Inc. p. 1. Archivado desde el original el 5 de septiembre de 2015 . Consultado el 8 de julio de 2016 .
  9. ^ Bloomberg Research. "Ansible, Inc.: Private Company Information". Software y servicios de Internet . Bloomberg LP p. 1. Consultado el 8 de julio de 2016 .
  10. ^ "Acerca del equipo". 5 de septiembre de 2015. Archivado desde el original el 5 de septiembre de 2015. Consultado el 7 de abril de 2021 .
  11. ^ Novet, Jordan (15 de octubre de 2015). "Fuente: Red Hat está comprando Ansible por más de 100 millones de dólares". venturebeat.com . VentureBeat , Inc. p. 1 . Consultado el 16 de octubre de 2015 .
  12. ^ Redactor (16 de octubre de 2015). "Red Hat adquirirá Ansible, líder en automatización de TI y DevOps". redhat.com . Red Hat , Inc . Consultado el 16 de octubre de 2015 .
  13. ^ ab Ulianytskyi, Mykola. "Descarga de ansible (DEB, RPM, TGZ, TXZ, XZ)". pkgs.org . Búsqueda de paquetes de Linux. p. 1 . Consultado el 5 de noviembre de 2012 .
  14. ^ abc "Inventario". docs.ansible.com . Documentación de Ansible. Red Hat , Inc. p. 1 . Consultado el 7 de marzo de 2023 .
  15. ^ "Ansible Vault — Documentación de Ansible". docs.ansible.com .
  16. ^ "Ansible Vault: un marco para cifrar cualquier playbook o archivo var. · ansible/ansible@427b8dc". GitHub .
  17. ^ abcde "Los beneficios de la arquitectura sin agentes" (PDF) . Red Hat , Inc. p. 5.
  18. ^ abcd "Ansible en profundidad" (PDF) . Red Hat , Inc. pág. 5.
  19. ^ ab "Compatibilidad con Python 3". docs.ansible.com . Documentación de Ansible. Red Hat , Inc. p. 1. Archivado desde el original el 10 de julio de 2017 . Consultado el 6 de julio de 2017 .
  20. ^ abcd "Conceptos de Ansible — Documentación de Ansible". docs.ansible.com . Consultado el 19 de noviembre de 2021 .
  21. ^ "Instalación de Ansible". docs.ansible.com . Consultado el 4 de enero de 2023 .
  22. ^ abc "Guía de instalación — Documentación de Ansible". docs.ansible.com . Consultado el 30 de noviembre de 2018 .
  23. ^ "Lograr actualizaciones continuas e implementación continua sin tiempo de inactividad" (PDF) . Red Hat , Inc. p. 7.
  24. ^ "Índice de módulos — Documentación de Ansible". docs.ansible.com .
  25. ^ "Trabajar con inventario: documentación de Ansible". docs.ansible.com . Consultado el 30 de noviembre de 2018 .
  26. ^ "Inventario dinámico". docs.ansible.com . Documentación de Ansible. Red Hat , Inc. p. 1. Archivado desde el original el 5 de agosto de 2019 . Consultado el 25 de noviembre de 2016 .
  27. ^ "Cómo crear su inventario: documentación de Ansible". docs.ansible.com .
  28. ^ "Playbooks". docs.ansible.com . Documentación de Ansible. Red Hat, Inc. p. 1 . Consultado el 7 de marzo de 2023 .
  29. ^ "Introducción a los playbooks: documentación de Ansible". docs.ansible.com . Consultado el 19 de noviembre de 2021 .
  30. ^ "Organización de tareas y controladores para un rol". docs.ansible.com . Documentación de Ansible. Red Hat , Inc. p. 1. Archivado desde el original el 17 de julio de 2017 . Consultado el 25 de noviembre de 2016 .
  31. ^ Redditors (19 de febrero de 2016). "Ansible anuncia que Tower será de código abierto en un futuro cercano en AnsibleFest!". reddit.com . Reddit . p. 1 . Consultado el 20 de julio de 2017 .
  32. ^ Redactor. "The Open Tower Project". ansible.com/open-tower . Red Hat , Inc. p. 1 . Consultado el 21 de enero de 2017 .
  33. ^ Sombrero, Ansible, rojo (7 de mayo de 2024). "Preguntas frecuentes sobre el proyecto AWX | Ansible.com". www.ansible.com .{{cite web}}: CS1 maint: varios nombres: lista de autores ( enlace )
  34. ^ "ansible/awx". 25 de marzo de 2020 – vía GitHub.
  35. ^ Comunidad Semaphore. "API Semaphore". ansible-semaphore.com . p. 1 . Consultado el 19 de septiembre de 2023 .
  36. ^ Comunidad de semáforos. "ansible-semaphore". github.com/ansible-semaphore . Castaway Consulting LLC . Consultado el 5 de febrero de 2021 .
  37. ^ ab "Getting started" (Introducción). docs.ansible.com . Documentación de Ansible. Red Hat , Inc. p. 1 . Consultado el 7 de marzo de 2023 .
  38. ^ DeHaan, Michael (6 de agosto de 2014). "Ansible 1.7 is released – Windows beta and more!". ansible.com/blog . The Inside Playbook. Ansible, Inc. p. 1 . Consultado el 7 de agosto de 2014 .
  39. ^ "AnsibleFest". Ansible . Red Hat, Inc . Consultado el 4 de octubre de 2018 .
  40. ^ "Reserve la fecha para el Red Hat Summit 2025". www.redhat.com .

Enlaces externos