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.