Dalam file template untuk properti broker kafka, kami menggunakan variabel {{kafka.broker.id}}
mengacu pada file inventaris hosts.yml
. Tetapi variabel {{kafka}}
didefinisikan dalam peran defaults
.
Ini masih akan berjalan dengan benar karena hierarki prioritas variabel Ansible , seperti pada nilai {{kafka.broker.id}}
pertama-tama akan diambil dari kamus inventory_host
, tetapi untuk kejelasan akan lebih baik untuk tidak mencampur ruang nama.
Saya pikir kita harus menggunakan {{ inventory_hostname.kafka.broker.id }}
untuk memperjelas ini.
Hal yang sama terjadi dengan listeners=PLAINTEXT://:{{broker.config.port}}
. Dalam hal ini, {{broker}}
berasal dari confluent.common/defaults/main.yml
. Penempatan nama yang lebih baik di sini akan membuat segalanya lebih jelas.
Saya melihat sekarang inilah yang dilakukan properti gabungan ansible.cfg
. Saya masih berpikir ini membuat buku pedoman kurang mudah dibaca dan lebih sulit untuk dipelajari.
Saya mengalami masalah yang sama ketika saya menjalankan peran 'confluent.kafka-broker' hari ini dan menghabiskan beberapa jam untuk menemukannya.
@chuck-confluent - Saya mengalami situasi ini hari ini. Ketika saya memperbarui template base_server_properties Jinja untuk menggunakan broker.id={{ inventory_hostname.kafka.broker.id }}
dan menjalankan kembali Ansible, saya mendapatkan kesalahan berikut. Masih mencoba men-debug mengapa.
TUGAS [confluent.kafka-broker: broker sasl_ssl config] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
fatal: [localhost]: GAGAL! => {"berubah": false, "msg": "AnsibleUndefinedVariable: 'ansible.parsing.yaml.objects.AnsibleUnicode object' tidak memiliki atribut 'kafka'"}
@chuck-confluent kami baru saja menggabungkan PR berikut, yang membuat sebagian besar jika tidak semua properti dapat ditimpa. Harus menyelesaikan masalah yang Anda lihat.
Komentar yang paling membantu
Saya melihat sekarang inilah yang dilakukan properti gabungan
ansible.cfg
. Saya masih berpikir ini membuat buku pedoman kurang mudah dibaca dan lebih sulit untuk dipelajari.