Как скопировать переменную в Ansible, включая неопределенную? - PullRequest
1 голос
/ 13 февраля 2020

Я пытаюсь передать переменные из одной роли в другую.

Так, например, я использую мета-зависимость в моей роли ntp, которая извлекает значение timesyn c. Очевидно, я не хочу использовать переменные роли ntp в моей роли timesyn c.

dependencies:
- role: timesync
  vars:
    timesyncd_servers: '{{ ntp_servers }}'
  when:
    - ntp_servers is defined
    - ntp_daemon == 'systemd'

Если я сейчас использую тест jinja на timesyncd_server в моем файле шаблона, то он определен (даже если ntp_servers не определено):

{% if timesyncd_servers is defined %}{{ timesyncd_servers }}{% endif %}

Проблема теперь в том, что это, если оператор не перехватывает неопределенное ntp_servers и ansible завершается неудачно с 'ntp_servers' is undefined.

Я попытался передать его с | default(omit) - это остановило ansible от сбоя, но оператор if по-прежнему верен.

Любая идея, как скопировать ntp_servers в timesyncd_servers, чтобы он остался не определено

...