Procesamiento por lotes de Ansible en la práctica

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

  1. 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.

  2. De forma predeterminada, el protocolo SSH se utiliza para administrar el dispositivo

  3. 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

  4. Configuración simple, funciones potentes y gran escalabilidad

  5. Admite API y módulos personalizados, y se puede ampliar fácilmente a través de Python

  6. 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

yum install -y ansible

  

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

ssh-keygen

  

La clave secreta se distribuye a los nodos que necesitan ser administrados

1

2

3

ssh-copy-id root@10.0.0.66

ssh-copy-id root@10.0.0.67

  

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

[guance]

10.0.0.67

10.0.0.66

  

verificar la conectividad

1

ansible guance -m ping

  

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

ansible guance -m shell -a 'id'

 

 

  • Ver los usuarios actualmente conectados al sistema

1

ansible guance -m shell -a 'who'

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

ansible guance -m copy -a 'src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg mode=666'

  

 

Ver el archivo ansible.cfg del host remoto

1

ansible guance -m shell -a 'ls -l /tmp/ansible.cfg'

  

 

  • Especificar contenido y generar archivos

1

ansible guance -m copy -a 'content="hello world" dest=/tmp/hello mode=666'

  

Ver archivo de hosts remotos

1

ansible guance -m shell -a 'cat /tmp/hello'

  

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

ansible guance -m file -a 'path=/tmp/app state=directory'

  

Ver el directorio /tmp

1

ansible guance -m shell -a 'ls -l /tmp'

 

  • Elimine el archivo ansible.cfg copiado de ansible01 antes

1

ansible guance -m file -a 'path=/tmp/ansible.cfg state=absent'

  

 

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

ansible guance -m fetch -a 'src=/tmp/hello dest=/root'

  

En el directorio /root, puede ver dos nuevos directorios (la ip del host remoto es el nombre del directorio)

1

2

3

yum -y install

treetree /root

  

 

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

ansible guance -m shell -a 'DK_DATAWAY="https://openway.guance.com?token=token" bash -c "$(curl -L https://static.guance.com/datakit/install.sh)"'

Verifique si el proceso ha comenzado

1

ansible guance -m shell -a 'ps -ef|grep datakit|grep -v grep'

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

ansible guance -m shell -a 'cp /usr/local/datakit/conf.d/host/netstat.conf.sample /usr/local/datakit/conf.d/host/netstat.conf'

Kit de datos de reinicio por lotes

1

ansible guance -m shell -a 'systemctl restart datakit'

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

- hosts: guance 

remote_user: root 

tasks:

   - name: dk versioncheck

     shell: datakit--version|grep -i upgrade|wc -l

     register:version

   -name: dkupgradewhen: version.stdout >"0"

     shell: DK_UPGRADE=1bash -c"$(curl -L

     https://static.guance.com/datakit/install.sh)"

ejecutar libro de jugadas

1

ansible-playbook /etc/ansible/dk_upgrade.yaml

 

Verifique que la versión del kit de datos sea la más reciente

1

ansibleguance -m shell -a'datakit --version'

Agregue una tarea programada crontab -e (realice una actualización por lotes a las 02:02 todos los días)

1

02 02* ** ansible-playbook /etc/ansible/dk_upgrade.yaml

Supongo que te gusta

Origin blog.csdn.net/weixin_47367099/article/details/127546320
Recomendado
Clasificación