Sådan bruges Ansible Vault i Playbooks til beskyttelse af følsomme data - Del 10


Når du går rundt om at bruge Ansible, kan du blive bedt om at indtaste fortrolige eller hemmelige oplysninger i playbøger. Dette inkluderer SSH private og offentlige nøgler, adgangskoder og SSL-certifikater for blot at nævne nogle få. Som vi allerede ved, er det dårlig praksis at gemme disse følsomme oplysninger i almindelig tekst af åbenlyse grunde. Disse oplysninger skal holdes under lås og nøgle, fordi vi kun kan forestille os, hvad der ville ske, hvis hackere eller uautoriserede brugere fik fat i det.

Heldigvis giver Ansible os en praktisk funktion kendt som Ansible Vault. Som navnet antyder, hjælper Ansible Vault med at sikre vigtig hemmelig information, som vi har diskuteret tidligere. Ansible Vault kan kryptere variabler eller endda hele filer og YAML-playbøger, som vi senere skal demonstrere. Det er et meget praktisk og brugervenligt værktøj, der kræver den samme adgangskode, når du krypterer og dekrypterer filer.

Lad os nu dykke ind og få et overblik over de forskellige operationer, der kan udføres ved hjælp af Ansible vault.

Sådan oprettes en krypteret fil i Ansible

Hvis du vil oprette en krypteret Playbook-fil, skal du blot bruge kommandoen create ansible-vault og angive filnavnet som vist.

# ansible-vault create filename

For eksempel, for at oprette en krypteret fil mysecrets.yml, udfør kommandoen.

# ansible-vault create mysecrets.yml

Derefter bliver du bedt om et kodeord, og efter at have bekræftet det, åbnes et nyt vindue ved hjælp af vi-editoren, hvor du kan begynde at skrive dine stykker.

Nedenfor er et eksempel på nogle oplysninger. Når du er færdig, skal du blot gemme og afslutte playbook. Og det handler bare om det, når du opretter en krypteret fil.

For at bekræfte filkrypteringen skal du bruge cat-kommandoen som vist.

# cat mysecrets.yml

Sådan får du vist en krypteret fil i Ansible

Hvis du vil se en krypteret fil, skal du blot sende kommandoen ansible-vault som vist nedenfor.

# ansible-vault view mysecrets.yml

Endnu en gang bliver du bedt om en adgangskode. Endnu en gang har du adgang til dine oplysninger.

Sådan redigeres en krypteret fil i Ansible

For at foretage ændringer i en krypteret fil skal du bruge kommandoen ansible-redigering som vist.

# ansible-vault edit mysecrets.yml

Angiv som altid adgangskoden, og fortsæt derefter med at redigere filen.

Når du er færdig med at redigere, skal du gemme og afslutte vim-editoren.

Sådan ændres adgangskode til brugbar boks

Hvis du føler behov for at ændre adgangskoden til Ansible hvælving, kan du nemt gøre det ved hjælp af ansible-vault rekey-kommandoen som vist nedenfor.

# ansible-vault rekey mysecrets.yml

Dette beder dig om adgangskoden til boksen og beder dig senere om at indtaste den nye adgangskode og senere bekræfte den.

Sådan krypteres en ukrypteret fil i Ansible

Antag at du vil kryptere en ukrypteret fil, du kan gøre det ved at køre ansible-vault-krypteringskommandoen som vist.

# ansible-vault encrypt classified.txt

Du kan senere se filen ved hjælp af kommandoen cat som angivet nedenfor.

Sådan dekrypteres en krypteret fil

For at se indholdet af en krypteret fil skal du blot dekryptere filen ved hjælp af ansible-vault-krypteringen som illustreret i eksemplet nedenfor.

# ansible-vault decrypt classified.txt

Sådan krypteres specifikke variabler i Ansible

Derudover giver Ansible vault dig muligheden for at kryptere bestemte variabler. Dette gøres ved hjælp af kommandoen ansible-vault encrypt_string som vist.

# ansible-vault encrypt_string 

Ansible hvælving vil bede dig om adgangskoden og senere kræve, at du bekræfter den. Skriv derefter den strengværdi, du vil kryptere. Til sidst skal du trykke på ctrl + d . Derefter kan du begynde at tildele den krypterede værdi i en playbook.

Dette kan opnås på en enkelt linje som vist nedenfor.

# ansible-vault encrypt_string 'string' --name 'variable_name'

Sådan dekrypteres en Playbook-fil under kørselstid

Hvis du har en playbook-fil og vil dekryptere den under kørsel, skal du bruge indstillingen --ask-vault-pass som vist.

# ansible-playbook deploy.yml --ask-vault-pass

Dette dekrypterer alle de filer, der bruges i playbook, forudsat at de blev krypteret ved hjælp af den samme adgangskode.

Adgangskodebeskederne kan til tider være irriterende. Disse meddelelser gør automatisering uholdbar, især når automatisering er nøglen. For at strømline processen med dekryptering af playbooks under kørsel anbefales det at have en separat adgangskodefil, der indeholder Ansible vault-adgangskoden. Denne fil kan derefter sendes under kørsel som vist.

# ansible-playbook deploy.yml --vault-password-file  /home/tecmint/vault_pass.txt

Dette bringer os til slutningen af dette emne og Ansible automatiseringsserien. Vi håber, at vejledningerne har tilført nogle nyttige viden om, hvordan du kan automatisere opgaver på tværs af flere servere fra et centralt system.