Пропускать команды оболочки, когда скрипт выполняется Ansible - PullRequest
1 голос
/ 25 мая 2020

У меня есть сценарий оболочки, который делает много всего. Есть раздел аутентификации реестра пакетов GitHub. В этом разделе запрашивается имя пользователя и пароль. Когда я выполнил сценарий bash с использованием Ansible, он застрял там с сообщением «Эскалация прошла успешно». Я хочу определить логин для входа в реестр в ansible, что, конечно, просто. Это не проблема. У меня возникла проблема: я бы хотел, чтобы команда реестра GitHub в сценарии bash была пропущена, когда сценарий запускается через ansible. Что-то вроде:

if [[ "$ANSIBLE" == "true" ]]; then
skip
fi

Есть идеи, как этого можно достичь?

1 Ответ

1 голос
/ 25 мая 2020

Можно установить среду для Ansible задач. Например,

    - name: Shell script that does a lot of stuff
      command: my_script.sh
      environment:
        my_script_in_ansible: "true"

Затем используйте переменную в скрипте. Например,

ANSIBLE=${my_script_in_ansible:-false}

if [[ "$ANSIBLE" == "true" ]]; then
    skip
fi

Это хорошая идея, чтобы избежать потенциальных конфликтов имен сред.

(не проверено)

...