Ansible paso a paso
Hola amigos de #culturalibre los tenia un poco abandonado con los tutoriales, pero aca andamos, hoy con un tutorial sobre #ansible ya que si queres administrar varios servidores al mismo tiempo esta es una de las formas de gestión conocidas, asi que sin más los dejo con Ansible paso a paso.

¿Qué es Ansible?
Ansible es una herramienta opensource que nos permite gestionar configuraciones, aprovisionamiento de recursos, despliegue automático de aplicaciones, automatizar los procesos informáticos para preparar la infraestructura, y muchas otras tareas de TI de una forma limpia y sencilla.
¿Que ventajas tiene utilizar Ansible?
Automatización simplificada
Ansible es una plataforma fácil de usar y fácil de instalar y configurar, con una velocidad de aprendizaje muy rápida. En menos de 30 minutos es posible instalar y configurar el sistema, así como ejecutar comandos ad hoc para que los servidores puedan resolver un problema específico: ajustes de horario de verano, sincronización de hora, cambio de contraseña raíz, actualización de servidores, reinicio de servicios, etc.
Curva de aprendizaje baja
Ansible se puede poner en marcha con facilidad porque no utiliza agentes ni infraestructura de seguridad personalizada adicional. También utiliza YAML, un lenguaje sencillo que describe el trabajo de automatización a través de libros de estrategia. Los libros de estrategia insertan la configuración deseada en los hosts definidos en el inventario e incluso se pueden ejecutar ad hoc (a través de la línea de comandos, sin necesidad de definiciones en archivos).
Automatizar ahora
Desde el momento en que se puede hacer ping en los hosts a través de Ansible, se puede empezar a automatizar el entorno. Es necesario no tirarse a la pileta de una para no ahogarse! Empezá por tareas pequeñas hasta que veas los resultados esperados y luego irás ejecutando acciones más complejas que seguramente hacen al negocio.
Instalación de Ansible
sudo apt install ansible

Instalando el subsystem en windows (cosa que no me gusta) o por medio de un contenedor de docker o por que no una maquina virtual chiquita que uses para administración de distintos nodos podrías tener tu ansible instalado.
Para hacer un poquito de practicas e ir entendiendo ansible paso a paso vamos a utilizar dos maquinas virtuales que estan en esta oportunidad en la misma red local
Algunos conceptos sobre Ansible
- Facts: Información útil de los clientes.
- Inventario: Permite definir equipos agruparlos y espacificar valores grupales o individuales. Por defecto los inventarios se encuentran en /etc/ansible/hosts sin embargo se puede establecer una ruta personalizada con -i . Además, se puede predefinir la ruta en un archivo de configuración de Ansible: ansible.cfg
- Módulos: Son las librerías que se utilizan para controlar elementos como ficheros, servicios paquetes o comandos. Estos se copian al nodo cliente para que ejecute la tarea indicada.
- Nodo: Objeto a administrar, ya sea un servidor, un router y otro elementos.
- Play: Lista de tareas a realizar en los clientes especificados en el Playbook.
- Playbook: Se encarga de definir todas las tareas que debemos realizar sobre un conjunto de hosts clientes.
- Roles: Es una agrupación de tareas, ficheros y plantillas, que pueden ser reutilizados.
- Tareas: Definición de una acción a realizar.

Antes de continuar con la practica de ansible tenemos que comprobar que lleguemos con ping a ambos y que podamos ingresar por ssh ya que recordamos ansible no utiliza ningun tipo de agente. La mejor practica de ingreso es con sshkey que te lo mostre anteriormente en este articulo: https://culturalibre.ar/2022/05/07/seguridad-minima-para-un-servidor/

Ahora vamos armar nuestro inventario de manera basica para poder hacer una sencilla prueba que los meta al mundo de ansible. Recordamos que debemos editar/crear el archivo /etc/ansible/hosts
sudo nano /etc/ansible/hosts
Yo uso segun la necesidad un editor comun como nano o bien para cosas complejas podes usar visual code que te da una mano con escribir correctamente. Si es la primera vez que usas code el 1 2 3 4 es el numero de linea para organizarte no es que tenes que ponerlo!


Ya tenemos nuestro inventario creado y sabemos que con ssh podemos ingresar individualmente a cada uno. Ahora probamos ansible:
ansible all -m ping -u luiz
Obviamente donde dice luiz debes poner tu usuario o el que hayas decido poner para los servidores. No hace falta que todos lo servidores tengan el mismo usuario y contraseña ya que eso despues se puede en la reseta modificar para que configures user y pass para cada servidor

Hay muchos comandos ademas del ping que podemos ejecutar y eso lo vamos a ir ganando con la practica.
Otro ejemplo es con uptime:
ansible all -a "uptime"

Vamos a ir con algunos comandos de ejemplos más para practicar sin entrarnos al mundo playbook al cual le dedicaremos otra entrada completa.
Copiar Archivos a nuestros nodos
Copiar archivos de un lado a otro es una tarea comun, si al mismo archivo lo necesitamos copiar en todos nuestros servidores no podemos ir uno por uno. Con ansible lo hacemos de este modo:
ansible all -m copy -a "src=origen dest=destino"
En la siguiente imagen te muestro que en mi maquina virtual zetanote que tambien uso para pruebas cree una carpeta, luego cree un archivo llamado archivo1 que tiene como contenido la frase “soy un archivo” y luego con el comando anterior cambiando el origen y el destino, uso ansible para hacer la misma acción en los nodos que tengo. Imagina copiar 1 archivo en miles de servidores al mismo tiempo? asi es muy facil!

Borrar archivos
ansible all -m file -a "path=/tmp/archivo1 state=absent"
Fijense que lo que hace es cambiar el state o estado del archivo.
Cambiar permisos
ansible all -m file -a "path=/tmp/archivo1 mode=644"
Cambiar usuario o grupo
ansible all -m file -a "path=/tmp/archivo1 owner=luiz group=root"
Cambiar permisos a directorio
ansible all -m file -a "path=/tmp state=directory mode=755 owner=luiz"
Para que esta entrada sobre Ansible paso a paso no se haga más larga lo vamos a dejar por aca. Nos falta mucho mucho recorrido y pruebas para hacer, conocer modulos, playbook y mucho más. Gracias por pasar por #culturalibre