Tabla de Contenidos
Ansible
Definicion
Ansible es una plataforma de software libre para configurar y administrar ordenadores. Combina instalación multi-nodo, ejecuciones de tareas ad hoc y administración de configuraciones. Adicionalmente, Ansible es categorizado como una herramienta de orquestación.
Fichero de configuracion ansible
En este fichero podemos establecer los distintos hosts que queramos administrar de manera automatizada; pero tenemos que crear una carpeta llamada ansible dentro del directorio /etc; y ahí insertar el fichero hosts:
Y ahora debemos añadir estas líneas, donde pondremos primero las IP de aquellos equipos que queramos administrar, y luego abajo ponemos para que siempre se utilice la última versión de Python:
Y ahora podemos probar en lanzar un ping al equipo que tenemos añadido dentro del fichero hosts; y si vemos algo como esto es que tenemos conectividad:
Si tuviera configurado otro grupo de servidores, podría mandarlo a todos poniendo dos puntos:
También puedo mandar el ping a un sólo servidor, sin especificar ningún grupo:
También podemos lanzar un comando cualquiera utilizando el módulo shell, por ejemplo crear un directorio en el actuar espacio de trabajo dentro del servidor, utilizando el usuario mario o root, aunque para ello debemos haber configurado correctamente el usuario root dentro de la parte de “Fichero de configuración automático”
Y vemos que el fichero se creó correctamente en el servidor:
Instalar servicio ssh en linux
El primer paso será instalar ssh de esta forma:
sudo apt install openssh-server
Después utilizaremos este comando para comprobar el estado de ejecución de SSH; y deberíamos verlo en ejecución:
sudo systemctl status ssh
Y por último podemos asegurarnos de que permanezca activado con este comando:
Ahora tendremos que configurar el firewall para que permita conexiones por SSH sin problema; y para ello creamos esta regla utilizando este comando:
sudo ufw allow ssh
Y ahora sólo tenemos que reiniciar el servicio SSH para aplicar todos estos cambios; para ello utilizaremos este comando:
sudo service ssh restart
Ahora vamos a probarlo desde otro equipo poniendo la IP del equipo donde estamos configurando el servicio SSH y poniendo el username:
Modulo copy
COPIAR DESDE EQUIPO LOCAL A REMOTO
Para copiar un fichero desde nuestra máquina local a otra máquina remota, debemos hacer este código y muy importante poner la variable $HOME para que se vaya sustituyendo por el nombre de usuario correspondiente:
COPIAR UN ARCHIVO DE UNA UBICACIÓN A OTRA DENTRO DEL EQUIPO REMOTO
Aquí vamos a copiar un archivo de una ubicación a otra dentro de la misma máquina remota:
PARA ESCRIBIR DENTRO DE UN DOCUMENTO CON ANSIBLE Lo haremos de esta manera, utilizando content para indicar el testo y en destino la ruta de dicho documento:
Modulo_file
CREAR UN NUEVO FICHERO EN BLANCO CON ANSIBLE
CREAR VARIOS ARCHIVOS A LA VEZ EN ANSIBLE
Para crear varios archivos, tendremos que utilizar una variable del sistema llamada item para que se creen varios archivos a la vez:
PARA CREAR CARPETAS O DIRECTORIOS CON ANSIBLE
Modulo gestor de paquetes apt
Con este módulo podemos ejecutar el comando APT para instalar paquetes sobre los equipos que queramos administrar. Esto lo haremos realizando la siguiente configuración dentro del playbook y teniendo en cuenta el fichero de configuración de ansible para que no haya errores (utilizamos become: true para ejecutar el comando con permisos de root)
Y para eliminar un programa, lo haríamos de esta forma:
Ahora para aplicar un apt autoremove, haríamos esto:
Para actualizar todos los repositorios, sería de esta forma:
modulo_service
Podemos también iniciar un servicio de esta manera:
Pero si queremos detenerlo, será de esta forma:
Si queremos hacerle un enable, sería de esta otra forma:
Para hacer un restart:
Playbooks
Esto sirve para automatizar la ejecución de muchos comandos en los distintos servidores; es como una receta o un script donde se guardan los distintos comandos a ejecutar y en qué servidores. Por tanto creamos el fichero con extensión yml:
Y a este fichero le pondremos esta estructura para hacer un ping a todas las máquinas dentro del grupo servers, y luego crear dos archivos y hacer un ping:
Y ahora para lanzar este playbook a la máquina o al grupo de máquinas que estén dentro del grupo servers, debemos ejecutar este comando:
Y ahora vemos que en la máquina administrada se crearon correctamente estos dos archivos dentro del actual directorio de trabajo:
En caso de querer ejecutar un comando en un solo equipo, debemos especificarlo en el playbook de esta manera:
































