Ansible-vault adalah perangkat (tool) yang dimiliki oleh ansible yang digunakan untuk melakukan enkripsi dan dekripsi (decryption) file-file yang berisi data. Proses enkripsi dan dekripsi (decryption) dapat dilakukan untuk berbagai file data ynag berada di group_var atau host_var dan variabel-variabel lainnya seperti variabel yang di-load di ansible oleh include_vars atau vars_file atau bahkan juga variabel berdasarkan argumen -e @file.yml atau -e @file.json.

Ansible-vault juga dapat digunakan untuk tasks, handlers dan berbagai obyek lainnya. Bahkan ansible-vault ini bisa digunakan untuk meng-enkripsi seluruh task yang ada tidak hanya data di dalamnya.

Algoritma AES256 digunakan dalam proses enkripsi ansible-vault ini.

Syntaks:

 $ ansible-vault [-h] [--version] [-v]
   {create,decrypt,edit,view,encrypt,encrypt_string,rekey}
              ...

Penjelasan untuk argumen -h dan –version:


--version : memperlihatkan nomor dari versi, lokasi dari file config, definisi PATH, lokasi dari modul ansible-vault dan exit

-h, --help : memperlihatkan dan menjelaskan  berbagai argumen dan opsi yang dapat digukana

-v, --verbose: memperlihatkan output standar yang lebih detil dari perintah ansible-vault yang umumnya digunakan saat troubleshooting. Huruf "v" bisa dimultigandakan, contohnya seperti ini -vvvv yang akan memperlihat informasi yang lebih detil.

Argumen kata kerja
– create
– decrypt
– view
– rekey
– encrypt_string

create:
menciptakan dan membuka sebuah file dengan editor, dan file ini akan dienkripsi dengan vault secret saat selesai dan juga editor akan keluar dari status edit dari fiie ini dan kembali ke prompt.

--encrypt-vault-id
digunakan untuk mengenkripsi

--skip-tty-check
membuka editor

--vault-id
menggunakan identitas vault-id, dapat digunakan lebih dari 1 kali

--vault-password-file, --vault-pass-file
password dari vault berada di dalam sebuah file yang direferensikan di atas
P
-J, --ask-vault-password, --ask-vault-pass
password dari vault akan ditanyakan saat kita menjalankan perintah ansible-vault

decrypt
decrypt the supplied file using the provided vault secret. Argumen-argumen yang ada sama dengan yang ada saat di-enkripsi.
Penjelasan yang ada di bagian enkripsi bisa menjadi referensi.

--output
output dari peintah dekripsi dari ansible-vault ditaruh di sebuah file. Untuk standar output gunakan "-"

--vault-id
sama dengan penjelasan di perintah enkripsi

--vault-password-file, --vault-pass-file
sama dengan penjelasan di perintah enkripsi

-J, --ask-vault-password, --ask-vault-pass
sama dengan penjelasan di perintah enkripsi

view
membuka, meng-dekrip (decrypt) dan melihat file yang telah dienkripsi dengan menggunakan secret dari vault yang diberikan.

--vault-id
sama dengan penjelasan di perintah enkripsi

--vault-password-file, --vault-pass-file
vault password file

-J, --ask-vault-password, --ask-vault-pass
ask for vault password

encrypt
meng-enkripsi file yang mejadi argumen dengan menggunakan vault secret yang diberikan.

--encrypt-vault-id
sama dengan penjelasan di perintah enkripsi

--output
hasil dari enkripsi atau dekripsi (decrypt) ditaruh di file . Untuk hasil ke standard output gunakan "-"

--vault-id
sama dengan penjelasan di perintah enkripsi

--vault-password-file, --vault-pass-file
sama dengan penjelasan di perintah enkripsi

-J, --ask-vault-password, --ask-vault-pass
sama dengan penjelasan di perintah enkripsi

rekey
mempebaharui enkripsi file yang telah di-enkripsi sebelumnya, dengan password baru.
Password lama dibutuhan untuk operasi ini.

--encrypt-vault-id 
sama dengan penjelasan di perintah enkripsi

--new-vault-id 
identtias vauld yang baru yang digunakan untuk perintah rekey.

--new-vault-password-file 
password baru untuk perintah rekey

--vault-id
sama dengan penjelasan di perintah enkripsi

--vault-password-file, --vault-pass-file
menggunakan password yang ada di sebuah file

-J, --ask-vault-password, --ask-vault-pass
sama dengan penjelasan di perintah enkripsi


encrypt_string:
Perintah ini digunakan untuk meng-enkripsi strings secara individu, seperti password dan data sensitive lainya yang
kemudian bisa digunakan di ansible-playbook, roles atau variabel

Berikut adalah contoh saat dibutuhkan untuk meng-enkripsi sebuah password berikut: teststring yang kemudian enkripsi string tersebut ditaruh di variabel Bernama user_password:

ansible-vault encrypt_string ‘teststring’ –name ‘user_password’

Berikut adalah argumen yang dapat digunakan:

encrypt the supplied string using the provided vault secret

--encrypt-vault-id
sama dengan penjelasan di perintah enkripsi

--output
nama dari file yang akan dijadikan tujuan dari enkripsi atau dekrips (decrypt)

--show-input
memperlihatkan string dari input yang akan dienkripsi

--stdin-name
Specify the variable name for stdin

--vault-id
the vault identity to use. This argument may be specified multiple times.

--vault-password-file, --vault-pass-file
vault password file

-J, --ask-vault-password, --ask-vault-pass
prompt akan menanyakan password dari vault

-n, --name
memberikan nama dari variabel yang akan di-enkripsi. -n ini bisa lebih dari 1 kali digunakan.

-p, --prompt
promp akan meminta string yang akan di-enkripsi

Environment
Saat ANSIBLE_CONFIG didefinisikan sebelum perintah ansible-vault, environment ini akan meng-override file config default.

Penjelasan di atas diambil dari situ ansible

Di bawah ini diperlihatkan berbagai perintah ansible-vault dan hasil di output standar:

$ ansible-vault
usage: ansible-vault [-h] [--version] [-v] {create,decrypt,edit,view,encrypt,encrypt_string,rekey} ...
ansible-vault: error: the following arguments are required: action

usage: ansible-vault [-h] [--version] [-v] {create,decrypt,edit,view,encrypt,encrypt_string,rekey} ...

encryption/decryption utility for Ansible data files

positional arguments:
  {create,decrypt,edit,view,encrypt,encrypt_string,rekey}
    create              Create new vault encrypted file
    decrypt             Decrypt vault encrypted file
    edit                Edit vault encrypted file
    view                View vault encrypted file
    encrypt             Encrypt YAML file
    encrypt_string      Encrypt a string
    rekey               Re-key a vault encrypted file

options:
  --version             show program's version number, config file location, configured module search path, module location, executable location and exit
  -h, --help            show this help message and exit
  -v, --verbose         Causes Ansible to print more debug messages. Adding multiple -v will increase the verbosity, the builtin plugins currently evaluate up to -vvvvvv. A reasonable level to start is -vvv,
                        connection debugging might require -vvvv.

See 'ansible-vault <command> --help' for more information on a specific command.
$ ansible-vault   --version
ansible-vault [core 2.15.2]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['~/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  ansible collection location = ~/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible-vault
  python version = 3.10.12 (main, Sep 11 2024, 15:47:36) [GCC 11.4.0] (/usr/bin/python3)
  jinja version = 3.0.3
  libyaml = True
$ ansible-vault --help
usage: ansible-vault [-h] [--version] [-v] {create,decrypt,edit,view,encrypt,encrypt_string,rekey} ...

encryption/decryption utility for Ansible data files

positional arguments:
  {create,decrypt,edit,view,encrypt,encrypt_string,rekey}
    create              Create new vault encrypted file
    decrypt             Decrypt vault encrypted file
    edit                Edit vault encrypted file
    view                View vault encrypted file
    encrypt             Encrypt YAML file
    encrypt_string      Encrypt a string
    rekey               Re-key a vault encrypted file

options:
  --version             show program's version number, config file location, configured module search path, module location, executable location and exit
  -h, --help            show this help message and exit
  -v, --verbose         Causes Ansible to print more debug messages. Adding multiple -v will increase the verbosity, the builtin plugins currently evaluate up to -vvvvvv. A reasonable level to start is -vvv,
                        connection debugging might require -vvvv.

See 'ansible-vault <command> --help' for more information on a specific command.

Berikut adalah contoh enkripsi dan dekrip dari sebuah file playbook

$ cat playbook_file_vault.yaml
- name: Demo enkripsi dan dekrip
  host: all
  tasks:
    - name: Debug
          debug:
              var: variabel_rahasia

$ ansible-vault encrypt playbook_file_vault.yaml  --vault-password-file vault_password_file
Encryption successful

$ ANSIBLE_VAULT;1.1;AES256
63383237396534626464333938346564323339666435343466353231623035623430316333376437
6437613234396234373262383565326431333531616233360a393939356138353635323361663732
32633036666366303863303866663065663934653935376138306565613835666263313964393931
6536623031383132350a326332663863636135393165663237356234666165623638333962623036
38356136323130636462643464636436346631663661366237363530326335396361323831316139
34356439313163653362383631373037393136333939363132633462396335383936623231633236
33643534653533383466326330303838356631333662643862333766363663376464323861373365
34356532316638336166393435393132643661396535663833663734393431623233383037316630
64383463396138343138393935376634636361306533613165363333633666646666623837383161
3461353730663639356363616538363130383636343564636230
[friedal@ DEMO_VAULT]$ ansible-vault decrypt playbook_file_vault.yaml  --vault-password-file vault_password_file
Decryption successful

[friedal@ DEMO_VAULT]$ cat playbook_file_vault.yaml
- name: Demo enkripsi dan dekrip
  host: all
  tasks:
    - name: Debug
          debug:
              var: variabel_rahasia

Related Posts

Verified by MonsterInsights