Dans le fichier modèle des propriétés du courtier kafka, nous utilisons la variable {{kafka.broker.id}}
faisant référence au fichier d'inventaire hosts.yml
. Mais la variable {{kafka}}
est définie dans le defaults
du rôle.
Cela fonctionnera toujours correctement en raison de la hiérarchie de priorité des variables d' {{kafka.broker.id}}
sera d'abord extraite du dictionnaire inventory_host
, mais pour plus de clarté, il serait préférable de ne pas mélanger les espaces de noms.
Je pense que nous devrions utiliser {{ inventory_hostname.kafka.broker.id }}
pour que cela soit clair.
La même chose se produit avec listeners=PLAINTEXT://:{{broker.config.port}}
. Dans ce cas, {{broker}}
vient du confluent.common/defaults/main.yml
. Un meilleur espacement des noms ici rendra les choses plus claires.
Je vois maintenant que c'est ce que fait la propriété de fusion de ansible.cfg
. Je pense toujours que cela rend le playbook moins lisible et plus difficile à apprendre.
Je souffre du même problème lorsque j'exécute le rôle 'confluent.kafka-broker' aujourd'hui et passe plusieurs heures à le trouver.
@chuck-confluent - J'ai rencontré cette situation aujourd'hui. Lorsque je mets à jour le modèle Jinja base_server_properties pour utiliser broker.id={{ inventory_hostname.kafka.broker.id }}
et que je réexécute Ansible, j'obtiens l'erreur suivante. J'essaye toujours de déboguer pourquoi.
TÂCHE [confluent.kafka-broker : broker sasl_ssl config] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
fatal : [localhost] : ÉCHEC ! => {"changé": false, "msg": "AnsibleUndefinedVariable: 'ansible.parsing.yaml.objects.AnsibleUnicode object' n'a pas d'attribut 'kafka'"}
@chuck-confluent, nous venons de fusionner le PR suivant, ce qui rend la plupart, sinon toutes les propriétés, substituables. Devrait résoudre les problèmes que vous rencontrez.
Commentaire le plus utile
Je vois maintenant que c'est ce que fait la propriété de fusion de
ansible.cfg
. Je pense toujours que cela rend le playbook moins lisible et plus difficile à apprendre.