问题描述
我想通过 AWX-API 启动一个包含一些 extra_vars 的作业模板,但我得到的每个响应都有一个空的 extra_vars 字段。我已经检查了有关它的文档: https://docs.ansible.com/ansible-tower/latest/html/userguide/job_templates.html#extra-variables
其中指出,您必须在调查中设置 ask_variables_on_launch: true
和/或具有相应的变量。我的请求检查这两个条件:
请求
POST: https://my.awx.host/api/v2/job_templates/7/launch/
身体
{
"can_start_without_user_input": false,"passwords_needed_to_start": [],"ask_scm_branch_on_launch": false,"ask_variables_on_launch": true,"ask_tags_on_launch": false,"ask_diff_mode_on_launch": false,"ask_skip_tags_on_launch": false,"ask_job_type_on_launch": false,"ask_limit_on_launch": false,"ask_verbosity_on_launch": false,"ask_inventory_on_launch": false,"ask_credential_on_launch": false,"survey_enabled": true,"variables_needed_to_start": [
"application_server_name","server_location","application_server_type","ssh_keys"
],"credential_needed_to_start": false,"inventory_needed_to_start": false,"job_template_data": {
"name": "template name ","id": 7,"description": ""
},"defaults": {
"extra_vars": {
"application_server_name": "some name","server_location": "some location","application_server_type": "some type","ssh_keys": [
{
"name": "key1"
},{
"name": "key2"
},{
"name": "key3"
}
]
},"diff_mode": false,"limit": "","job_tags": "","skip_tags": "","job_type": "run","verbosity": 2,"inventory": {
"name": "AWX Tower (Localhost) my.awx.host","id": 1
},"credentials": [
{
...
}
],"scm_branch": ""
}}
{
"variables_needed_to_start": [
"'application_server_name' value missing","'server_location' value missing","'application_server_type' value missing","'ssh_keys' value missing"
]}
我有点困惑,因为我按照文档做了所有事情。调查所需的值甚至在同一个请求正文中。有人可以帮忙解决这个问题吗?
我使用的是 AWX 16.0.0 Ansible 版本 2.9.15 谢谢
解决方法
所以实际上,您只需要发送额外的变量,而不是从 AWX 获得的整个响应 + 变量。我不知道,是我没有在文档中看到这一点,还是只是显而易见而我没有理解。
ask_variables_on_launch 仍然必须为真!