Как комментировать Ansible переменных - PullRequest
0 голосов
/ 10 февраля 2020

Я хочу настроить 2 кластера Kafka на одном хосте. Я определил переменные в файле host_vars / HOSTNAME, который выглядит следующим образом:

Kafka_cluster_path: /home/cluster1
# Kafka_cluster_path: /home/cluster2

У меня есть шаблон, который использует cluster_id следующим образом:

`{{ Kafka_cluster_path }}/kafka/start.sh`

Когда я запускаю свой Ansible роль, он заполняет шаблон с Kafka_cluster_path = / home / cluster2 .

Есть ли способ действительно закомментировать переменную в Ansible?

Кстати, когда я удаляю закомментированную строку:

Kafka_cluster_path: /home/cluster1

и запустите роль Ansible, тогда kafka_cluster_path получит правильное значение (/home/cluster1).

1 Ответ

1 голос
/ 11 февраля 2020

# - это фактический способ комментирования переменной в файле 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...