Ansible Tower/AWX REST API启动作业模板,带有限制主机



我正在尝试使用Python从REST API运行AWX作业模板。当只运行作业模板而不带任何参数时,它可以正常工作,但我需要在执行中指定目标主机。当使用get方法时,我可以看到有一个"limit"参数。不幸的是,当我用python script.py job_id运行代码时,我得到了被忽略的limit字段:b'{"job":2133,"ignored_fields":{quot;limit":"server-PRC-05"},";id":2133;类型":"作业"url":"等等。我找不到这方面的工作实例。请在下面找到我的python代码:

import sys
import requests
import json
templateid=sys.argv[1]
from requests.auth import HTTPBasicAuth
headers = {'content-type': 'application/json'}
data_new = {'limit': 'server-PRC-05'}
res = requests.post('http://awx_host/api/v2/job_templates/'+templateid+'/launch/', 
verify=False, auth=HTTPBasicAuth('user', 'password'), data=json.dumps(data_new), headers=headers)
print (res.content)

neneneba API/api/v2/job_templates/{id}/launch/仅接收到extra-vars作为数据,将limitvar添加为extra-vars

在Ansible Tower中添加了额外的严格extra_vars验证3.0.0.传递给作业启动API的extra_vars只有在以下情况之一为真时才有效:

  1. 它们对应于已启用调查中的变量
  2. ask_variables_on_launch设置为True

https://docs.ansible.com/ansible-tower/latest/html/userguide/job_templates.html#extra-变量

然后在该模板中设置ask_variables_on_launch=True

您需要启用ask_limit_on_launch参数,然后在有效负载中以列表(数组(的形式传递限制。

你可能看起来像这样->

data_new = {'limit': ['server-PRC-05']}

观察limit是必须列出(阵列(

要启用ask_limit_on_launch,请参阅链接Ansible tower API:传递POST有效载荷中作业的库存

最新更新