【问题标题】:Ansible Tower CLI pass Launch Parameters in one command without promptAnsible Tower CLI 在一个命令中传递启动参数而不提示
【发布时间】:2022-01-12 12:03:00
【问题描述】:
我正在尝试通过 Jenkins 启动 ansible-tower cli 作业。但我不希望 Ansible Tower 上出现提示。我想在同一个命令中传递这些参数,这样就不需要提示了。
我试过了:
tower-cli job launch --job-template=33 -e "param1" -e "param2"
这是我得到的错误:
错误:未能传递一些额外的变量
【问题讨论】:
标签:
jenkins
ansible
ansible-tower
【解决方案1】:
根据 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 等待响应代码,如果出现问题,该阶段可能会“失败”。