当脚本由 Ansible 执行时跳过 shell 命令



我有一个 shell 脚本可以做很多事情。有一部分是对 GitHub 包注册表进行身份验证。此部分提示输入用户名和密码。当我使用 Ansible 执行 bash 脚本时,它卡在那里并显示一条消息"升级成功"。我想做的是在ansible中定义注册表登录名,这当然很简单。这不是问题。我遇到的问题是,我希望在通过 ansible 运行脚本时跳过 bash 脚本中的 GitHub 注册表命令。像这样:

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

知道如何实现这一点吗?

可以为 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

最好避免环境名称的潜在冲突。

(未测试(

最新更新