Descripción del programa
Ansible es una herramienta de operación y mantenimiento automatizada, desarrollada sobre la base de Python, que integra las ventajas de muchas herramientas de operación y mantenimiento (puppet, chef, func, fabric) y realiza funciones como la configuración del sistema por lotes, la implementación del programa por lotes y la operación por lotes. comandos
Características
-
La implementación es simple, simplemente implemente el entorno de Ansible en el lado del control maestro y el lado controlado no necesita hacer nada.
-
De forma predeterminada, el protocolo SSH se utiliza para administrar el dispositivo
-
Hay una gran cantidad de módulos de operación de operación y mantenimiento de rutina, que pueden realizar la mayoría de las operaciones diarias
-
Configuración simple, funciones potentes y gran escalabilidad
-
Admite API y módulos personalizados, y se puede ampliar fácilmente a través de Python
-
Personalice una potente configuración y administración de estado a través de Playbooks
infraestructura
-
Ansible : Programa básico de Ansible.
-
HostInventory : registre la información del host administrada por Ansible, incluido el puerto, la contraseña, la ip, etc.
-
Libros de jugadas : archivos de formato YAML, varias tareas se definen en un archivo, que define a qué módulos debe llamar el host para completar las funciones.
-
CoreModules : Módulos principales, la operación principal es completar las tareas de administración llamando a los módulos principales.
-
CustomModules : módulos personalizados, funciones completas que los módulos principales no pueden completar y admiten varios idiomas.
-
ConnectionPlugins : complementos de conexión, utilizados por Ansible y Host para la comunicación
ejecución de tareas
El host de control del nodo administrado puede dividir el sistema Ansible en dos tipos, a saber, adhoc y playbook
-
El modo ad-hoc (modo punto a punto) utiliza un solo módulo y admite la ejecución por lotes de un solo comando. El comando ad-hoc es un comando que se puede ingresar rápidamente y no necesita guardarse, lo que equivale a un comando de shell en bash.
-
Modo libro de jugadas (modo script) El principal método de gestión de Ansible también es la clave de las potentes funciones de Ansible. El libro de jugadas completa una clase de funciones a través de varios conjuntos de tareas, como la instalación y la implementación de servicios web, la copia de seguridad por lotes de servidores de bases de datos, etc. Un libro de jugadas puede entenderse simplemente como un archivo de configuración que combina múltiples operaciones ad-hoc.
Combate por lotes
Preparación ambiental
Instalación de software
Inicie sesión en ansible01 y ejecute el comando de instalación
1 |
|
programa principal
-
/usr/bin/programa principal ansible
-
/usr/bin/ansible-doc documentación de configuración
-
/usr/bin/ansible-playbook Tareas de automatización personalizadas, herramientas de secuencias de comandos
-
/usr/bin/ansible-pull Una herramienta para ejecutar comandos de forma remota
-
Herramienta de cifrado de archivos /usr/bin/ansible-vault
archivo de configuración principal
-
/etc/ansible/ansible.cfg archivo de configuración principal
-
/etc/ansible/hosts lista de hosts (coloque los hosts administrados en este archivo)
-
/etc/ansible/roles/ Directorio para almacenar roles
Inicio de sesión sin contraseña
Inicie sesión en ansible01, genere una clave secreta, la ruta predeterminada es /root/.ssh/id_rsa, /root/.ssh/id_rsa.pub
1 |
|
La clave secreta se distribuye a los nodos que necesitan ser administrados
1 2 3 |
|
Modifique el archivo de la lista de hosts /etc/ansible/hosts, agregue el nombre del grupo y la IP del host
1 2 3 4 5 |
|
verificar la conectividad
1 |
|
Módulos comunes
Módulo de carcasa
El módulo Shell puede llamar al intérprete de shell para ejecutar comandos en el host remoto y admite varias funciones del shell, como canalizaciones, etc.
-
Ver ID de usuario actual
1 |
|
-
Ver los usuarios actualmente conectados al sistema
1 |
|
Copiar módulo
Este módulo se usa para copiar archivos a hosts remotos y admite la generación de archivos y la modificación de permisos para contenido determinado, etc.
-
Copie el archivo ansible.cfg en el host remoto y especifique el permiso como "lectura y escritura" -rw-rw-rw-
1 |
|
Ver el archivo ansible.cfg del host remoto
1 |
|
-
Especificar contenido y generar archivos
1 |
|
Ver archivo de hosts remotos
1 |
|
módulo de archivo
Este módulo se utiliza para establecer las propiedades del archivo, como crear un archivo, crear un archivo de enlace, eliminar un archivo, etc.
-
Crear directorio de aplicaciones en /tmp
1 |
|
Ver el directorio /tmp
1 |
|
-
Elimine el archivo ansible.cfg copiado de ansible01 antes
1 |
|
Obtener módulo
Este módulo se utiliza para obtener (copiar) archivos de un host remoto al local
-
Extraiga el archivo host remoto /tmp/hello al directorio /root
1 |
|
En el directorio /root, puede ver dos nuevos directorios (la ip del host remoto es el nombre del directorio)
1 2 3 |
|
Aplicación de nube de observación
instalación por lotes
Use el módulo de shell para instalar el kit de datos (tenga cuidado de modificar el token correspondiente)
1 |
|
Verifique si el proceso ha comenzado
1 |
|
configuración por lotes
-
Habilitar el complemento netstat
Use el módulo de shell para copiar el archivo netstat.conf.sample a netstat.conf
1 |
|
Kit de datos de reinicio por lotes
1 |
|
actualización por lotes
Cree un nuevo archivo yaml de actualización del kit de datos, /etc/ansible/dk_upgrade.yaml
1 2 3 4 5 6 7 8 9 |
|
ejecutar libro de jugadas
1 |
|
Verifique que la versión del kit de datos sea la más reciente
1 |
|
Agregue una tarea programada crontab -e (realice una actualización por lotes a las 02:02 todos los días)
1 |
|