Usando vault-id para crear múltiples vaults de Ansible
Crear dos vaults, uno para la dirección IP y otra para la clave API. Mantener las contraseñas para ambos vaults diferentes.
Crear un archivo llamado ipaddress.yml
ansible-vault create ipaddress.yml --vault-id ip@prompt
external_ip: 15.207.85.110
Crear otro archivo llamado apikey.yml
ansible-vault create apikey.yml --vault-id api@prompt
ipgeolocation_api_key: ""
Ahora vamos a editar el location.yml playbook como a continuación. (Sólo estamos actualizando el campo «vars_files»).
- name: Get IP Location Details
hosts: localhost
connection: local
gather_facts: no
vars_files:
- ipaddress.yml
- apikey.yml
tasks:
- name: Install Requests Library
pip:
name: requests
state: present
- name: Get IP location details
uri:
url: "https://api.ipgeolocation.io/ipgeo?apiKey={{ ipgeolocation_api_key }}&ip={{ external_ip }}"
method: GET
return_content: yes
register: location_details
- name: Print location details
debug:
msg: "{{ location_details.content }}"
Ahora para ejecutar playbook location.yml, necesita valores variables de ambos archivos. Como ambos archivos tienen diferentes contraseñas necesitamos proporcionar dos contraseñas. podemos hacer esto usando un comando como el siguiente.
ansible-playbook location.yml --vault-id ip@prompt --vault-id api@prompt
Puedes ver que el Playbook de arriba fue exitoso. y pidió dos contraseñas.
si pasa solo una contraseña fallará como abajo
De este modo, al utilizar Ansible Vault, puede gestionar de forma segura información confidencial, como nombres de usuario y contraseñas de bases de datos, claves de API y archivos de configuración.
Publicado originalmente en https://anujdube.com/