为了在运行时手动提供主机列表,可以创建一个自定义页面,其中包含一个文本框,用户可以在其中输入主机列表。然后,使用JavaScript将文本框中的值作为变量传递给模板。
另一种方法是在AWX/TOWER中创建一个额外的工作流程模板作为入口点。该模板将提示用户输入主机列表,并将此列表传递给其他用于执行任务的模板。
以下是示例代码,通过POST请求将列表传递给模板:
import requests
import json
URL = "http://awx.example.com/api/v2/job_templates/10/launch/"
DATA = {
"limit": "localhost",
"extra_vars": {
"hosts": "host1, host2, host3"
}
}
HEADERS = {
'Content-Type': 'application/json',
'Authorization': 'Bearer TOKEN_HERE'
}
response = requests.post(URL, data=json.dumps(DATA), headers=HEADERS)
if response.status_code == 201:
print("Task has been started successfully.")
else:
print("Error: ", response.content)