Rundeck でジョブスケジューリング


この記事は atWare Advent Calendar 2015 の14日目の記事です。

みなさん、こんばんは。小松です。

本日は、 Rundeck について書きます。

Rundeck とは

Rundeck はオープンソース、フリーライセンス (Apache 2.0 License) の Java 製のジョブスケジューラです。

Web GUI を備えており、機能も豊富です。プラグインによる拡張もできます。

Google Trends で見る人気の推移

うなぎのぼりです!

ちなみに Azkaban をならべてみようとしたら、ハリーポッターの力が強すぎて比較になりませんでした。。。

導入方法

ここ からダウンロードすることができます。

余談ですが、ダウンロードページを初めて開いた当時、私は左側にあまり注意が行かず、「最新バージョンは Get the Source なのか?漢らしいな!」などと勘違いをしました。

手っ取り早く試すには jar をダウンロードしてきて java -jar rundeck-launcher-2.6.2.jar で実行しましょう。

ダウンロードページには .jar or .deb で、 RHEL/CentOS はハブられてしまったのか、と少々憂鬱になりかけますが、ご安心ください。 「Previous Versions」の下にリンクされている「RPM」から「最新版」の .rpm が取得できます。

使い方

このあたりは、たくさん他のサイトの記事にありますし、ここでは省略します。 もっとも、起動さえできれば、結構直感的にジョブ追加ができるような UI です。

導入の経緯やその後

これだけではちっとも面白くないので、 Rundeck を使うことになった経緯を書きます。 お客様のシステム移行(データセンタ→AWS)案件において、旧環境では JP1/AJS 構築されていた統合監視・ジョブ管理システムのうち、ジョブ管理の部分を Rundeck で置き換えることになったためです。

移行後、約半年間動かしていますが、 Rundeck 自体は極めて安定稼働しています。 (ジョブ数は全部(日次・週次・月次)で170個程度あります)

総じて Rundeck は非常に良いです。プラグインも Groovy で簡単にかけます。

ただ、他のジョブ管理システムに劣っているところもあります。

Rundeck のいけてないところ

  • ジョブネット図の機能がない
    • JP1/AJS では実行中のジョブがジョブネット図のどこにあるのかわかったのが運用上大変便利だったのですが、同じような機能は Rundeck にはありません(ただし、ジョブの中に複数ステップを記述している場合、どのステップを実行中か、はわかります)
  • 異常終了ジョブ ステップからの再実行機能がない
    • これは結構泣けます。ジョブの途中のステップで異常終了してしまうと、「ジョブを複製して、成功したジョブ ステップを削除し」再実行する必要があります。複雑なジョブネットだと、「ジョブの編集が正しくできているか」にすごい神経を使います。

ただ、上記のような欠点を補ってあまりある便利な GUI が載っているので、使ったことの無い方は一度ためしてみるとよいです。 cron を置き換えるだけなら全く不足はありません。

明日(15日目)のアドベントカレンダー

明日は、少しやんちゃな若さ溢れる新人の彼です!