Apa yang setara dengan konfigurasi Ansible dari `--vault-password-file`?

12

Menurut bantuan dari playbook-ansible, seseorang dapat menggunakan --user=REMOTE_USERuntuk mendefinisikan pengguna ssh, tetapi seseorang juga dapat mendefinisikan ansible_ssh_user: REMOTE_USERdi host-atau group_vars.

Pertanyaan

Variabel apa yang perlu didefinisikan di direktori group- atau host_vars untuk mencegah hal --vault-password-fileitu harus didefinisikan saat berjalan ansible-playbook?

Mencoba

  • Ketika ansible_vault_password_file: ~/.vault_pass.txtdidefinisikan dalam konfigurasi, dekripsi gagal:

    ERROR! Decryption failed on /path/to/vault
    
  • Tidak ada variabel vault terkait yang ditemukan dalam dokumentasi ini

030
sumber
Btw sekarang didokumentasikan (dari versi 1.7) di sini: docs.ansible.com/ansible/…
Tensibai

Jawaban:

13

Berikut ini definisi:

DEFAULT_VAULT_PASSWORD_FILE = get_config(p, DEFAULTS, 'vault_password_file', \
'ANSIBLE_VAULT_PASSWORD_FILE', None, value_type='path')

Ini berarti Anda memasukkan ansible.cfg atau playbook:

vault_password_file: ~/.vault_pass.txt

Atau di shell Anda mendefinisikan variabel ini:

export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
Jiri Klouda
sumber
Saya telah meninggalkan teks url di sana dengan sengaja untuk menunjukkan kepada orang-orang bagaimana melihat kode dapat membantu di mana dokumentasi kurang dan di mana kode dapat ditemukan dengan mudah. Tapi saya kira hyperlink sudah cukup.
Jiri Klouda
Jika ada yang gagal, baca dokumentasi ... dan jika tidak ada dokumentasi, baca sumbernya ... jika Anda memiliki akses ke sana ... dan jika ya, pastikan Anda melihat versi yang benar .. Satu-satunya hal yang tersisa adalah dapat memahami semuanya. PS: tautan mungkin berhenti bekerja suatu hari ...
Pierre.Vriens
@JiriKlouda sepertinya tidak berfungsi meskipun sudah didefinisikan dalam group_vars/all/vars. export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtharus dijalankan.
030
Ini adalah variabel konfigurasi. Itu harus di ansible.cfg atau setara atau di playbook.
Jiri Klouda
Juga saya telah secara khusus memeriksa versi 2.2 yang Anda jalankan dan itu ada di sana: github.com/ansible/ansible/blob/stable-2.2/lib/ansible/…
Jiri Klouda
2

Anda dapat mengatur variabel lingkungan untuk ANSIBLE_VAULT_PASSWORD_FILEmenyimpan path file password vault. Dengan cara ini Anda tidak akan selalu menggunakan --vault-password-filesakelar saat menjalankan buku pedoman.

Ini dijelaskan dalam dokumentasi Vault Ansible, tersedia di sini .

Jadi, tambahkan export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtke ~/.bash_profilesumber Anda dari sana dan Anda siap untuk pergi.

Jika Anda memerlukan kata sandi brankas yang berbeda untuk berbagai kelompok host, maka Anda harus melakukan hal berikut:

Di dalam subdirektori ini, buat dua file bernama vars and vault. Di dalam file vars, tentukan semua variabel yang diperlukan, termasuk yang sensitif. Selanjutnya, salin semua variabel sensitif ke file vault dan awali variabel ini dengan vault_. Anda harus menyesuaikan variabel dalam file vars untuk menunjuk ke variabel vault_ yang cocok dan memastikan bahwa file vault dienkripsi.

Ini adalah contoh untuk pendekatan praktik terbaik untuk mengelola informasi sensitif berdasarkan per kelompok. Informasi lebih lanjut tersedia di dokumentasi Ansible di sini (Teks di atas disalin dari sana).

13ditarik
sumber
1
Ini tidak akan mengizinkan kata sandi yang berbeda per host
Tensibai
Apakah Anda mengacu pada kata sandi koneksi? Karena jika Anda melakukannya, apa kesamaannya dengan Ansible Vault?
13dimitar
Saya merujuk pada kata sandi vault, bersedia memiliki kata sandi vault yang berbeda untuk berbagai kelompok masuk akal (dan merupakan akar dari pertanyaan sejauh yang saya mengerti).
Tensibai
Saya tidak mengerti seperti itu. Saya telah mengedit jawaban saya untuk memasukkan skenario itu.
Desember
sepertinya lebih baik. Btw downvote bukan milikku
Tensibai