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-Netinst
2- 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.yaml
ansible_user: 'deploy'
ansible_connection: ssh
ansible_password: !vault |
$ANSIBLE_VAULT;1.1;AES256
35326639633134646231393034393465383966613032386339303966376234636466306463326664
3066333563643335363837376631663835386464393635300a666433366265336366393434613434
63393732353363306331376361613166626132653935313665356533326237353565623561636263
3731626335343632650a356361306434323066356564326433646137316364656661353130626632
6333
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 @prompt
Vault 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.
Dejar una contestacion