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.