Kami menggunakan Ansible Vault untuk menyimpan kata sandi, kunci pribadi untuk sertifikat, dll. Di repositori git Playbook Ansible kami. Semua data pribadi kami yang ada adalah dalam bentuk teks, sehingga kami dapat menyimpannya dalam variabel. Ini kemudian digunakan dalam template atau dengan content
parameter modul salin.
Sekarang, kami memiliki file Java KeyStore, yang sayangnya memiliki format biner. Dengan demikian, itu tidak dapat disimpan di dalam variabel - atau setidaknya saya tidak tahu bagaimana melakukannya. Apa cara termudah untuk membuat file kita dienkripsi dengan benar sementara itu berada di git, tetapi tersedia saat dijalankan ansible-playbook
?
Apa yang sudah saya coba tanpa keberhasilan:
- Pengkodean file biner di base64, menyimpan data yang dikodekan dalam variabel dan menggunakan modul template dengan
{{base64_data | b64decode}}
. Mengarah ke banyakEF BF BD
dump hex dari file yang dihasilkan. Tiga byte mengkodekan karakter pengganti Unicode di UTF-8, jadi ada masalah dengan menafsirkan data biner sebagai teks. - Pengkodean file biner di base64, menyimpan data yang dikodekan dalam variabel dan menggunakan modul salin dengan
content="{{base64_data | b64decode}}"
. Kemungkinan mengeluh dengan "Variabel memasukkan parameter baru ke dalam argumen modul." Saat menggunakan tanda kutip tunggal dan bukan tanda kutip ganda, Ansible mengeluh dengan "string argumen parsing kesalahan", dan salinan dari semua data biner, dibuang ke terminal ...