
Ansible es un servidor de automatización de procesos que es altamente aplicable en tecnologías centrales, como los procesos DevOps. Ansible es una de las herramientas de automatización que puede realizar operaciones en múltiples máquinas al mismo tiempo. Ansible ejecuta/instala scripts/scripts en un servidor remoto y los administra.
Al administrar un servidor, ciertos comandos o tareas toman tiempo y el administrador no puede sentarse en él. Por ejemplo, los comandos de actualización y actualización son los comandos principales al administrar servidores y deben ejecutarse todos los días. Por lo tanto, en este caso, Ansible es una de las principales opciones para que los administradores automaticen tareas.
Este artículo ilustra el uso completo de los servidores automatizados.
Notas: Antes de dirigirnos a la sección principal, revisemos rápidamente cómo funciona Ansible. por favor haga clic aquí Si desea saltar a la sección de instalación y configuración.
El flujo de trabajo básico de Ansible
Entorno ansible Nodo de control,,,,, Nodos alojadosarchivos de inventario y archivos de configuración.
El nodo de control tiene Ansible instalado en él, y el nodo de control interactúa con el nodo administrado a través de SSH.
Echemos un vistazo a la siguiente imagen para ilustrar los componentes de Ansible y su integración lógica.
Nodo de control
Instale el sistema Ansible. Dado que todas las configuraciones relacionadas con Ansible se realizan en el lado de control, el nodo de control es un componente importante del entorno ansible.
Nodo alojado (host)
Queremos conectarnos al sistema/máquina a través de Ansible. El nodo de control puede administrar múltiples hosts. Un host se puede dividir en múltiples categorías o una categoría principal.
Archivos de inventario
este Archivos de inventariotambién conocido como archivo de host, contiene la dirección IP y el grupo (nodo alojado) de la máquina host.
Archivo de configuración
este Archivo de configuración Alternativas que contienen valores predeterminados. Por ejemplo, la ubicación predeterminada del archivo de inventario es/etc/ansible/.
Ansible Playbook
este Ansible Playbook Es un archivo yaml (Yaml no es un lenguaje de marcado). Se crea en el lado del nodo de control y contiene instrucciones/comandos que el nodo de control se ejecutará en el nodo alojado.
Ahora veamos cómo Ansible ayuda a automatizar tareas dentro de una organización.
Cómo usar Ansible para la configuración del servidor automático
Para hacer que Ansible funcione, necesitamos configurar e implementar con éxito requisitos previos ansibles. Primero, comenzaremos desdeConfiguración de nodo de control«:
Paso 1: Instalar Ansible | Lado del nodo de control
Actualicemos el repositorio del sistema Ubuntu:
Sudo Parkman -Syu
Sudo Actualización de DNF
Sudo Actualización de Zypper
este»Ansible«El repositorio predeterminado para la mayoría de las distribuciones de Linux está disponible, por lo que puede instalarlo usando el comando:
Sudo DNF Instalar Ansible
Sudo zyper Instalar Ansible
Sudo Parkman -s Ansible
Use el comando para verificar la instalación:
Paso 2: crear un archivo manifiesto | Lado del nodo de control
La ubicación predeterminada para los archivos de inventario/host es «/etc/ansible/hosts». Cuando instalamos Ansible desde el repositorio predeterminado, es posible que no funcione, por lo que necesitamos crearlo en cualquier lugar del sistema de archivos (preferiblemente en el valor predeterminado). Si creamos un archivo manifiesto que no sea el valor predeterminado, necesitamos proporcionar la ruta al archivo de inventario en el archivo de configuración.
NOTA: Agrupación de IP/servidor en archivos de inventario
Ponemos a ambos anfitriones en un grupo[servers]«. Podemos dividirlos en categorías separadas. Depende de los requisitos (por ejemplo, si una IP se refiere a un servidor web, entonces colóquelos en un grupo. De manera similar, si otra IP se refiere a una base de datos, entonces podemos ponerlos en otra categoría).
Usemos el comando Ansible-Inventory para verificar la lista de inventario:
Inventario ansible – Lista -y
Paso 3: Configurar SSH | Anfitrión
SSH es el medio de conexión clave entre el nodo de control y el host. SSH se instalará y configurará en todos los hosts remotos en el archivo de inventario/host:
Primero instalemos SSH en un nodo de host:
Sudo zyper Instalar Ssh
Sudo DNF Instalar Ssh
Sudo Parkman -s Ssh
Permite que el puerto 22 pase a través del firewall del anfitrión:
Verifiquemos el estado del firewall:
Notas: Estos comandos se refieren a la configuración general de la instalación y SSH.
Paso 4: Cree un nuevo usuario y cree un inicio de sesión sin llamadas en un nombre de usuario específico | Anfitrión
Primero, creemos un usuario dedicado para el «nodo de control» ansible que funciona en el «host».
Agregue el usuario Ansible al grupo sudo:
Sudo Usermod -Ag Sudo ansible_root
Habilite el nombre de inicio de sesión sin contraseña del usuario para garantizar que la conexión automática no esté interrumpida.
Abra el archivo de sudoers y escriba la siguiente frase con el nombre de usuario correcto y proporcionó el valor de valor clave:
Test SSH Connection | Desde un nodo de control Ansible a un host ansible:
Ssh nombre de usuario@Dirección IP del host
Como necesitamos tener un inicio de sesión sin contraseña, establecemos la tecla SSH aquí. Primero, use el comando para generar la tecla SSH:
Generación de claves SSH Y copie la clave pública al host remoto:
Notas: Copie la clave pública al usuario que usará para controlar los hosts en varias máquinas.
Nombre de usuario de SSH-Copy-ID@Dirección IP del host
Copie la tecla SSH a uno de los hosts:
Copie la tecla SSH al resto de los hosts:
Paso 5: Verificar | Pruebe la conexión ansible al host
Pruebe la conexión Ansible a Ansible Host (recuerde usar un nombre de usuario de confianza en el host o tiene un inicio de sesión sin contraseña). Tenemos usuarios «ansible_rootComo usuario de confianza en la lista de usuarios de Ansible.
todo -metro silbido -u nombre de usuario
este»todo«significa escanear y verificar todos los hosts en archivos de inventario.
También solo podemos referirnos a un nodo o un grupo de nodos.
- ping un solo nodo administrado:
El siguiente comando prueba desde el nodo de control a un nombre llamado «Linuxhint«:
Ansible Linuxhint -metro silbido -u nombre de usuario
- Ping a un grupo de servidores:
Del mismo modo, un conjunto de servidores se puede probar por separado. Por ejemplo, tenemos un nombre de grupo «servidorEn nuestro archivo de host/inventario, por lo que solo hacemos ping en ese grupo:
Servidor ansible -metro silbido -u nombre de usuario
Paso 6: Cree un script ansible para la configuración del servidor automático
Este es el último paso para automatizar la configuración del servidor usando Ansible. Aquí escribimos un libro de jugadas Ansible, un guión estructurado escrito Yaml (Yaml no es un lenguaje de marcado) Automatice la configuración del servidor, la instalación del paquete, la configuración de la red o cualquier otra tarea.
Paso 6.1: Cree un directorio para el proyecto Ansible
Podemos crear un archivo «.yaml» o «.yml» directamente. Pero, de una manera más estructurada y comprensible, creemos un directorio dedicado para separar el contenido de Ansible:
Mkdir ansible_proj && ansible_proj
Paso 6.2 Crear un script
Ansible Playbook sigue una estructura específica inspirada en YAML para crear scripts automatizados. Necesitamos ser cautelosos al escribir «YAML» porque la falta de espacio o cualquier espacio adicional puede conducir a la falla del guión.
Este es el primer script:
Código:
—
– Anfitrión: todos
Tarea:
– Nombre: Mensaje de impresión
depurar:
Noticias: Guía Ansible
En el guión:
- Host: todos → Mostrar este script se puede ejecutar primero en todos los nodos.
- Tarea → Esta frase indica el inicio de la tarea de la lista en el script.
- – Nombre: Mensaje de impresión → Nombre de la tarea.
- – Depurar → El propósito de la tarea.
- MSG: Guía Ansible → Este es el mensaje de depuración.
Ansible Playbook -I Archivo de host> .yaml/YML documento> -u ansible_root
- Instalar paquetes con Ansible Playbook
Supongamos que queremos instalar el paquete a través de Ansible Playbook. Aquí hay un script simple que instala paquetes en el host conectado:
Código:
– Nombre: Configuración básica del servidor
Anfitrión: todos
Convertirse en: Sí
Tarea:
#Task 1: actualice la lista de paquetes y actualice todos los paquetes
– Nombre: sistema de actualización y actualización
Fácil de:
Actualización: región
update_cache: Sí
#Task 2: Instalar nano (editor de texto simple)
– Nombre: instalación nanómetro editar
Fácil de:
Nombre: nanómetro
Estado: ahora
- Se inicializa el título del guión, incluido el nombre, el host y los privilegios.
- Solo hay 2 tareas en este script. La tarea 1 actualiza y actualiza el sistema, mientras que la Tarea 2 instala un editor de texto simplificado Nano en Linux.
- ¿Qué es esto en el guión? este»Fácil«Es un módulo que puede obtener paquetes de software basados en APT. Estos módulos ansibles se pueden cambiar de acuerdo con nuestros requisitos. Por ejemplo,», «,», «,», por ejemplo «DNFEl módulo está disponible cuando se trata de nodos administrados con sede en Fedora.
Ejecutemos el guión:
Ansible Playbook -I Host Installpack.yml -u ansible_root
NOTA: Salida de Playbook de Ansible → «Ok» y «Change» son dos palabras que ves en la salida de Ansible Playbook.
- «DE ACUERDO»: La operación se ha realizado en el host solicitado, pero no se ha cambiado nada en el nodo alojado. generalmente,»nanómetroEl editor está instalado en la mayoría de las distribuciones de Linux, por lo que no hay cambios.
- «Cambiar»: Esta operación se ha realizado y el sistema ha cambiado. Por ejemplo, las tareas de actualización y actualización han cambiado el sistema
- Agregue otra tarea a un script existente:
Del mismo modo, podemos adjuntar diferentes tareas ansibles a este script. Agregamos SSH al libro de jugadas Ansible que usaste anteriormente:
Código:
#Task 3: asegúrese de que el servicio SSH esté en funcionamiento y habilitado
– Nombre: Configurar el servicio SSH
Atender:
Nombre: Ssh
Estado: comenzar
Permitir: Sí
Aquí está el guión revisado:
Vamos a ejecutar el guión nuevamente:
Ansible-playbook installpack.yml -u ansible_root
Ahora, mira la salida. Solo el servicio SSH está configurado en LinuxHint. Todas las tareas restantes se han ejecutado y no tienen impacto debido a su disponibilidad (según el resultado).
Eso se trata de este artículo.
en conclusión
Para usar Ansible para servidores automáticos, primero tenemos que instalar Ansible en el nodo de control. Luego, instale y configure SSH en el nodo administrado (host). El tercer paso es crear un usuario dedicado, habilitar el inicio de sesión sin contraseña para ese usuario y generar una tecla SSH para más conexiones. Luego, cree un libro de jugadas Ansible, todo para uso automático del servidor.
Este artículo ha explicado los pasos para la configuración del servidor automático.
Preguntas frecuentes
Pregunta 1: ¿Qué está disponible?
Ansible se usa para automatizar diferentes tareas en una organización de TI. Por ejemplo, administración de configuración del servidor, automatización del servidor y orquestación (coordinación automática de tareas complejas de TI).
P2: Cómo usar Ansible para la automatización
Primero, configure el nodo de control y el host. Asegúrese de que SSH también esté establecido entre el nodo de control y el host. Después de eso, cree un archivo de stock (donde se escribe las IP del host). Si ha creado una dirección de archivo de hosts en algún lugar fuera del directorio predeterminado (/etc/ansible), es posible que deba crear un archivo de configuración para colocar la dirección del archivo de hosts.
P3: se puede utilizar para la automatización de la red
Sí, Ansible se puede usar para la automatización de red. Los administradores pueden crear múltiples reproducciones en scripts para automatizar toda la configuración de la red.
P4: se puede usar para la configuración del servidor
Sí, Ansible puede ayudar a configurar el servidor. Por ejemplo, si necesitamos configurar Apache en un nodo administrado, escribimos el script y lo ejecutamos en todos los hosts (o seleccionados).
P5: Cómo administrar servidores remotos utilizando Ansible
Ansible Host Remote Host, los paquetes se pueden instalar/eliminar del host. Si es un usuario habitual, solo necesita obtener la lista actualizada de paquetes regularmente. El administrador escribirá un script para que obtenga actualizaciones regulares de acuerdo con el conjunto de programación. Del mismo modo, Ansible mantiene la gestión de envases, los servidores y las redes a través de Ansible Playbook (Drama).