Apa itu Ansible Vault
Ansible Vault adalah fitur enkripsi dari Ansible. Fitur ini memungkinkan Anda untuk mengenkripsi informasi sensitif yang tidak ingin Anda daftarkan seperti yang ada di Git.
Cara menggunakan Ansible Vault
Instalasi
Untuk menggunakan Ansible Vault, Anda perlu menginstal Ansible, yang dapat dengan mudah dilakukan dengan perintah brew
pada Mac.
$ brew install ansible
encrypt
Anda dapat mengenkripsi file dengan perintah ansible-vault encrypt
.
Misalkan Anda memiliki sample.txt
berikut ini.
hello world
Enkripsi file ini. Jalankan perintah berikut. Anda akan diminta untuk memasukkan kata sandi saat menjalankannya.
$ ansible-vault encrypt sample.txt
New Vault password:
Confirm New Vault password:
Encryption successful
Anda dapat melihat bahwa sample.txt
dienkripsi.
$ cat sample.txt
$ANSIBLE_VAULT;1.1;AES256
35346464303934323662376134353665626366656530306435343563613639356661303032613531
3538363133366661366132653661383763313564303435610a353037323661373237376565626163
38666534616566343862396233373138323466376332383334626637313365666332626165613263
3938343333313936360a393865313834326439613332316238383735663738363639626538623432
3039
view
Anda dapat menggunakan perintah ansible-vault view
untuk melihat isi file terenkripsi.
File sample.txt
dienkripsi sebagai berikut.
$ANSIBLE_VAULT;1.1;AES256
35346464303934323662376134353665626366656530306435343563613639356661303032613531
3538363133366661366132653661383763313564303435610a353037323661373237376565626163
38666534616566343862396233373138323466376332383334626637313365666332626165613263
3938343333313936360a393865313834326439613332316238383735663738363639626538623432
3039
Periksa isi file dengan perintah berikut.
$ ansible-vault view sample.txt
Vault password:
hello world
decrypt
Anda dapat mendekripsi file terenkripsi dengan perintah ansible-vault decrypt
.
File sample.txt
dienkripsi sebagai berikut.
$ANSIBLE_VAULT;1.1;AES256
35346464303934323662376134353665626366656530306435343563613639356661303032613531
3538363133366661366132653661383763313564303435610a353037323661373237376565626163
38666534616566343862396233373138323466376332383334626637313365666332626165613263
3938343333313936360a393865313834326439613332316238383735663738363639626538623432
3039
Dekripsi file dengan perintah berikut.
$ ansible-vault decrypt sample.txt
Vault password:
Decryption successful
Jika Anda memeriksa isi sample.txt
, Anda akan melihat bahwa isinya telah didekripsi.
$ cat sample.txt
hello world
edit
Anda dapat mengedit file terenkripsi dengan perintah ansible-vault edit
.
File sample.txt
dienkripsi sebagai berikut.
$ANSIBLE_VAULT;1.1;AES256
35346464303934323662376134353665626366656530306435343563613639356661303032613531
3538363133366661366132653661383763313564303435610a353037323661373237376565626163
38666534616566343862396233373138323466376332383334626637313365666332626165613263
3938343333313936360a393865313834326439613332316238383735663738363639626538623432
3039
Edit file dengan perintah berikut.
$ ansible-vault edit sample.txt
Layar edit akan muncul sebagai berikut.
Mari kita tambahkan hello world2
. Untuk menyelesaikan pengeditan, ketik :wq
dan tekan Enter.
sample.txt
akan diperbarui sebagai berikut.
$ANSIBLE_VAULT;1.1;AES256
66643539663734313236383233323632396332386435343338643133316265633866356334373735
3434633866386133633337616366653831653130396237660a303362613461316666626534633039
31653665613166646431343761663030336432626237646439356435383263343863353562363535
6362336435386564620a633761366435653261636231303962376464343438333635306666316634
62656237363533613930366164643534613036376165626235306230396538313232
rekey
Anda dapat mengubah kata sandi enkripsi dengan perintah ansible-vault rekey
.
$ ansible-vault rekey sample.txt
Vault password:
New Vault password:
Confirm New Vault password:
Rekey successful
encrypt_string
Perintah ansible-vault encrypt_string
memungkinkan Anda untuk mengenkripsi hanya nilai tertentu dalam sebuah file.
Misalkan Anda memiliki file sample.yml
berikut ini.
ansible_user: admin
ansible_password: Passw0rd
Jalankan perintah berikut untuk mengenkripsi Passw0rd
pada file sample.yml
.
$ ansible-vault encrypt_string 'Passw0rd' --name 'ansible_passowrd'
New Vault password:
Confirm New Vault password:
Encryption successful
ansible_passowrd: !vault |
$ANSIBLE_VAULT;1.1;AES256
61666133633537333166386335396662623163636437346438353039323461346439343463663337
3037633263366231316336313831356230656266646536380a303965613565336461313931386634
30616131653230356666396239386561613166393730353261363963393465386338663733386231
3663343932656539300a666234353464643632646661326339653438613631303338363530653166
3563
Pada saat ini, tidak ada yang berubah pada sample.yml
. Ganti secara manual Passw0rd
di sample.yml
sebagai berikut.
$ cat sample.yml
ansible_user: admin
ansible_passowrd: !vault |
$ANSIBLE_VAULT;1.1;AES256
61666133633537333166386335396662623163636437346438353039323461346439343463663337
3037633263366231316336313831356230656266646536380a303965613565336461313931386634
30616131653230356666396239386561613166393730353261363963393465386338663733386231
3663343932656539300a666234353464643632646661326339653438613631303338363530653166
3563
Anda dapat mendekripsi nilai dengan menjalankan perintah berikut.
$ echo '$ANSIBLE_VAULT;1.1;AES256
61666133633537333166386335396662623163636437346438353039323461346439343463663337
3037633263366231316336313831356230656266646536380a303965613565336461313931386634
30616131653230356666396239386561613166393730353261363963393465386338663733386231
3663343932656539300a666234353464643632646661326339653438613631303338363530653166
3563' | ansible-vault decrypt
Vault password:
Decryption successful
Passw0rd
--vault-password-file
Anda dapat menentukan file kata sandi dengan opsi --vault-password-file
.
Misalkan Anda memiliki pw_file
berikut ini.
mypassword
You can encrypt sample.txt
by specifying pw_file
as the password file with the following command.
$ ansible-vault encrypt --vault-password-file pw_file sample.txt
--vault-id
Ansible Vault memungkinkan beberapa kata sandi.
Opsi --vault-id label@source
menentukan pengenal Vault dan berkas kata sandi. Sebagai contoh, perintahnya akan terlihat seperti ini.
$ ansible-vault encrypt --vault-id password1@pw_file sample.txt
--output
Opsi --output
memungkinkan Anda menentukan tujuan output untuk file yang dihasilkan.
$ ansible-vault encrypt --output dir/sample.txt.vault sample.txt
$ ansible-vault decrypt --output sample.txt dir/sample.txt.vault
Referensi