#
- это фактический способ комментирования переменной в файле yaml, и я не вижу никаких проблем с тем, что вы описали в своем вопросе.
Из комментариев выше, так как вы не Полностью убежденный официальной спецификацией yaml , вот полный MCVE, созданный из вашего описания, чтобы доказать, что он абсолютно работает, как и ожидалось:
in host_vars/localhost
---
Kafka_cluster_path: /home/cluster1
# Kafka_cluster_path: /home/cluster2
в play.yml
---
- name: "Prove that ansible obeys yaml spec and honors comments as expected"
hosts: localhost
gather_facts: false
tasks:
- debug:
msg: "{{ Kafka_cluster_path }}/kafka/start.sh"
Обратите внимание, что ниже я установил в virtualenv ту же самую версию ansible, которую вы используете (которая, кстати, довольно старая, и вы должны рассмотреть вопрос об обновлении), чтобы исключить любую левую над сомнением.
(test) $ ansible-playbook --version
ansible-playbook 2.6.17
config file = None
configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /tmp/test/test/lib/python3.6/site-packages/ansible
executable location = /tmp/test/test/bin/ansible-playbook
python version = 3.6.9 (default, Nov 7 2019, 10:44:02) [GCC 8.3.0]
(test) $ ansible-playbook play.yml
PLAY [Prove that ansible obeys yaml spec and honors comments as expected] **************************************************************
TASK [debug] ***************************************************************************************************************************
ok: [localhost] => {
"msg": "/home/cluster1/kafka/start.sh"
}
PLAY RECAP *****************************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0