There is yet another way to approach this that I like better than adding
variables to hosts in your inventory. It looks like this:
qa_kafka:
children:
cc:
children:
qa_eng_kafka_cluster:
children:
qa_eng_zoo:
hosts:
en1qa1-zookpr[01:03].qa
qa_eng_bro:
hosts:
en1qa1-kafka[01:06].qa
qa_eng_sch:
hosts:
en1qa1-kafka[04:06].qa
This creates three additional host groups: qa_eng_zoo, qa_eng_bro, and
qa_end_sch. In your templates and whatnot, you can simply check for
group membership.
Cheers,
—
Todd
On 4/22/24 10:44 PM, Todd Lewis wrote:
The messages are correct. You have only defined the "broker" variable
on one set of hosts, and the two hosts indicated in the errors are not
in that set.
You can fix this in a couple of ways. One way is to define all three
variables in all three sets of hosts:
qa_eng_kafka_cluster:
hosts:
en1qa1-zookpr[01:03].qa:
broker: false
schema_registry: false
zookeeper: true
en1qa1-kafka[01:06].qa:
broker: true
schema_registry: false
zookeeper: false
en1qa1-kafka[04:06].qa:
broker: false
schema_registry: true
zookeeper: false
The other way is to define all three variables in a higher group,
setting them all to false, say, and then at the host level set only
the ones you want to be true to true:
qa_kafka:
vars:
broker: false
schema_registry: false
zookeeper: false
children:
cc:
children:
qa_eng_kafka_cluster:
hosts:
en1qa1-zookpr[01:03].qa:
zookeeper: true
en1qa1-kafka[01:06].qa:
broker: true
en1qa1-kafka[04:06].qa:
schema_registry: true
To verify the variables are being set and associated with hosts
appropriately, you can run:
$ ansible-inventory -i kafka_inventory.yaml --list
Cheers,
—
Todd
On 4/22/24 2:22 PM, Sameer Modak wrote:
Hello Team,
I am putting broker: true and zookeeper: true in inventory file but
i still getting below exception as its referred in j2 file
An exception occurred during task execution. To see the full
traceback, use -vvv. The error was:
ansible.errors.AnsibleUndefinedVariable: 'broker' is undefined.
'broker' is undefined
fatal: [en1qa1-zookpr02.qa]: FAILED! => {"changed": false, "msg":
"AnsibleUndefinedVariable: 'broker' is undefined. 'broker' is undefined"}
An exception occurred during task execution. To see the full
traceback, use -vvv. The error was:
ansible.errors.AnsibleUndefinedVariable: 'broker' is undefined.
'broker' is undefined
fatal: [en1qa1-zookpr01.qa: FAILED! => {"changed": false, "msg":
"AnsibleUndefinedVariable: 'broker' is undefined. 'broker' is undefined"}
=================
jinja 2 file
{% if hostvars[inventory_hostname].zookeeper is defined %}
// jmx exporter scrape config for zookeeper
prometheus.scrape "jmx_exporter_zookeeper" {
targets = [
{"__address__" = "{{ v_kafka_host }}:{{
v_jmx_exporter_zookeeper_port }}"},
]
scrape_interval = "{{ v_jmx_exporter_scrape_interval }}"
forward_to = [prometheus.remote_write.mimir.receiver]
}
{% else %}
{% endif %}
{% if hostvars[inventory_hostname].broker is defined %}
// jmx exporter scrape config for Broker
prometheus.scrape "jmx_exporter_broker" {
targets = [
{"__address__" = "{{ v_kafka_host }}:{{
v_jmx_exporter_broker_port }}"},
]
scrape_interval = "{{ v_jmx_exporter_scrape_interval }}"
scrape_timeout = "{{ v_jmx_broker_scrape_timeout }}"
forward_to = [prometheus.remote_write.mimir.receiver]
}
{% else %}
{% endif %}
=======
kafka_inventory.yaml Inventory file
qa_kafka:
children:
cc:
children:
qa_eng_kafka_cluster:
hosts:
en1qa1-zookpr[01:03].qa:
zookeeper: true
en1qa1-kafka[01:06].qa:
broker: true
en1qa1-kafka[04:06].qa:
schema_registry: true
uc:
children:
=====================
running as below
ansible-playbook -i ansible/inventory/nonprod/kafka_inventory.yaml
--limit qa_eng_kafka_cluster ansible/grafana-agent-play.yaml -u Kafka
-b -k
--
You received this message because you are subscribed to the Google
Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/3245ff0a-26b3-4a7c-ae66-fdb1951a4797n%40googlegroups.com
<https://groups.google.com/d/msgid/ansible-project/3245ff0a-26b3-4a7c-ae66-fdb1951a4797n%40googlegroups.com?utm_medium=email&utm_source=footer>.
--
Todd
--
Todd
--
You received this message because you are subscribed to the Google Groups "Ansible
Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/596a9445-8598-464d-a11a-8fb84744a6da%40gmail.com.