オープンソース

OSSのジョブ管理ツール〜Rundeck〜

Rundeckとは、ジョブの作成、実行、管理、スケジューリング等ができる、オープンソースのジョブ管理ツールです。Linux系では古くからcronというジョブ管理ツールが広く使われてきましたが、機能がシンプルなため、ジョブ数が増えた際に管理しにくいというデメリットがありました。Rundeckは、そのようなcronの課題を解決することができます。この記事では、Rundeckの特徴やメリットについて紹介します。

目次

ジョブ管理ツールとは

Rundeckについて紹介する前に、ジョブ管理ツールについて説明します。ジョブ管理ツールとは、特定の処理を定期的に実行、自動化するためのソフトウェアの総称です。「ジョブスケジューラ」や「タスクスケジューラ」とも呼ばれています。OS上での特定のコマンドや実行ファイルの起動・終了などを、スケジュールに基づいて自動で実行するためのツールで、バッチプログラムの実行などでよく使用されています。ジョブ管理ツールを使って定期的なジョブを自動にすることで、業務の効率化や運用の手間を低減させることができます。

Linux系のOSでは、ジョブ管理ツールとして古くからcronが使われてきました。cronは、多くのLinuxディストリビューションでデフォルトでインストールされていること、実績が多いことなどから、現在でもよく利用されています。しかし、cronの機能は非常にシンプルなため、小規模なジョブ管理向けとなっています。簡単なバッチスクリプトなどを定期実行する用途であれば便利ですが、登録されたジョブ数が増えると、機能不足により管理が難しいといった課題がありました。

ジョブ管理ツールの課題

例えば、cronのようなシンプルなジョブ管理ツールでは、以下のような問題が発生することが多いです。

複数のジョブの関係管理ができない

cronでは、プログラム1の処理完了後にプログラム2の処理を実行するといったように、複数のジョブの関係性を管理することはできません。ジョブの関係性を管理する場合は、プログラム間で成功失敗を示すためのデータをやりとりすることになり、本来行うべきではないバッチ処理連携のためのプログラムが必要になります。そのため、管理がとても煩雑になります。

処理の失敗のケアが難しい

cronで定期処理が失敗し、その日の内に再実行が必要な場合、登録したプログラムを手動で実行する必要があります。さらに、複数のバッチ処理が連携しているケースでは、サーバAで実行した後にサーバB、サーバC…と、複数のサーバで作業が必要になる場合もあります。手間がかかるだけでなく、普段は実施しないオペレーションによって作業ミスが発生するリスクも高くなります。

ジョブの多重実行の可能性

ジョブによっては、5分毎など短い周期で繰り返し処理が行われるものがあります。このような処理で遅延が発生した場合、最初のプログラムが完了する前に次の定期実行が行われてしまうことがあります。これにより、処理の性質によってはデータが破壊されたり、想定外の結果が発生することがあります。cronではこの事象を防ぐことができないため、プログラムの中で処理の工夫が必要となります。

処理実行時の成否判定の難しさ

cronでも、単発の処理であれば、メール通知などで失敗の検知をすることは充分可能です。しかし、複数の処理やサーバが絡む場合は、メールではどの処理がどこで失敗したのかを判別することが難しいです。

Rundeckは、上記のような課題を解決し、cronに代わるジョブ管理ツールとして注目されているソフトウェアです。

Rundeckとは

ログイン画面

Rundeckとは、PagerDuty, Inc.によって開発されたジョブ管理のソフトウェアで、オープンソース版の「Rundeck Community」と有償のエンタープライズ版の「Rundeck Enterprise」が存在します。OSS版のライセンスは、Apache Software License 2.0で公開されています。ジョブ管理ソフトウェアとして、ジョブの作成、実行、管理、スケジューリング等をすることが可能です。Rundeckは、Javaで動作するため多くのOSで利用可能です。Linuxでは、Ubuntu、Debian、CentOS、Red Hat Enterprise Linuxのディストリビューション用のパッケージが配布されています。

Rundeckの特徴

Rundeckの主な特徴は次の通りです。

WEBインタフェースによる操作

Rundeckでは、プロジェクトという単位でジョブやノードを組み合わせ、まとめてWEBインタフェースから管理することができます。Rundeckを利用するには、このプロジェクトが最低1つは必要になります。

プロジェクト画面

指定した時刻にスケジューリングされたジョブは、実行時間になると自動的に実行されます。実行後は、ジョブの画面から実行履歴を確認することができます。

実行履歴確認画面

複数サーバのジョブの実行

Rundeckは、SSHを利用することで、1つのサーバだけではなく複数のサーバ間でジョブを実行することが可能になります。

ジョブの実行形態の選択

Rundeckは、コマンド・スクリプトなど複数の形態で実行が可能です。またRundeckは、標準で有効化されているプラグインを利用することでAnsibleプレイブックを実行することができます。プレイブックは、作成済みのファイルを利用したり、WEB UI上で作成したりすることができます。

ジョブ作成画面

Rundeckは、スケジューリングされた自動のジョブだけではなく、手動でのジョブの実行も可能です。ジョブの作成の仕方はRundeck調査報告書に掲載しています。

ジョブ同士の関係性の管理

例えば、ジョブ1が実行された後にジョブ2が実行されるなど、複数のジョブを関連付けて管理をすることができます。「ジョブ1が実行されなかった場合やエラーが出た場合、ジョブ2を実行しない」などの処理も可能です。

ジョブ管理画面

ジョブの重複実行の抑制

ジョブの処理が長時間かかっている状態だと、同じ処理が重複して実行されてしまう場合があります。このような場合、Rundeckは、重複したジョブを抑制します。

重複したジョブ抑制画面

豊富な通知種別

Rundeckは、ジョブ実行時の様々なタイミングで、通知を送ることができます。デフォルトでは通知はメール・WEBフックの2通りがあります。プラグインを追加することで、SlackやRocket.Chatにも通知を送ることができるようになります。

通知種類も多い画面

このようにRundeck1台で、複数台のサーバーのバッチ処理を管理・実行できるため、複雑なバッチ処理などの管理コストを削減することができます。なお、詳しい使い方は調査報告書でも説明しています。

Rundeckのメリット

Rundeckは、バッチ処理を一括管理できるということ以外にも次のようなメリットがあります。

バッチ処理管理の負担軽減

複数のジョブを連動して実行することや、重複実行を許容しないようにする処理は、通常のバッチプログラムの中で制御、実装されていました。しかし、このような処理ほどバッチプログラムで問題を生みやすく、プログラマや管理者の負担になっていました。Rundeckは、システム的にこれらの問題を解決することが可能なため、バッチプログラムを作成する時に、本来の処理に専念することができます。またプログラムがシンプルになるため、後の管理の効率が上がることが考えられます。

柔軟な通知とわかりやすい画面

メールだけでなくチャットなどの現代的なツールに通知することもできるため、障害の発生にすぐに気が付くことができます。また通知を行うタイミングもジョブごとに変更することができます。例えば、重要なものであれば、実行開始・終了の両方を受け取り、失敗時にケアが必要なものは、実行の失敗時に通知を受け取るなどの運用が可能です。さらに、実行された各ジョブは、WEB UIから成否判定をすることができます。実行したジョブがどこで失敗したのかをログですぐに判断できるため、その後のリカバリフローにすぐ移ることができます。

Ansibleとの親和性の高さ

Ansibleとは、RedHatが開発したオープンソースの構成管理ツールです。Ansibleをただ実行するためには、コマンド入力の操作や専用のGUIソフトウェアが必要でした。Rundeckを使うことで、AnsibleをWEBから実行し、結果を確認できるようになります。また、Ansibleとその他の日時処理などを、まとめて管理することができるため、Ansibleだけでは対応が難しい範囲もカバーすることができます。

Ansibleとの親和性イメージ

なお、詳しい実行手順は調査報告書で解説しています。

OSS版とエンタープライズ版の違い

Rundeckは、OSS版とエンタープライズ版があり、エンタープライズ版では次のような機能が提供されています。

  • ユーザ管理用のWebインタフェース
  • ACL管理用インタフェース
  • ジョブのフローを視覚的に表示する機能
  • クラスタリング機能
  • シングルサインオン

特に、ジョブのフローを視覚化する機能は、多くのジョブを扱うほど重要になります。そのため、ジョブの管理件数によってはエンタープライズ版を利用することをおすすめします。なおデージーネットでは、お客様のご要望に応じて、最適なジョブ管理システムの提案・構築を行っております。デージーネットでシステムの導入をご検討中のお客様には、無料見積も実施いたしております。

各種費用についてのお問い合わせ

コンサルティング費用、設計費用、構築費用、運用費用、保守費用など、各種費用についてのお見積もりは以下のフォームよりお気軽にお問合せ下さい。

unboundやPowerDNSを使用したDNSサーバのモデルプランをご希望の方

全国対応イメージ

デージーネットの取り組み

Rundeckは、ジョブスケジューラとして非常に強力な機能を備えています。OSS版はエンタープライズ版と比較すると機能的に弱い部分がありますが、従来のcronなどとは比較にならないほど多機能です。ただし、現状は日本語化が追いついていない状況です。デージーネットでは、日本語の言語ファイルの更新なども対応し、実際の業務での利用を実現していきたいと考えています。Rundeckのインストール方法や詳細情報は、調査報告書に掲載されており、無料でダウンロードが可能です。

Rundeck調査報告書

無料資料ダウンロード

本書は、ジョブスケジューラのオープンソースソフトウェア「Rundeck」の調査報告書です。エンタープライズ版とOSS版の2種類が存在し、本書ではOSS版のインストール方法やプロジェクトの作成方法などを掲載しています。

デモのお申込み

もっと使い方が知りたい方へ
操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。デモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ

OSSのジョブ管理ツール〜Rundeck〜の先頭へ