resumen ansible

Ansible es una herramienta de operación y mantenimiento automatizada, desarrollada en base a paramiko y basada en trabajo modular. Ansible es una plataforma de código abierto que integra la gestión de la configuración del sistema de TI, la implementación de aplicaciones y realiza tareas específicas. Basado en el lenguaje Python, está construido mediante dos módulos clave: Paramiko y PyYAML. Combina las ventajas de muchas herramientas de operación y mantenimiento y realiza funciones como la configuración del sistema por lotes, la implementación de programas por lotes y la ejecución de comandos por lotes. Ansible funciona en función de módulos y no tiene la capacidad de implementar por lotes. el módulo ejecutado por ansible. , ansible solo proporciona un marco. Ansible no necesita instalar clientes/agentes en el host remoto porque se comunican con el host remoto según

ansible se define como una configuración. herramienta de gestión, una herramienta de gestión de configuración. Generalmente tiene las siguientes funciones:

Comparación de características técnicas de herramientas de operación y mantenimiento automatizadas comúnmente utilizadas:

El sistema ansible consta de un host de control y un host administrado. El host de control no es compatible con la plataforma Windows

La implementación es simple. Solo necesita implementar el entorno ansible en el host de control. En el extremo controlado, solo necesita instalar ssh y python. 2.5 o superior Esta no es una configuración para sistemas tipo Unix.

Los modos de ejecución de tareas de Ansible se dividen en los dos tipos siguientes:

secuencia de búsqueda de archivos de configuración de ansible

.

archivo de configuración de ansible

ansible tiene muchos parámetros, a continuación enumeramos algunos parámetros comunes:

La función principal de ansible es la operación del host por lotes para poder utilizar algunos de ellos de manera conveniente. los hosts, se pueden agrupar y nombrar en el archivo de inventario. El archivo de inventario predeterminado es /etc/ansible/hosts.

Puede haber varios archivos de inventario y también se pueden generar dinámicamente a través de Dynamic Inventory.

Formato de archivo de inventario:

Otros parámetros de inventario

ansible implementa la gestión de configuración, implementación de aplicaciones, ejecución de tareas y otras funciones a través de ssh. configurarse de antemano. El terminal puede contactar con cada nodo administrado basándose en la autenticación de clave.

Sintaxis de uso del comando Ansible:

Por ejemplo:

Puede enumerar todos los módulos disponibles a través de ansible-doc -l Los módulos más utilizados son:

ansible -s Puede ver el uso del módulo especificado o consultar el documento de ayuda oficial:

Un libro de jugadas es una lista compuesta por una o más "jugadas" . La función principal del juego es disfrazar a los anfitriones que previamente han sido agrupados en un grupo en roles que han sido definidos a través de tareas en ansible. Básicamente, la llamada tarea no es más que un módulo que llama a ansible. Organizar varias obras en un libro de jugadas les permite unirse para realizar un gran espectáculo de acuerdo con un mecanismo preestablecido.

El siguiente es un ejemplo sencillo:

Componentes de los playbooks

Proceso de ejecución:

Instalación y configuración del Playbook apache actual combat

Las nuevas funciones introducidas por ansilbe desde la versión 1.2 se utilizan para organizar los playbooks de forma jerárquica y estructural.

Los roles pueden cargar automáticamente archivos variables, tareas, controladores, etc. según la estructura jerárquica. Para usar roles, solo necesita usar la directiva de inclusión en el libro de jugadas. En pocas palabras, los roles son un mecanismo que coloca variables, archivos, tareas, módulos y procesadores en directorios separados y puede incluirlos fácilmente. Los roles generalmente se usan en escenarios donde los servicios se crean en función de hosts, pero también se pueden usar en escenarios como la creación de demonios.

Un ejemplo de roles es el siguiente:

En el libro de jugadas, puedes usar roles como este:

También puedes pasar parámetros a roles:

También puede usar roles con condiciones:

Cuando ansible ejecuta el libro de estrategias, iniciará muchas conexiones ssh para realizar operaciones como copiar archivos y ejecutar comandos. OpenSSH admite dicha optimización, llamada ssh. Multiplexación Al usar esto Durante la multiplexación ssh, varias sesiones ssh conectadas al mismo host compartirán la misma conexión TCP, por lo que solo la primera conexión requiere un protocolo de enlace TCP de tres vías

se utilizará de forma predeterminada. La función de multiplexación ssh generalmente no necesita cambiar la configuración. Los elementos de configuración relevantes son:

Durante la ejecución de ansible, generará un script de Python basado en el módulo llamado y luego copiará el script de Python en el host y finalmente ejecutarlo. Script.ansible admite una optimización llamada canalización. En este modo, ansible no copia el script al ejecutarlo, sino que lo pasa a la sesión ssh a través de la canalización. Esto reducirá la sesión ssh de ansible de 2 a. 1, por lo tanto, ahorre tiempo.

La canalización está desactivada de forma predeterminada porque necesita confirmar que el requisito en el archivo /etc/sudoers en el host administrado no está habilitado. El formato es el siguiente:

p>

ansible habilita el método de canalización, modifique el archivo de configuración ansible.cfg:

El libro de jugadas de ansible recopilará información de hechos primero de forma predeterminada. Si no necesita datos de hechos, puede deshabilitar la recopilación de hechos en. el libro de jugadas:

También puede deshabilitar la recopilación de datos globalmente:

Otra solución es utilizar el almacenamiento en caché de hechos. Actualmente, ansible admite los siguientes tipos de almacenamiento en caché de hechos:

<. p> Ejemplo de almacenamiento en caché de datos de archivos JSON

ansible recopila Los datos obtenidos se escriben en el archivo json del host de control. Si el archivo ya existe, ansible no recopilará datos del host

Habilite el almacenamiento en caché de archivos JSON y modifique el archivo ansible.cfg:

El número de concurrencia predeterminado de ansible es 5. Puede modificar el número de concurrencia de las dos maneras siguientes:

Ansible tiene una variedad de módulos integrados relacionados con la computación en la nube, como aws, openstack, docker, etc. La siguiente figura muestra la relación entre el módulo ansible y docker:

Genere una imagen combinando playbook y dockerfile, el El ejemplo es el siguiente:

Ansible puede operar el contenedor a través del módulo acoplable, el ejemplo es el siguiente: