LINUX.ORG.RU

ansible, как прокинуть перемнные окружения (environment variables) в ad hoc команду?

 


0

1

Привет, нужно сделать вот это:

curl -L ya.ru

С помощью ansible, предварительно экспортировав переменную окружения для proxy.

Вот типа этого:

ansible  -f 7  -i ./hosts balancer  -m shell -a 'curl -L  ya.ru' -e "http_proxy:127.0.0.1:3128 https_proxy:127.0.0.1:3128"

Но команда выше некорректная. Как исправить? В интернетах примеры только с playbook, а мне нужно в ad-hoc команде.

Вот это тоже не работает:

ansible  -f 7  -i ./hosts balancer  -m shell -a 'curl -L  ya.ru' -e http_proxy:127.0.0.1:3128 -e https_proxy:127.0.0.1:3128
★★★

Последнее исправление: iljuase (всего исправлений: 1)

В интернетах примеры только с playbook, а мне нужно в ad-hoc команде.

Потому что -e пропихивает переменные в сам ansible, а не в вашу команду (и пишется через "равно"). Типа там

$ ansible localhost -m debug -a "msg={{foo}}" -e "foo=bar"

localhost | SUCCESS => {
    "msg": "bar"
}

В вашем случае должно быть что-то типа http_proxy=127.0.0.1:3128 curl -L ya.ru в качестве аргумента для shell или как в примере выше через подстановку значения переменной (в фигурных скобках) и тогда уже с передачей параметров прокси через "-e".

Ну и на всякий случай - есть модуль get_url.

anonymous
()
Ответ на: комментарий от anonymous

shell – как пример просто. Мне в будущем понадобятся прокси для yum тоже (для модуля). Конечно, я смогу в yum.conf прописать прокси, но но в будущем столкнуть с аналогичной ситуацией уже с другими модулями (pip, apt и т.д.). Каждый раз придётся искать обходное решение?

iljuase ★★★
() автор топика
Ответ на: комментарий от iljuase

Если использовать плейбуки - там это можно прописать один раз в виде переменной окружения для всего сценария на том же уровне, где у вас список хостов (‘‘выше’’ чем таск) или же сохранить это как переменную для группы хостов - тогда это будет глобальным для списка хостов и не нужно будет в каждом плейбуке править (hint: можно такие параметры задавать для группы хостов ‘‘all’’).

Посмотрите документацию - https://docs.ansible.com/ansible/latest/user_guide/playbooks_environment.html

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.