Volver al blog

Ansible y LVM

ansible-portada-03

Hola de nuevo,

Esta vez seguimos con el uso práctico con ansible.
En el artículo anterior habíamos preparado la máquina con CentOS, esta vez el template que usaré será con Debian.

Preparación del template.

1- Descargar la distro Debian-Netinst2- Instalar el OS con todas las particiones separadas por defecto en LVM en modalidad mínima, sin nada extra, solo SSH server
3- Setear el user deploy con la password aleatoria como ya explique anteriormente para el despliegue (el user lo llame así esta vez para evitar confusión)4- Instalamos los paquetes necesarios: apt install python sshpass
5- Apagas la VM, la conviertes en template y usando el metodo para 'vmware_guest' la despliegas como explique en el artículo anterior.6- En el PC donde tendremos las configuraciones luego del primer despliegue que sería la creación de la VM Debian, preparamos las credenciales para probar que todo funciona.

En la configuración de ansible quedaría:

Recojemos la llave publica de la VM desplegada

ssh-copy-id [email protected]
Escribimos esa clave aleatoria en el fichero de variables para la conexión ya cifrada

tony@debian:~/deploys$ cat inventory/group_vars/debian.yamlansible_user: 'deploy'ansible_connection: sshansible_password: !vault |$ANSIBLE_VAULT;1.1;AES256353266396331346462313930343934653839666130323863393039663762346364663064633266643066333563643335363837376631663835386464393635300a666433366265336366393434613434633937323533633063313763616131666261326539353136653565333262373535656235616362633731626335343632650a3563613064343230663565643264336461373163646566613531306266326333
Agrego la VM al inventario

tony@debian:~/deploys$ cat inventory/hosts[debian]192.168.131.153
y probamos hacer un ping desde ansible y vemos que responde.

tony@debian:~/deploys$ ansible -m ping debian -o --vault-id @promptVault password (default):192.168.131.153 | SUCCESS => {"changed": false,"ping": "pong"}
Recuérdense que la password de conexión esta cifrada y ejecutar el ping usando siempre "--vault-id @prompt"

Pero... estará bien particionado la VM que usaremos como server para X servicio en particular?
Podemos hacer 2 cosas:

1- Conectarnos directamente y revisar las particiones que hizo la instalación por defecto

deploy@debian:~$ df -h | egrep mapper
/dev/mapper/debian--vg-root 23G 663M 21G 3% /
/dev/mapper/debian--vg-home 90G 61M 86G 1% /home
/dev/mapper/debian--vg-tmp 1,4G 4,4M 1,3G 1% /tmp
/dev/mapper/debian--vg-var 8,0G 271M 7,3G 4% /var

2- Como dijimos que no tocaríamos el server manualmente para evitar errores , lo hacemos a traves de ansible

Si por ejemplo este server digamos que seria uno para servicio Web,
podríamos quitarle de los 86G que tiene "home" reducirle hasta 30G, pasarle a "/" unos 40G.

Sabemos que el servidor web lo instalaremos partiendo de la raíz en "/srv/www/html" y
nos hace falta espacio, otros 10Gb agregárselo a "/var" por el tema que dentro de
"/var/log/apache" escribirian nuestras trazas del server, dejando unos 20 tantos GB a home.

Nos creamos un playbook para gestionar esto usando el modulo de ansible que gestiona LVM

Ejecutamos el playbook

ansible-playbook --vault-id @prompt debian
Y esperamos que termine el proceso. (En este caso siendo un reajuste de 3 particiones, entre reducción de "home", y extensión de la raíz y de "var" es un proceso que podría llevarse tiempo largo, basta esperar). Es el mismo proceso y tiempo que harías si usaras un LiveCD para hacer lo mismo.

Que hablando de esto:

Si nos conectamos a la VM para ir viendo que esta haciendo cuando esta ejecutándose el playbook vemos que por debajo esta "moviendo el mantel sin quitar los platos" , evitando errores si lo hicieramos a mano.

Esta demás aclarar que este tipo de proceso NO ES para interrumpirlo porque se jode el filesystem.
Es todo.

Suscríbete · Newsletter

Mantente al día, cada semana

Artículos prácticos sobre Linux, redes, seguridad, virtualización y la nube — escritos por sysadmins cubanos.

  • Guías y tutoriales de administración de sistemas
  • Nuevos artículos sobre servidores, redes y nube
  • Sin spam, cancela cuando quieras

Respetamos tu bandeja de entrada. Cancela con un clic.

Patrocinado por SYSCU

¿Tu infraestructura en la nube te cuesta de más?

SYSCU optimiza tu nube de punta a punta — FinOps, DevOps & CI/CD, migraciones a AWS, seguridad y observabilidad. Equipo 100 % senior que reduce tu factura hasta un 40 % y acelera tus despliegues en semanas.

Nuevo · BetaSYSCU Atlas Insight — la plataforma FinOps que convierte tu gasto AWS en decisiones: visibilidad multi-cuenta, recomendaciones automáticas y alertas de anomalías.

No comments yet