Ejercicio 1: Introducción a ansible
-
Realiza la instalación de ansible. Puedes usar los repositorios oficiales de Debian, o realizar una instalación con
pipen un entorno virtual python. -
Crea una máquina virtual que vamos a configurar con ansible. Esta máquina debe tener las siguientes características:
- Debe tener creado un usuario sin privilegios con el que podamos acceder a la máquina usando claves ssh.
- Debe tener instalado
sudoy el usuario que estamos usando para acceder debe estar configurado para poder usarsudosin que le pida la contraseña.
-
El inventario es el fichero donde definimos los equipos que vamos a configurar. Crea un directorio y dentro un fichero llamado
hosts, con el siguiente contenido:all: children: servidores: hosts: nodo1: ansible_ssh_host: ansible_ssh_user: ansible_ssh_private_key_file:En el inventario se clasifican los equipos por grupos:
- El grupo
allcorresponde a todos los equipos definidos. - En este ejemplo hemos creado un grupo
servidores, donde hemos definido nuestra máquina. - A la máquina la hemos llamado
nodo1(cambia el nombre y pon el de tu máquina), además debes rellenar la siguiente información del nodo:ansible_ssh_host: Dirección IP del equipo que queremos configurar.ansible_ssh_user: Usuario sin privilegios con el que vamos a acceder por ssh.ansible_ssh_private_key_file: Fichero con la clave privada que vamos a usar para el acceso.
- El grupo
-
Crea un fichero de configuración llamado
ansible.cfgen el directorio del proyecto, con el siguiente contenido:[defaults] inventory = hosts host_key_checking = False -
Comprueba la conectividad con el nodo usando el módulo
ping:ansible all -m ping: Comprueba la conectividad con todos los equipos del inventario.ansible servidores -m ping: Comprueba la conectividad con los equipos del grupo servidores.ansible nodo1 -m ping: Comprueba la conectividad con el equipo nodo1.
Debe salir el mensaje “pong” en verde.
-
Practica con los siguientes módulos de ansible:
-
command: Ejecuta comandos en el nodo remoto. Con
-aindicamos los parámetros del módulo.ansible all -m command -a "uptime" ansible all -m shell -a "echo $HOME | wc -c" -
copy: Permite copiar ficheros desde nuestro ordenador al nodo remoto.
ansible all -m copy -a "src=./index.html dest=/tmp/index.html mode=0644" -
file: Gestiona archivos, directorios y permisos.
ansible all -m file -a "path=/tmp/ansible_demo state=directory mode=0755" -
apt: Instala, actualiza o elimina paquetes.
ansible nodo1 -m apt -a "name=apache2 state=present" --become -
service: Gestiona servicios del sistema.
ansible nodo1 -m service -a "name=apache2 state=started enabled=yes" --become -
user: Crea, modifica o elimina usuarios.
ansible all -m user -a "name=demo shell=/bin/bash groups=sudo state=present" --become
-