ansible способ использования consul_kv между двумя версиями - PullRequest
0 голосов
/ 27 февраля 2020

Мне нужна помощь по использованию модуля consul_kv с ansible версией с 2.8.x, возможно, я что-то пропустил, но я взглянул на код модуля и не вижу изменений между 2.7.x и 2.8.x, которая может объяснить проблему, которую я получил.

С ansible 2.7.x, когда я пытаюсь получить значение от консула, я получаю хост консула, порт, путь из моего env vars, и я выполняю свой код вроде этого:

# group_var/all
consul_path: "{{ lookup('env','ANSIBLE_CONSUL_PATH') }}"
consul_host: "{{ lookup('env','ANSIBLE_CONSUL_HOST') }}"
consul_port: "{{ lookup('env', 'ANSIBLE_CONSUL_PORT') }}"
- hosts: localhost

  tasks:
    - name: test ansible 2.8.5 with consul
      debug:
        msg: "{{ lookup('consul_kv', consul_path+'path/to/value' }}"

он работает на 2.7.0 и я получил свое значение, но не работает на 2.8.x, из этих более новых версий мне нужно указать хост и порт на каждая строка с использованием lookup

msg: "{{ lookup('consul_kv', 'path/to/value', host='myconsulhost.com', port='80') }}"

Есть ли способ продолжить использование env vars в ansible 2.8.x с этим модулем?

1 Ответ

0 голосов
/ 28 февраля 2020

В подробном руководстве говорится, что поиск теперь использует переменную окружения $ANSIBLE_CONSUL_URL для определения протокола, имени хоста и порта - или (как вы заметили), используя встроенные kwargs для функции поиска. С этими group_vars, о которых вы упомянули, похоже, больше не обращаются

Вы также захотите быть осторожными, поскольку у вашего group_vars/all (по крайней мере, в этом вопросе, неизвестно, действительно ли вы это делаете) есть пробел в consul_path :, которая создает переменную с именем consul_path<space>

...