Ansible Tower CLI 在没有提示的情况下在一个命令中传递启动参数

Ansible Tower CLI pass Launch Parameters in one command without prompt

我正在尝试通过 Jenkins 启动一个 ansible-tower cli 作业。但我不希望出现在 Ansible Tower 上的提示。我想在同一命令中传递这些参数,这样就不需要提示了。

我试过:

tower-cli job launch --job-template=33 -e "param1" -e "param2"

这是我得到的错误:

Error: failed to pass some of the extra variables

根据 Ansible Tower-CLI documentation 参数 -e 是错误的。您需要使用 --extra-vars。这不同于 ansible-playbook 命令。所以一个简单的例子是

tower-cli job launch --job-template 1 --extra-vars '{"x":"y"}'

请注意,您将所有变量写在一个参数中。 --extra-vars 需要 JSON 或 YAML 格式。

另请注意,给定的作业模板必须配置为请求额外变量。否则,Ansible Tower 端将忽略该参数。

此外 - 不是问题而是一个很好的建议 - 如果您的 Jenkins 需要等待作业结果,请将 --monitor 添加到 tower-cli 命令。然后 cli 等待响应代码,如果出现问题,该阶段可能会“失败”。