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 等待响应代码,如果出现问题,该阶段可能会“失败”。
我正在尝试通过 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 等待响应代码,如果出现问题,该阶段可能会“失败”。