Del curso: Aprende Ansible: automatiza tu servidor Linux
Variables en tu inventario - Tutorial de Ansible
Del curso: Aprende Ansible: automatiza tu servidor Linux
Variables en tu inventario
¿Sabías que Ansible te permite definir variables directamente en tu inventario? Pues sí, con Ansible podrás definir variables cuando des de alta a tu servidor en el inventario, aunque esta manera está típicamente reservada para variables relacionadas con la conexión, como pueden ser el puerto, el usuario, la clave que vas a utilizar. En mi inventario, por ejemplo, tenemos dos servidores con varias variables, dos grupos y un grupo de grupos. Entonces, vamos a ver cómo podríamos añadir nuevas variables para personalizar tu conexión. Vamos con la documentación de Ansible. Vamos a ver exactamente cómo se definen estas variables y qué variables tenemos disponibles para nuestro inventario. Por ejemplo, tenemos el tipo de conexión. Vas a poder personalizar entre diferentes conexiones. Tienes el host, lo tenemos ya definido, es la IP en mi caso. Necesitamos el puerto, también podemos poner el usuario, la contraseña. Contraseña no es recomendable que la pongas en texto plano. Deberías utilizar el vault de Ansible. Básicamente el vault de Ansible va a ser un fichero que vas a tener encriptado con una clave que solo vas a tener tú, porque solo la tienes que tener tú, de manera que el sistema, que Ansible pueda acceder a esa clave, a esa contraseña, pero nadie la pueda leer, solamente tú. ¿Qué más opciones tenemos? Por ejemplo, podemos definir la clave privada que queremos que se utilice, porque para diferentes proyectos puedes tener diferentes claves; ssh_common_args para diferentes argumentos para SSH, para SFTP, para SCP, más argumentos o, por ejemplo, la versión de SSH o el binario de SSH que quieras que se ejecute. Eso también es muy interesante si tienes que conectarte a servidores un poco antiguos o que requieran algún tipo de seguridad extra. ansible_become para ver si quieres escalar privilegios y con qué usuario y con qué método y con qué contraseña, incluso el binario que se tiene que ejecutar. Yo te recomiendo que revises la documentación, hay un montón de parámetros que podrás forzar o configurar para personalizar tu propia conexión. Así que vamos a ver cómo añadiríamos cualquiera de ellos. Por ejemplo, ansible_become y vemos cómo añadiríamos cualquiera de ellos, por ejemplo, ansible_become y cómo funcionaría. Ya de vuelta en nuestro inventario, es tan sencillo como editarlo y añadir una nueva variable por servidor. En este caso, en el servidor 1 voy a añadir ansible_be... ansible_become como, por ejemplo, True y, sin embargo, en el 2 podría añadirlo como False, que es el otro valor que puede tomar. Básicamente, si quiero que se escalen privilegios o no quiero que se escalen privilegios. False. Y ya estaría, ya tengo mi inventario con mis nuevas variables. De esta manera, sé que en el servidor 1 vamos a poder escalar privilegios, pero en el servidor 2 no se van a poder escalar privilegios con todo lo que ello implica. No se podrán instalar cosas, pero bueno, será también más seguro.