
En esta era rica en tecnología, las empresas implementan servidores de inmediato y administran cientos de dispositivos en la nube. Todo esto es posible con la ayuda de un motor de automatización similar.
Ansible es un servidor de automatización que administra múltiples hosts remotos y puede implementar aplicaciones de forma remota, instalar paquetes de software, solucionar el sistema, realizar la automatización de redes, la gestión de configuración, etc., todo a la vez o uno por uno.
En la guía de hoy, entraremos en detalles sobre los pasos para instalar, configurar y automatizar Linux en minutos. Esta guía se divide aproximadamente en dos categorías:
- Instale y configure Ansible → una demostración práctica de instalar y configurar Ansible en el nodo de control.
- Ansible Playbooks | Automatice Linux en minutos → Crear un libro de jugadas Ansible e implementar scripts en nodos alojados.
Echemos un vistazo al breve contorno:
Instalar y configurar Ansible | Control de nodos y nodos de host
Como se mencionó anteriormente, Ansible es un servidor automatizado con nodos de control y algunos nodos alojados que pueden administrar todo el servidor. En esta sección, demostraremos cómo instalar y configurar Ansible para funcionar correctamente.
Prerrequisitos: Comprender los conceptos básicos | Control de nodos, nodos alojados, archivos de inventario, scripts
Antes de hacer automatización en tiempo real, echemos un vistazo a la lista de componentes que necesitamos saber antes de continuar:
- Nodo de control: Se instala el sistema Ansible. En esta guía, el servidor Ansible está configurado en OpenSuse Linux.
- Nodo alojado: Servidor administrado por Ansible Control Node.
- Archivos de inventario/host: El archivo de inventario contiene una lista de IP de host que el nodo de control administrará.
- guion: Playbook es un script automático basado en YAML, Ansible se usa para realizar tareas automatizadas en nodos administrados.
Ahora, comencemos la configuración inicial:
Paso 1: Instale y configure Ansible en el nodo de control
Configurar Ansible en el nodo de control (es decir, instalar Ansible en el nodo de control):
Sudo zyper Instalar Ansible
Este comando seleccionará automáticamente los elementos esenciales requeridos (especialmente Python y sus dependencias relacionadas):
Aquí está el comando para instalar Ansible en otras distribuciones de Linux:
Sudo DNF Instalar Ansible
Sudo Fácil Instalar Ansible
Sudo Parkman -s Ansible
Vamos a ver la versión instalada:
Paso 2: Crear archivo de inventario/host en el nodo de control
Por defecto, los archivos de inventario se encuentran en «/etc/ansible/hosts». Sin embargo, si no está disponible, podemos crearlo manualmente:
Sudo nanómetro /ETC/Ansible/anfitrión
Aquí, [main] es un grupo que representa un servidor específico. Del mismo modo, podemos crear múltiples grupos en el mismo patrón para acceder al servidor y realizar las operaciones requeridas en todo el grupo.
Paso 3: Instale y configure SSH en el nodo host
Ansible se comunica con el nodo host a través de SSH. Ahora configuraremos SSH en el nodo host (nodo alojado). Este procesopaso«En total»Nodos alojados«.
Instalemos primero SSH en el sistema:
Sudo Fácil Instalar OpenSsh-server
Si administra nodos que no sean Ubuntu/Debian, puede instalar SSH en función de su distribución de Linux utilizando uno de los siguientes comandos:
Sudo DNF Instalar OpenSsh-server
Sudo zyper Instalar Abierro
Sudo Parkman -s Abierro
Porque solo tenemos unoNodo de control«, Para una mejor seguridad, hemos agregado una regla de que solo se puede acceder a los puertos SSH desde el nodo de control:
Notas: Si se ha cambiado el puerto predeterminado SSH, debe mencionar el nombre del puerto para abrir ese puerto en particular.
- Permitir IP específicos en los puertos SSH: Al configurar un firewall en un nodo administrado, solo puede permitir que IPS específicos interactúen con nodos administrados en SSH. Por ejemplo, el siguiente comando solo permite IP '192.168.140.142Interact en el puerto SSH.
Sudo UFW se permite a cualquier puerto desde 192.168.140.142 Veintidós
Recargemos el firewall:
Confirme el estado del firewall:
Paso 4: Cree un usuario ansible para una conexión remota
Usemos «SumadorEl comando 'crea un nuevo usuario para Ansible. El nodo de control se comunica solo a través del usuario ansible:
Agrégalo al grupo sudo:
Sudo Usermod -Ag Sudo nombre de usuario>
Cree un inicio de sesión sin comunicación para este usuario solamente. Abra el archivo «/etc/sudoers» y agregue la siguiente línea al final del archivo:
Paso 5: Establezca la tecla SSH | Generar y copiar
Generemos las teclas SSH en el nodo de control:
Ahora copie estas claves para el host remoto:
Nombre de usuario de SSH-Copy-ID@Dirección IP/Nombre de host
Notas: Hay varias formas de generar y copiar claves SSH. Lea nuestra guía especialCómo establecer la tecla SSH ”para dar una descripción detallada de cómo funciona la tecla SSH.
Paso 6: Pruebe la conexión | Control del nodo al nodo host
Después de realizar cada paso sin error, probemos la conexión desde el nodo de control al host alojado. Hay dos formas de probar conexiones, a saber, conexiones individuales y conexiones de uno a muchos.
El siguiente comando ansible usa su «silbido«El módulo prueba la conexión desde el nodo de control a uno de los hosts, es decir. Linuxhint.
Ansible Linuxhint -metro silbido -u nombre de usuario>
Aquí, el siguiente comando ansible pings controla todos los hosts que el nodo debe administrar:
todo -metro silbido -u ansible_admin
El estado de éxito allana el camino para más enfoques.
Ansible Playbooks | Automatizar Linux en minutos
Ansible Playbook es un script automático que se ejecuta en nodos administrados (todos o nodos seleccionados). Ansible Playbook sigue a la sintaxis Yaml y necesita ser seguida estrictamente para evitar cualquier error de sintaxis. Comencemos por dar una visión general rápida de la sintaxis YAML:
Prerrequisito: Comprenda los conceptos básicos de Yaml
YAML es el requisito principal para escribir libros de jugadas Ansible. Dado que es un lenguaje de marcado, su sintaxis debe seguirse correctamente para tener scripts y ejecuciones sin errores. Actualmente se requiere que los componentes principales de YAML se concentren en comenzar con Ansible Playbooks:
- sangría → Defina la jerarquía y la estructura general. Solo 2 espacios. No use pestañas.
- Clave: valor → Definir configuraciones/parámetros/estado para ayudar en las tareas en el script.
- Lista → En YAML, la lista contiene una serie de acciones a realizar. La lista puede actuar como independiente o ayudar en cualquier tarea.
- Variable → Al igual que otros lenguajes de script/programación. Las variables en YAML definen valores dinámicos de reutilización en el script.
- diccionario → Relacionado con el grupo «Clave: valor«En una sola clave, generalmente se usa para parámetros del módulo.
- Cadena → Denota valores de texto, como nombres de tareas, mensajes y citas opcionales. Las cadenas también tienen el mismo propósito principal, al igual que en otros lenguajes de script/programación.
Esto es lo que puede ayudarlo a escribir un libro de jugadas Ansible.
Archivos variables | Usado en Ansible Playbook
Aquí usaremos un archivo variable que se usa en el libro de jugadas para la llamada/asignación variable. El contenido del archivo vars.yml es el siguiente:
Hay tres variables en este archivo, es decir, el paquete contiene solo un paquete, mientras que los otros dos son «server_packages» y «ether_utils», que contienen un conjunto de paquetes.
Paso 1: crear un libro de jugadas Ansible
Creemos un archivo de script:
Sudo nanómetro /ETC/Ansible/testplay.yml
Aquí, el nombre del archivo variable es «var.ymlRelacionado con este script.
—
– Anfitrión: AllBecome: Sí
vars_files:
-vars.yml
Tarea:
– Nombre: instalar el paquete
Fácil de:
Nombre: «{{ embalar}}»
Estado: ahora
aquí:
- este»Anfitrión: todos«Tenga en cuenta que el script se implementará en todos los hosts enumerados en el archivo host/inventario.
- «SE: SÍEs útil aumentar los permisos al ejecutar comandos que requieren privilegios raíz.
- «vars_file«Llame al archivo variable.
- este»Tarea«Contiene las tareas que se implementarán en este script. Solo hay una tarea en este script:
- La tarea se nombra «Instale el paquete de software«, conFácil«Módulos y variables»Nombre«Se utilizará desde el archivo variable.
Paso 2: automatizar tareas
Antes de implementar este script, podemos realizar ejecuciones secas de script en todos los servidores para verificar su ejecución exitosa. Aquí está el comando para hacer esto:
Ansible Playbook /ETC/Ansible/testplay.yml -u ansible_admin – Controlar
Ejecutemos el script recién creado con el usuario creado:
Ansible Playbook /ETC/Ansible/testplay.yml -u ansible_admin
Notas: También podemos usar «usar», es decir, usar «-IOpción «y proporcionar la ruta al archivo de inventario.
Del mismo modo, podemos usar otros grupos variables mencionados en el archivo variable.
Por ejemplo, el siguiente script ahora se llama «servidor_packages«mutable e instalado según la disponibilidad del servidor:
—
– Anfitrión: AllBecome: Sí
vars_files:
-vars.yml
Tarea:
– Nombre: instalar el paquete
Fácil de:
Nombre: «{{{server_packages}}» «
Estado: ahora
Aquí,SE: SÍ«Para permisos raíz. Esto se usa cuando una tarea requiere privilegios raíz. Las tareas en este script aprovechan diferentes variables en el archivo variable.
Juguemos el libro en el script en el nodo alojado usando el siguiente comando:
Ansible Playbook /ETC/Ansible/testplay.yml -u ansible_admin – Controlar
Todos los Verdes señalan que el script se implementará con éxito. borrar»-ControlarMarque del comando anterior para implementar el script.
Este es el plato principal de este artículo. Dado que Ansible está respaldado por una lista de comandos, compilamos una serie de listas de comandos que los principiantes quieren entender cuando se usan Ansible.
Bonificación: comando ansible 101
Ansible es un servidor de automatización esencial con su propia lista de comandos para administrar toda la operación del servidor. Aquí hay una lista de comandos Ansible que serán útiles para todos los que usan Ansible o están diseñados para usar Ansible:
Orden | Objetivo |
---|---|
Ansible -i | Pruebe la conexión de Ansible con todos los hosts en el archivo de inventario/host. |
Ansible -playbook -i | implementar |
Ansible -playbook -i | Simule scripts sin cambiar el sistema de destino/nodo alojado. |
Ansible -playbook -i | Verifique la sintaxis Yaml |
Ansible -i | Ejecute comandos de shell específicos en el nodo administrado. |
Ansible -playbook -i | Ejecute el script con salida detallada. Use -VV para opciones más detalladas. |
Inventario ansible -i | Muestre todos los hosts/grupos en el archivo de inventario para verificar la configuración. |
Notas: Si el archivo de inventario/host está en la ubicación predeterminada (/etc/ansible/), puede omitir el indicador «-I» utilizado en el comando anterior. |
Para una demostración completa de la hoja de trucos de CLI ansible, consulte la documentación ansible – Hoja de trucos de CLI ansible.
en conclusión
Para comenzar a usar Ansible, primero, instale Ansible en un sistema (nodo de control), y luego instale y configure SSH en un host remoto (nodo administrado). Ahora genere una tecla SSH en el nodo de control y copie la clave al nodo administrado.
Una vez que se resuelva la conexión, configure los archivos de inventario y escriba el script. Eso es todo. Ansible estará configurado y listo para ejecutarse.
Todos estos pasos están realmente probados en esta guía. Simplemente navegue por la guía y háganos saber si tiene alguna pregunta o alguna pregunta difícil. Ayudaremos con la instalación y la configuración de Ansible.