Rundeckの
定期的に
rd-jobsコマンドで、
プロジェクト単位で
job単位で
jobの
作成する
0.参考サイト
1.project の job一覧を 出力する
${TOOLS_BIN},${PROJECT_NAME} は
私の
RUNDECK 2.6.2 だと、
${RUNDECK_HOME}/tools/bin配下に、
コマンド
${TOOLS_BIN}/rd-jobs -p ${PROJECT_NAME}
Output
# Found 14 jobs: - 'Job Flow/Collect Artist Infomation - ''#概要 WebサービスからArtist情報を収集する ''' - 'Job Flow/Collect Genre Infomation ' - 'Job Flow/Relate EchonestArtists To FestivalArtistTags - ''# 概要 ArtistのTag名(Fesでの呼び名)とEchonestのArtist情報を紐付けする ''' - RDB Task/relateEArtistToFATag - 'ArtistTagとEchonest Aritstデータを紐付けする' - RDB TaskManage/storeEArtistTaskManage - 'Echonest Artist の関連Task管理テーブルデータを登録する' - 'RDB Task/storeEchonestArtist - ''Artist名を元にEchonest APIで検索し、結果をEchonest Tableに設定する ''' - Mongo Task/storeEchonestArtistImage - 'EchonestのArtistの画像情報をMongoDBに設定する' - Mongo Task/storeEchonestArtistProfile - ' Store Echonest Artist Profile data to Mongo' - RDB Task/storeEchonestGenre - 'Store data to EchonestGenre table' - Mongo Task/storeEchonestSong - 'Echonest Songデータをmongoに登録する' - RDB TaskManage/storeFATagTaskManage - 'FestivalArtistTagの関連Task管理テーブルデータを登録する' - Mongo Task/storeMixCloudArtist - 'store mix cloud artist' - 'RDB Task/storeSerachArtistQuery - ''Artist検索クエリを登録する ''' - 'Mongo Task/storeSoundCloudTrack - ''Echonest Artist の名称を元にSoundCloud API で検索 結果をMongoに登録する '''
2.上記コマンドで 取得できる 出力から、 job名だけ 抜きだす。
grep、
コマンド
${TOOLS_BIN}/rd-jobs -p ${PROJECT_NAME} | grep - | cut -d- -f 2 | cut -d/ -f 2 | sed -e "s/'//g"
Output
Collect Artist Infomation Collect Genre Infomation Relate EchonestArtists To FestivalArtistTags relateEArtistToFATag storeEArtistTaskManage storeEchonestArtist storeEchonestArtistImage storeEchonestArtistProfile storeEchonestGenre storeEchonestSong storeFATagTaskManage storeMixCloudArtist storeSerachArtistQuery storeSoundCloudTrack
3.project、 job名を 指定して、 job定義を yamlファイルを exportする。
コマンド
${TOOLS_BIN}/rd-jobs -p ${PROJECT_NAME} -n "storeSoundCloudTrack" -F yaml -f storeSoundCloudTrack.yml
Output
# Found 1 jobs: - 'Mongo Task/storeSoundCloudTrack - ''Echonest Artist の名称を元にSoundCloud API で検索 結果をMongoに登録する '''
4.Job単位に yamlファイルを 作りたいので、 以下script化
- script “YOUR_PROJECT_NAME”、
“YOUR_RUNDECK_HOME”は 自分の 環境で、
読み替えてください。
#!/bin/sh # ENV PROJECT_NAME="YOUR_PROJECT_NAME" RUNDECK_HOME="YOUR_RUNDECK_HOME" # tools bin dir TOOLS_BIN="${RUNDECK_HOME}/tools/bin" # export script name SCRIPT_NAME="job_export.sh" rm ./${SCRIPT_NAME} echo "#!/bin/sh" >> ./${SCRIPT_NAME} echo "-------------------------------------------------------------" echo "start make job export script" echo "-----------------------------" # OutPut Jobs List ${TOOLS_BIN}/rd-jobs -p ${PROJECT_NAME} | grep - | cut -d- -f 2 | cut -d/ -f 2 | sed -e "s/'//g" | \ while read -r line; do NAME4YML=`echo ${line} | sed -e 's/ /_/g'` echo ${TOOLS_BIN}/rd-jobs -p ${PROJECT_NAME} -n '"'${line}'"' -F yaml -f ${NAME4YML}.yml >> ./${SCRIPT_NAME} done # 権限を変更する chmod 700 ./${SCRIPT_NAME} echo "-------------------------------------------------------------" echo "end make job export script" echo "-----------------------------"
コマンド
./make_export_job_cmd.sh
Output
------------------------------------------------------------- start make job export script ----------------------------- ------------------------------------------------------------- end make job export script -----------------------------
job_export.shが
コマンド
./job_export.sh
Output
monotalk$ ls -1 *.yml Collect_Artist_Infomation.yml Collect_Genre_Infomation.yml Relate_EchonestArtists_To_FestivalArtistTags.yml relateEArtistToFATag.yml storeEArtistTaskManage.yml storeEchonestArtist.yml storeEchonestArtistImage.yml storeEchonestArtistProfile.yml storeEchonestGenre.yml storeEchonestSong.yml storeFATagTaskManage.yml storeMixCloudArtist.yml storeSerachArtistQuery.yml storeSoundCloudTrack.yml
実は標準オプションでうまくできるのかもしれませんが、
見つけられなかったです。
そもそも
ドキュメントが
以上です。
コメント