您可以从 API 获取所有这些数据,(例如获取 execution info):
#!/bin/sh
# protocol
protocol="http"
# basic rundeck info
rdeck_host="localhost"
rdeck_port="4440"
rdeck_api="36"
rdeck_token="nMp0uRsNUAH0w17JXxoDPqoBq6V4mB2O"
# specific api call info
execution="2"
# get the job forecast
curl -s --location --request GET "$protocol://$rdeck_host:$rdeck_port/api/$rdeck_api/execution/$execution" \
--header "Accept: application/json" \
--header "X-Rundeck-Auth-Token: $rdeck_token" | jq
输出:
{
"id": 2,
"href": "http://localhost:4440/api/36/execution/2",
"permalink": "http://localhost:4440/project/ProjectEXAMPLE/execution/show/2",
"status": "succeeded",
"project": "ProjectEXAMPLE",
"executionType": "user",
"user": "admin",
"date-started": {
"unixtime": 1606853136420,
"date": "2020-12-01T20:05:36Z"
},
"date-ended": {
"unixtime": 1606853136878,
"date": "2020-12-01T20:05:36Z"
},
"job": {
"id": "900a885b-576c-4c8c-a118-4bd1bf775c7b",
"averageDuration": 458,
"name": "Test",
"group": "",
"project": "ProjectEXAMPLE",
"description": "",
"href": "http://localhost:4440/api/36/job/900a885b-576c-4c8c-a118-4bd1bf775c7b",
"permalink": "http://localhost:4440/project/ProjectEXAMPLE/job/show/900a885b-576c-4c8c-a118-4bd1bf775c7b"
},
"description": "echo $LANG [... 2 steps]",
"argstring": null,
"serverUUID": "bd2d85ef-f9f9-4805-b51c-a4bbcf5875e3",
"successfulNodes": [
"localhost"
]
}
如果你想过滤,你可以使用任何 JSON 解析器工具,在我的例子中,我使用了JQ(jq -r .status 来获取执行状态):
#!/bin/sh
# protocol
protocol="http"
# basic rundeck info
rdeck_host="localhost"
rdeck_port="4440"
rdeck_api="36"
rdeck_token="nMp0uRsNUAH0w17JXxoDPqoBq6V4mB2O"
# specific api call info
execution="2"
# get the job forecast
curl -s --location --request GET "$protocol://$rdeck_host:$rdeck_port/api/$rdeck_api/execution/$execution" \
--header "Accept: application/json" \
--header "X-Rundeck-Auth-Token: $rdeck_token" | jq -r .status
输出:
succeeded
因此,查看 Tableau 文档,您可以通过 Tableau API 发送您的结果。实际上,您可以使用 Server API Client (python) 来执行此操作,也许使用一些 Rundeck 作业通过 Tableau API 在任何 python script step 上将该数据发送到 Tableau 是个好主意。