Ansible – Encrypt/Decrypt Hosts Configration File

— ENCRYPT —

Generate file key

$ echo "Masukkan Passwordnya Disini" | openssl dgst -sha256 -binary | openssl base64 > ~/.ssh/.ansible.key
$ cat ~/.ssh/.ansible.key
3Bvdpr9FE40FyCmRfEIxS0B6kAKdIpsK98R68kQWXQk==

Encrypt file hosts

$ ansible-vault encrypt --vault-password-file ~/.ssh/.ansible.key hosts
Encryption successful

Check file hosts

$ cat hosts
$ANSIBLE_VAULT;1.1;AES256
62663966306532643833653330666334333130323436636266626137626430343139353538303530
6639663736376664346438613133663036623432396234320a316166656638373834393235333335
38316431393431343632613165626633663231643533393363646238303731636163313161346132
6435326638343233350a333363613661373434303361616332613765316664393333393264333732
30393737633332356236616162343930363264616636613430353030306433356364616635366331
34353635336534363433353232383732363135613133333634623630326566333361623461386166
62326636656635623037646264363233633233653662656566353633383137383432366665313062
30656464626564326537316164336465343266393761396565323161346666643033333566633366
33303134376234323531313866616137383631613363396139383663393962626138643465336631
30356564636231393430306263613064396161353637373437613137333930363163303733303331
35336563313736343036366633373332313765636565323732363638666637666366316663333432
62623563333766303136653136376632373138666462333366373738366261333636303531393737
64323064633836326536396434653683666435643932616263646131303439623734306161656538
63393933616530336138356535343737363262376639346135336630373434623065363432666434
34356139373756643330353433353066343264653035373464613138633432656335333133623531
33316332613463346338383764623232663362366637326637303431666561333530313436356263
33326532646566306633636532376534646135396466373332316433386337363866646162373165
63376565626437353966663761313630643030323433363232393939626439363365616535623930
35363535363439656135653435393639393532393461383330393461353732366538626637613038
38373037376561353036623432313438323766353438376561373938346563663632666666633362
65373138616162363438363630316338333664636639333536356532356165643230323230633733
34343537646131376137333131323037656234353230643739313466626663616432363230396365
30663464396337373938666162636733616438393331363439353965346461376466333630383036
63326635656537306632353239333632313861353561383666343764356138663330373231336461
66393934363832303765646563613839643061373934633833613262613465326362333364316561
33333162386632323935653836646563313865313132623662323063656637353739386538396662
35663337657333333431323061396364616334656631366661633561646130666131306233356336
62363132623937336262303032663535363163323130353564366332646332393938323962393265
3364

edit ansible.cfg before running Ansible Playbook

$ vi ansible.cfg
[defaults]
inventory = $HOME/ansible/hosts
remote_tmp = $HOME/ansible/tmp/ansible-${USER}/tmp
local_tmp = $HOME/ansible/tmp/ansible-${USER}/tmp
host_key_checking = False
timeout = 15
log_path = $HOME/ansible/ansible.log
vault_password_file = ~/.ssh/.ansible.key                           # <-- add this parameter

 

— DECRYPT —

$ ansible-vault decrypt --vault-password-file ~/.ssh/.ansible.key hosts
Decryption successful