启动带有额外变量的工作流模板
Launching a workflow template with extra vars
我正在尝试从 Ansible AWX 中的 python 脚本启动工作流模板,我的脚本如下所示
#!/usr/bin/env python
import requests
import json
from requests.auth import HTTPBasicAuth
import base64
import os
def main():
URL = 'https://myawx/api/v2/'
USER = 'username'
PASSWORD = 'password'
session = object
session = requests.Session()
session.auth = (USER, PASSWORD)
session.verify = False
myvars={
"test": "test"
}
AWX_JOB_TEMPLATES_API="https://myawx.com/api/v2/workflow_job_templates/10/launch/"
response = session.post(url=AWX_JOB_TEMPLATES_API,json=myvars, verify=False)
print(response)
if __name__ == '__main__':
main()
这可以正常启动工作流,但它不包括来自 net_vars 变量的额外变量。我的 workflow_job_template 为 AWX 前端的 EXTRA VARIABLES 字段启用了“启动时提示”。
是否可以启动带有额外变量的工作流?
如果您想通过 REST API 使用额外的变量,myvars 需要有 extra_vars 键。
例如,这里是这样的。
#!/usr/bin/env python
import requests
def main():
url = "http://awx_server/api/v2/job_templates/14/launch/"
username = "admin"
passwd = "secret"
headers = {
"Content-Type": "application/json",
}
data = {}
data['extra_vars'] = {
"extra_string": "test message"
}
req = requests.post(url,
headers=headers,
auth=(username, passwd),
json=data,
verify=False)
print(req.status_code)
print(req.text)
if __name__ == "__main__":
main()
上面示例时,设置test message
为extra_string
变量。
extra_string 将通过 REST API.
作为额外变量给出
我正在尝试从 Ansible AWX 中的 python 脚本启动工作流模板,我的脚本如下所示
#!/usr/bin/env python
import requests
import json
from requests.auth import HTTPBasicAuth
import base64
import os
def main():
URL = 'https://myawx/api/v2/'
USER = 'username'
PASSWORD = 'password'
session = object
session = requests.Session()
session.auth = (USER, PASSWORD)
session.verify = False
myvars={
"test": "test"
}
AWX_JOB_TEMPLATES_API="https://myawx.com/api/v2/workflow_job_templates/10/launch/"
response = session.post(url=AWX_JOB_TEMPLATES_API,json=myvars, verify=False)
print(response)
if __name__ == '__main__':
main()
这可以正常启动工作流,但它不包括来自 net_vars 变量的额外变量。我的 workflow_job_template 为 AWX 前端的 EXTRA VARIABLES 字段启用了“启动时提示”。
是否可以启动带有额外变量的工作流?
如果您想通过 REST API 使用额外的变量,myvars 需要有 extra_vars 键。
例如,这里是这样的。
#!/usr/bin/env python
import requests
def main():
url = "http://awx_server/api/v2/job_templates/14/launch/"
username = "admin"
passwd = "secret"
headers = {
"Content-Type": "application/json",
}
data = {}
data['extra_vars'] = {
"extra_string": "test message"
}
req = requests.post(url,
headers=headers,
auth=(username, passwd),
json=data,
verify=False)
print(req.status_code)
print(req.text)
if __name__ == "__main__":
main()
上面示例时,设置test message
为extra_string
变量。
extra_string 将通过 REST API.