Introducción a Ansible Vault
Ansible Vault es una herramienta que permite a los usuarios cifrar datos sensibles, como contraseñas o claves, para que puedan ser almacenados de manera segura en los archivos de configuración de Ansible. Esto es especialmente útil cuando se trabaja en entornos colaborativos o se almacena el código en repositorios públicos.
Conceptos Clave
- Cifrado y Descifrado: Proceso de convertir datos legibles en un formato codificado y viceversa.
- Contraseña de Vault: Clave utilizada para cifrar y descifrar los datos.
- Archivos Vault: Archivos que contienen datos cifrados.
Instalación y Configuración
Ansible Vault viene incluido con Ansible, por lo que no es necesario instalarlo por separado. Sin embargo, es importante asegurarse de que Ansible esté correctamente instalado y actualizado.
Comandos Básicos de Ansible Vault
Crear un Archivo Vault
Para crear un archivo Vault, se utiliza el comando ansible-vault create
. Este comando abrirá un editor de texto donde se pueden ingresar los datos sensibles.
Ver un Archivo Vault
Para ver el contenido de un archivo Vault, se utiliza el comando ansible-vault view
.
Editar un Archivo Vault
Para editar un archivo Vault, se utiliza el comando ansible-vault edit
.
Cifrar un Archivo Existente
Si ya tienes un archivo y deseas cifrarlo, puedes usar el comando ansible-vault encrypt
.
Descifrar un Archivo Vault
Para descifrar un archivo Vault y convertirlo en un archivo de texto plano, se utiliza el comando ansible-vault decrypt
.
Cambiar la Contraseña de Vault
Para cambiar la contraseña utilizada para cifrar un archivo Vault, se utiliza el comando ansible-vault rekey
.
Uso de Ansible Vault en Playbooks
Cifrado de Variables
Es común cifrar variables sensibles en los playbooks. Aquí hay un ejemplo de cómo se puede hacer:
- Crear un archivo de variables cifrado:
- Incluir el archivo de variables en el playbook:
--- - name: Playbook con variables cifradas hosts: all vars_files: - vars.yml tasks: - name: Mostrar variable cifrada debug: msg: "{{ secret_variable }}"
Ejecución de Playbooks con Vault
Para ejecutar un playbook que contiene archivos Vault, se debe proporcionar la contraseña de Vault. Esto se puede hacer de varias maneras:
- Interactivamente: Ansible solicitará la contraseña al ejecutar el playbook.
- Archivo de Contraseña: Se puede proporcionar un archivo que contenga la contraseña.
Ejercicio Práctico
Ejercicio 1: Crear y Usar un Archivo Vault
- Crear un archivo Vault: Crea un archivo Vault llamado
secrets.yml
que contenga una variable llamadasecret_password
.
Contenido de secrets.yml
:
- Escribir un Playbook: Escribe un playbook que use la variable
secret_password
y la muestre en la salida.
--- - name: Playbook con variable cifrada hosts: localhost vars_files: - secrets.yml tasks: - name: Mostrar contraseña secreta debug: msg: "La contraseña secreta es: {{ secret_password }}"
- Ejecutar el Playbook: Ejecuta el playbook y proporciona la contraseña de Vault cuando se te solicite.
Solución
- Crear el archivo
secrets.yml
:
- Contenido de
secrets.yml
:
- Escribir el playbook
playbook.yml
:
--- - name: Playbook con variable cifrada hosts: localhost vars_files: - secrets.yml tasks: - name: Mostrar contraseña secreta debug: msg: "La contraseña secreta es: {{ secret_password }}"
- Ejecutar el playbook:
Conclusión
Ansible Vault es una herramienta poderosa para gestionar datos sensibles de manera segura en tus proyectos de Ansible. Con los comandos básicos y las prácticas recomendadas, puedes asegurarte de que tus contraseñas y claves estén protegidas. En el siguiente módulo, exploraremos cómo optimizar tus playbooks para mejorar su rendimiento y eficiencia.
Ansible: De Principiante a Avanzado
Módulo 1: Introducción a Ansible
Módulo 2: Conceptos Básicos de Ansible
Módulo 3: Playbooks
- Introducción a los Playbooks
- Escribiendo tu Primer Playbook
- Estructura del Playbook
- Variables y Hechos
- Condicionales y Bucles
Módulo 4: Roles
Módulo 5: Técnicas Avanzadas de Playbook
Módulo 6: Ansible Galaxy
Módulo 7: Ansible Tower
- Introducción a Ansible Tower
- Instalando Ansible Tower
- Usando Ansible Tower
- Gestionando Proyectos e Inventarios
Módulo 8: Ansible para DevOps
Módulo 9: Mejores Prácticas de Ansible
- Organización del Código
- Mejores Prácticas de Seguridad
- Ajuste de Rendimiento
- Pruebas de Código Ansible