LinuxParty
Ansible es un software de código abierto que se utiliza como herramienta de gestión de la configuración y como orquestación. Con Ansible, podemos implementar múltiples aplicaciones en múltiples nodos simultáneamente sin interacciones humanas. Cuando se trata de funciones, cubre las siguientes cosas.
- Sin agente
- Fácil de usar
- Sistema de automatización inteligente
- A diferencia de otras herramientas de gestión de la configuración como puppet y chef, en Ansible no es necesario instalar paquetes adicionales en nodos remotos.
Condiciones: Los siguientes términos se tienen en cuenta al utilizar Ansible.
Control node: el nodo de control es una máquina donde necesitamos instalar ansible. Este nodo de control controla los nodos remotos.
Managed hosts : los nodos remotos se denominan hosts administrados.
Inventory file : este es un archivo de texto simple. Contiene la ubicación de los hosts administrados en el nodo de control. Puede encontrar más términos aquí, que se utilizan en Ansible.
Requerimientos:
- Autenticación SSH sin contraseña entre el nodo de control y los hosts administrados.
- Python podría instalarse en hosts administrados.
(Hoy en día, la mayoría de las distribuciones de Linux vienen con un paquete Python preinstalado y SSH. Por lo tanto, no es necesario instalar nada en los hosts administrados para usar Ansible. Solo requiere autenticación SSH sin contraseña)
Autenticación sin contraseña entre el nodo de control y los hosts gestionados: Genere la clave SSH en el nodo de control # ssh-keygen
Copie la clave SSH en los hosts administrados # ssh-copy-id <IP / nombre de host administrado>
(Nota: aquí mi IP de nodo de control es 192.168.56.1. Tengo dos hosts administrados que son 192.168.56.101 y 192.168.56.102 )
Ahora intente iniciar sesión a través de SSH en hosts administrados
#ssh <IP de host administrado / nombre de host>
Ahora iniciará sesión en los hosts administrados sin proporcionar una contraseña.
Instalación de Ansible en el nodo de control
#dnf install -y ansible (para máquinas basadas en Fedora)
#yum install -y ansible (para máquinas basadas en Red Hat, CentOS, Scientific Linux)
# apt-get install ansible (para máquinas basadas en Ubuntu)
Archivo de inventario El archivo de inventario es un archivo de texto simple. Se encuentra en /etc/ansible/hosts por defecto en el nodo de control. Pero también podemos cambiar la ubicación del archivo de inventario en el archivo /etc/ansible/ansible.cfg. El archivo de inventario almacena la ubicación de los hosts administrados. Los hosts administrados se pueden separar en diferentes grupos en el archivo de inventario. Agregar hosts administrados en el archivo de inventario
vim /etc/ansible/hosts
[web-servers]
192.168.56.101
192.168.56.102
Aquí 192.168.56.101 y 192.168.56.102 son mis hosts administrados. web_servers es el nombre de grupo de esos hosts administrados. Los grupos son útiles en el archivo de inventario. Se usa para dividir los hosts administrados dependiendo de su uso funcional.
Prueba de conectividad
Mediante el uso del módulo ping podemos verificar la conectividad del nodo de control y los nodos gestionados. Hay muchos módulos disponibles en Ansible. Puede encontrar todos esos módulos de Ansible aquí .
#ansible -m ping web-servers
Comandos ad-hoc Los comandos ad-hoc no son más que un comando de una sola línea. El siguiente comando es un ejemplo de comando ad-hoc.
#ansible -m command -a 'uptime' web_servers
aquí, -m = módulos y -a = atributo. Mostrará cuánto tiempo ha estado funcionando el sistema.
Playbooks
Playbooks no son más que un archivo de texto en formato YAML. Los libros de playbooks de Ansible están escritos en formato YAML en formato de lenguaje legible por humanos. Hace que Ansible sea fácil de entender. Cuando queremos implementar múltiples aplicaciones en hosts administrados o necesitamos configurar algo en hosts administrados, ese momento de situaciones ansilbe playbooks llega aquí. Es como un script de shell, pero más fácil que escribir un script de shell. Playbook contiene varias tareas y se ejecuta en varias máquinas.
Ejemplo de libro playbooks El siguiente libro de jugadas instalará el servidor apache en hosts administrados y finalmente probará el servidor apache.
#vim Web-server.yml
---
- name: setup website
hosts: web_servers
tasks:
- block:
- name: Install httpd package
yum: name=httpd state=latest
- block:
- name: firewalld permits http service
firewalld: service=http permanent=true state=enabled
- block:
- name: httpd enabled and running
service: name=httpd enabled=true state=running
- name: firewalld enabled and running
service: name=firewalld enabled=true state=restarted
- block:
- name: test html page
shell: echo "Welcome to Ansible test page" > /var/www/html/index.html
- name: Test website
hosts: web_servers
tasks:
- name: latest python-httplib2 version installed
yum: name=python-httplib2 state=latest
- name: Verify the web server
uri: url=http://localhost status_code=200
También puede obtener este código anterior en mi cuenta de github. Aquí está el enlace para obtener el código.
Guarde el código anterior como archivo example_playbook.yml. Aquí estoy usando varios módulos. puede obtener el uso y las funciones de los módulos en esta página .
Nota: Ansible sigue estrictamente la sangría, así que tenga cuidado al dar espacios en blanco en los scripts YML.
También puede verificar la sangría de los scripts usando el siguiente comando,
#ansible-playbook --syntax-check <playbook file>
En el código anterior, las tareas se pueden separar por bloques. En el código anterior,
- El primer bloque de código instalará el paquete apache. Aquí estoy usando el módulo yum.
- El segundo bloque de código permitirá http en el firewall.
- El tercer bloque de código habilita apache y firewalld al inicio. Aquí estoy usando el módulo de servicio.
- El cuarto bloque de código creará un archivo de índice. Aquí estoy usando el módulo de shell.
- Finalmente, la última tarea probará el servidor web.
Ejecutando Playbook
# ansible-playbook example_playbook.yml
Si tiene algún problema al hacer esto, no dude en poner sus pensamientos en el cuadro de comando. Te ayudaré. Gracias por leer.
Obtención de ayuda De manera
similar a las páginas de manual de Linux, hay un comando disponible para Ansible en el que puede obtener ayuda.
# ansible-doc <nombre-módulo>
Para un módulo de servicio de ejemplo
ansible-doc service
Si tiene algún problema al hacer esto, no dude en poner sus pensamientos en el cuadro de comando. Te ayudaré. Gracias por leer.
-
Seguridad
- Conexión Segura NFS en Linux, Tunelizar NFS sobre SSH y Configuración de NFS sobre SSH para Mayor Seguridad
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Millones de teléfonos móviles podrían ser vulnerables a la vigilancia del gobierno chino
- Cómo limitar las conexiones SSH a la red local en Linux
- Los televisores inteligentes son como un «caballo de Troya digital» en los hogares
- Snort para Windows, detección de Intrusos y seguridad.
- Detección de Intrusiones con las herramientas: BASE y Snort.
- El Sistema de Detección de Intrusos: Snort. ( Windows y Linux )
- Configuración con Ejemplos de Snort para Windows, detección de intrusiones
- ¿El gobierno de EE. UU. ignoró la oportunidad de hacer que TikTok fuera más seguro?
- ¿Qué es SSH y cómo se utiliza? Los conceptos básicos de Secure Shell que necesitas saber
- Asegurar memcached del servidor, para evitar amplificar ataques DDoS
- Consejos de Seguridad para Pagos Móviles en España: Protege tus Transacciones con Estos Consejos Prácticos
- 22 herramientas de seguridad de servidores Linux de código abierto en 2023
- 8 hábitos que deben tomar los teletrabajadores altamente seguros