簡體   English   中英

計划作業的 Rundeck 詳細信息

[英]Rundeck details of scheduled job

在 rundeck(帶有 H2SQL 的 OpenSource v3.3.1)中,有沒有辦法查看計划作業的詳細信息? 對我們來說,了解將執行作業的節點列表很重要。 我在文件和 H2 DB 中進行了搜索,但無法獲取用於安排作業的節點或過濾器。

您可以在“活動”面板上看到,單擊任何執行(計划或未計划),然后單擊“日志輸出”,您可以看到所有作業的詳細信息。 此外,您可以檢查執行日志,通常位於/var/lib/rundeck/logs/rundeck/<projectname>/job/<job-id>/logs路徑。

您可以在此處查看更多信息。

更新 1:您可以使用預測 API 調用來檢查“要執行”的作業,我留下一個使用它的腳本:

#!/bin/sh

#############################################
echo "Insert the Rundeck Server hostname:"; read -r rundeckServer
echo -e "\nWhich port?:"; read -r rundeckPort
echo -e "\nCopy and Paste the Rundeck API Token:"; read -r rundeckApitoken

#############################################
# to run unatended mode, please comment the code above and uncomment the code below, and replace with your props
#############################################
# rundeckServer="node01.rundeck.local"
# rundeckPort="4440"
# rundeckApitoken="P0K0EvIAoWkAbmvj3JnlelmwaVhF5AJd"
#############################################
# Options Variables
#############################################
rundeckProtocol="http"
rundeckApiversion="31"
rundeckApiformat="json"
curlOptions="-s"
#############################################
echo
echo "The following Jobs are Scheduled:"
echo

for projectName in $(curl -X "GET" "$curlOptions" -H "Accept: application/$rundeckApiformat" -H "Content-Type: application/$rundeckApiformat" -H "X-Rundeck-Auth-Token: $rundeckApitoken" "$rundeckProtocol"://"$rundeckServer":"$rundeckPort"/api/"$rundeckApiversion"/projects|sed 's/,/\n/g'| grep name | cut -d ":" -f2 | tr -d '"')
    do
        for jobId in $(curl "$curlOptions" -X "GET" -H "Accept: application/$rundeckApiformat" -H "Content-Type: application/$rundeckApiformat" -H "X-Rundeck-Auth-Token: $rundeckApitoken" "$rundeckProtocol"://"$rundeckServer":"$rundeckPort"/api/"$rundeckApiversion"/project/"$projectName"/jobs | sed 's/,/\n/g' | grep id | cut -d ":" -f2 | tr -d '"')
            do
                output=$(curl "$curlOptions" -X "GET" -H "Accept: application/$rundeckApiformat" -H "Content-Type: application/$rundeckApiformat" -H "X-Rundeck-Auth-Token: $rundeckApitoken" "$rundeckProtocol"://"$rundeckServer":"$rundeckPort"/api/"$rundeckApiversion"/job/"$jobId"/forecast?time=7d | grep "futureScheduledExecutions")
                if [ -n "$output" ]
                    then
                        echo $output | sed -r 's/.+("href":".+),.+("futureScheduledExecutions":\[.+\]),.+("project":".+),("name":".+).+/\1\n\3\n\4\n\2/g'
                        echo
                fi
        done
done

更新 2:我留下更簡單的預測 API 調用,(需要jq )。

curl --location --request GET 'http://localhost:4440/api/35/job/your-job-id/forecast' --header 'Accept: application/json' --header 'X-Rundeck-Auth-Token: your-user-token' --header 'Content-Type: application/json' --data-raw '' | jq

打印所有信息:

{
  "href": "http://localhost:4440/api/35/job/328789d1-986f-4aa2-9013-de8eb6b6df98",
  "id": "328789d1-986f-4aa2-9013-de8eb6b6df98",
  "scheduleEnabled": true,
  "scheduled": true,
  "enabled": true,
  "permalink": "http://localhost:4440/project/ProjectEXAMPLE/job/show/328789d1-986f-4aa2-9013-de8eb6b6df98",
  "group": null,
  "futureScheduledExecutions": [
    "2020-08-06T14:33:00Z"
  ],
  "description": "",
  "project": "ProjectEXAMPLE",
  "name": "ExampleJob"
}

更新 3:現在結合導出作業信息和預測 API 調用,您可以獲得作業信息和節點,我留下一個示例腳本:

#!/bin/sh

#####################################################
# rundeck instance values
server="localhost"
port="4440"
api="35"
jobid="328789d1-986f-4aa2-9013-de8eb6b6df98"
token="MhloqezoV3IygvOIA6yzE9TNlzYCbi4m"

info=$(curl -s --location --request GET "http://$server:$port/api/$api/job/$jobid/forecast" --header "Accept: application/json" --header "X-Rundeck-Auth-Token:$token" --header "Content-Type: application/json" | jq)

nodes=$(curl -s --location --request GET "http://$server:$port/api/$api/job/$jobid" --header "Accept: application/xml" --header "X-Rundeck-Auth-Token:$token" --header "Content-Type: application/xml" --data-raw "" | grep -oPm1 "(?<=<filter>)[^<]+")

echo "######################"
echo "Job information: $info"
echo "######################"
echo "Nodes: $nodes"
echo "######################"

使用以下數據:

######################
Job information: {
  "href": "http://localhost:4440/api/35/job/328789d1-986f-4aa2-9013-de8eb6b6df98",
  "id": "328789d1-986f-4aa2-9013-de8eb6b6df98",
  "scheduleEnabled": true,
  "scheduled": true,
  "enabled": true,
  "permalink": "http://localhost:4440/project/ProjectEXAMPLE/job/show/328789d1-986f-4aa2-9013-de8eb6b6df98",
  "group": null,
  "futureScheduledExecutions": [
    "2020-08-07T14:33:00Z"
  ],
  "description": "",
  "project": "ProjectEXAMPLE",
  "name": "ExampleJob"
}
######################
Nodes: localhost
######################

更新 4:作業定義數據在數據庫(H2 或其他任何東西)上“分布”。 因此,例如,如果您針對MySQL配置 Rundeck 並使用任何工具訪問數據庫,則節點過濾器將保存scheduled_execution表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM