Com utilitzar Ansible Vault a Playbooks per protegir dades sensibles - Part 10
A mesura que utilitzeu Ansible, és possible que se us demani que introduïu informació confidencial o secreta als llibres de jugades. Això inclou claus públiques i privades SSH, contrasenyes i certificats SSL per esmentar-ne només alguns. Com ja sabem, és una mala pràctica guardar aquesta informació sensible en text sense format per raons òbvies. Aquesta informació s'ha de mantenir sota clau perquè només ens podem imaginar què passaria si els pirates informàtics o usuaris no autoritzats la posseïssin.
Afortunadament, Ansible ens proporciona una funció útil coneguda com Ansible Vault. Com el seu nom indica, Ansible Vault ajuda a assegurar la informació secreta vital, tal com hem comentat anteriorment. Ansible Vault pot xifrar variables, o fins i tot fitxers sencers i llibres de jugades YAML, tal com demostrarem més endavant. És una eina molt útil i fàcil d'utilitzar que requereix la mateixa contrasenya per xifrar i desxifrar fitxers.
Ara endinsem-nos i tinguem una visió general de les diferents operacions que es poden dur a terme amb Ansible vault.
Com crear un fitxer xifrat a Ansible
Si voleu crear un fitxer de Playbook xifrat, només cal que utilitzeu l'ordre ansible-vault create i proporcioneu el nom del fitxer tal com es mostra.
# ansible-vault create filename
Per exemple, per crear un fitxer xifrat mysecrets.yml executeu l'ordre.
# ansible-vault create mysecrets.yml
A continuació, se us demanarà una contrasenya i, després de confirmar-la, s'obrirà una finestra nova amb l'editor vi on podreu començar a escriure les vostres obres.
A continuació es mostra una mostra d'alguna informació. Un cop hàgiu acabat, simplement deseu i sortiu del llibre de jugades. I això és tot quan es crea un fitxer xifrat.
Per verificar el xifratge del fitxer, utilitzeu l'ordre cat tal com es mostra.
# cat mysecrets.yml
Com veure un fitxer xifrat a Ansible
Si voleu veure un fitxer xifrat, només heu de passar l'ordre de vista ansible-vault tal com es mostra a continuació.
# ansible-vault view mysecrets.yml
Un cop més, se us demanarà una contrasenya. Un cop més, tindreu accés a la vostra informació.
Com editar un fitxer xifrat a Ansible
Per fer canvis en un fitxer xifrat, utilitzeu l'ordre d'edició ansible-vault tal com es mostra.
# ansible-vault edit mysecrets.yml
Com sempre, proporcioneu la contrasenya i, a continuació, procediu a editar el fitxer.
Un cop hàgiu acabat d'editar, deseu i sortiu de l'editor vim.
Com canviar la contrasenya d'Ansible Vault
En cas que sentiu la necessitat de canviar la contrasenya de la caixa forta d'Ansible, podeu fer-ho fàcilment mitjançant l'ordre de reclau ansible-vault tal com es mostra a continuació.
# ansible-vault rekey mysecrets.yml
Això us demanarà la contrasenya de la bóveda i més tard us demana que introduïu la nova contrasenya i que la confirmeu més tard.
Com xifrar un fitxer sense xifrar a Ansible
Suposem que voleu xifrar un fitxer sense xifrar, podeu fer-ho executant l'ordre ansible-vault encrypt tal com es mostra.
# ansible-vault encrypt classified.txt
Més tard podeu veure el fitxer mitjançant l'ordre cat com s'indica a continuació.
Com desxifrar un fitxer xifrat
Per visualitzar el contingut d'un fitxer xifrat, només cal que desxifra el fitxer mitjançant el xifrat ansible-vault, tal com es mostra a l'exemple següent.
# ansible-vault decrypt classified.txt
Com xifrar variables específiques a Ansible
A més, Ansible vault us ofereix la possibilitat de xifrar determinades variables. Això es fa mitjançant l'ordre ansible-vault encrypt_string tal com es mostra.
# ansible-vault encrypt_string
Ansible vault us demanarà la contrasenya i més tard us demanarà que la confirmeu. A continuació, escriviu el valor de cadena que voleu xifrar. Finalment, premeu ctrl+d
. A partir de llavors, podeu començar a assignar el valor xifrat en un llibre de jugades.
Això es pot aconseguir en una sola línia, tal com es mostra a continuació.
# ansible-vault encrypt_string 'string' --name 'variable_name'
Com desxifrar un fitxer de Playbook durant el temps d'execució
Si teniu un fitxer del llibre de jocs i voleu desxifrar-lo durant el temps d'execució, utilitzeu l'opció --ask-vault-pass
tal com s'il·lustra.
# ansible-playbook deploy.yml --ask-vault-pass
Això desxifra tots els fitxers que s'utilitzen al llibre de jugades sempre que s'hagin xifrat amb la mateixa contrasenya.
Les sol·licituds de contrasenya poden ser molestes de vegades. Aquestes indicacions fan que l'automatització sigui insostenible, sobretot quan l'automatització és clau. Per agilitzar el procés de desxifrar llibres de joc durant el temps d'execució, es recomana tenir un fitxer de contrasenya independent que contingui la contrasenya de la caixa forta d'Ansible. Aquest fitxer es pot passar durant el temps d'execució, tal com es mostra.
# ansible-playbook deploy.yml --vault-password-file /home/tecmint/vault_pass.txt
Això ens porta a la conclusió d'aquest tema i de la sèrie d'automatització Ansible. Esperem que els tutorials hagin aportat coneixements útils sobre com podeu automatitzar tasques a diversos servidors des d'un sistema central.