2017-03-15 5 views
1

私はrundeck 1.6バージョンを使用していますが、以下の要件を解決する1.6または最新バージョンのRESTエンドポイントがあるかどうかチェックしたいだけです。 プロジェクト名を渡すと、そのプロジェクトの下に作成されたすべてのジョブが、実行するように設定されているノード名で表示されます。ありジョブとノードのようなプロジェクトの詳細を取得するためのRundeck RESTエンドポイント

おかげ -SAM

答えて

1

は、次のコードは、Tokens authenticationを使用しています。また、使用することができますPassword Authentication

#!/bin/bash 
RUNDECK_URL='localhost:4440' #<-----change it to your rundeck url 
API_TOKEN='OyFXX1q4UzhTUe7deOUIPJKkrUnEwZlo' #<-----change it to your api koken 
PROJECTS=`curl -H "Accept: application/json" http://$RUNDECK_URL/api/1/projects?authtoken=$API_TOKEN |tr "}" "\n"|tr "," "\n"|grep name|cut -d":" -f2 |tr -d "\""` 

for proj in $PROJECTS; do 
    #get all Jobs in all projects: 
    echo "Project: $proj" 
    PROJECT_OUTPUT=`curl -sS "http://$RUNDECK_URL/api/1/jobs?authtoken=$API_TOKEN&project=${proj}"` 

    # get job definition and parse 
    JOB_IDS=`echo $PROJECT_OUTPUT | grep -oP "(?<=<job id=')[^']+"` 
    for id in $JOB_IDS; do 
     echo $id #job id 
     JOB_OUTPUT=`curl -sS "http://$RUNDECK_URL/api/1/job/$id?authtoken=$API_TOKEN"` 
     echo $JOB_OUTPUT | grep -oP "(?<=<name>)[^<]+" #job name 
     echo $JOB_OUTPUT | grep -oP "(?<=<filter>)[^<]+" #job node filter 
    done 
done 

出力:

$ sh rundeck_test.sh 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 98 0 98 0  0 6292  0 --:--:-- --:--:-- --:--:-- 6533 
Project: TestProject 
02a41aaa-eb50-4831-8762-80b798468cbe <-------- job id 
TestJob   <-------- job name, the job doesn't have node filter - running on rundeck 
9b2ac9e9-0350-4494-a463-b43ba1e458ab 
TestJob2 
node1.exmple.com <-------- node filter value 
関連する問題