(Terkait dengan Panggilan balik atau kaitan, dan serangkaian tugas yang dapat digunakan kembali, dalam peran yang dimungkinkan ):
Apakah ada cara yang lebih baik untuk menambahkan ke daftar atau menambahkan kunci ke kamus di Ansible dari (ab) menggunakan ekspresi template jina2?
Saya tahu Anda dapat melakukan sesuatu seperti:
- name: this is a hack
shell: echo "{% originalvar.append('x') %}New value of originalvar is {{originalvar}}"
tetapi apakah benar-benar tidak ada semacam tugas atau penolong untuk melakukan ini?
Rasanya rapuh, tampaknya tidak berdokumen, dan bergantung pada banyak asumsi tentang bagaimana variabel bekerja di Ansible.
Kasing penggunaan saya adalah beberapa peran (ekstensi server basis data) yang masing-masing harus menyediakan beberapa konfigurasi ke peran dasar (server basis data). Ini tidak sesederhana menambahkan baris ke file konfigurasi server db; setiap perubahan berlaku untuk baris yang sama , misalnya ekstensi bdr
dan pg_stat_statements
keduanya harus muncul pada baris target:
shared_preload_libaries = 'bdr, pg_stat_statements'
Apakah cara yang dimungkinkan untuk melakukan ini hanya memproses file konfigurasi beberapa kali (sekali per ekstensi) dengan regexp yang mengekstrak nilai saat ini, mem-parsingnya, dan kemudian menulis ulang? Jika demikian, bagaimana Anda membuat idempoten itu di beberapa berjalan?
Bagaimana jika konfigurasi lebih sulit dari ini untuk diurai dan tidak sesederhana menambahkan nilai lain yang dipisahkan koma? Pikirkan file konfigurasi XML.