Rundeck〜OSSのジョブ管理ツール〜
OSS研究室 森 彰吾
今回はジョブ管理ツールRundeckについて紹介します。
ジョブ管理ツールとは?
ジョブ管理ツールとは、システム内で何かの処理(ジョブ)を定期的に実行するソフトウェアの総称です。よく使われるのはバッチプログラムの実行です。例えばユーザアカウントなどの情報を、定期的に認証DBから別のシステムに同期するなどプログラムを定期実行するために利用されます。
Linuxでは、古くからcronと呼ばれるジョブ管理ツールが利用されてきました。非常にシンプルな設定で、任意の日時にプログラムを実行してくれるため、現在でも使われています。
ジョブ管理ツールで起こりがちな問題
上記のcronに代表されるシンプルなジョブ管理ツールは簡単に利用できますが、一方で機能不足による問題も発生します。例えば次のようなことです。
- 「Aが終わった後にBを開始」などの複数のジョブの関係管理ができない
- サーバを跨いだジョブの管理が苦手
- 処理が失敗した場合、サーバにログインして手動実行し直す必要がある
- 1分毎など短い期間で実行されるジョブが、多重実行されてしまう可能性がある
- 処理の成否の判定がメール通知など限定的
このような問題は、ジョブ管理ツールで実行するプログラム側で対応するケースがあります。このような処理は実装や試験が比較的難しい・面倒な上に、本来やりたいこととは異なる場合が多く、単純に管理者の負担となっていました。
Rundeck
RundeckはPagerDuty, Inc.によって開発されたソフトウェアです。エンタープライズ版とOSS版の2種類が存在しています。このメルマガではOSS版で実現できることを重点的に紹介します。
ジョブ管理ツール「Rundeck」には次のような特徴があります。
- WEBインタフェースからジョブとスケジュールの設定が可能
- sshを使って複数サーバに渡ってジョブを実行することが可能
- ジョブはコマンド・スクリプト・Ansibleなど複数の形態で実行が可能
- ジョブ同士の関係性を管理することができる
- ジョブの重複実行を抑制することができる
- 実行結果をわかりやすいUIで確認することができる
- ジョブの手動実行も可能
- 通知の種別も様々用意されている
- 成功時にメール通知
- 失敗時にSlackに通知
つまり、Rundeck1台で複数台のサーバのバッチ処理を管理・実行できるため、複雑な連携処理の課題を解決することができます。
Rundeckの用途
Rundeckは、プログラムを定期実行させる用途なら何にでも利用できます。一般的な例としては次のようなものが挙げられます。
セキュリティアップデートや設定変更
Rundeckは構成管理ツールAnsibleと連携して動作することができます。Ansibleを利用することで、特定のソフトウェアのアップデートや、設定の変更、再起動などを行うことができます。一方でAnsibleには自動実行の仕組みがありません。この欠点をRundeckで補うことができます。
具体的には、次のような運用をすることができます。
- フェーズ1:Ansible/Rundeckの設定
- Ansbileでhttpdサービスのアップデートを行うルールを作成します
- RundeckでAnsibleのルールを実行するジョブ設定を行います
- Rundeckでサービスアップデート後の動作確認をするスクリプトの実行設定を行います
- フェーズ2:動作確認
- Rundeckで、作成したジョブ設定を試験サーバで動作させます
- 動作結果・確認結果が問題ないことを確認します
- Rundeckに日時処理の設定やジョブを実行するホストの設定を行います
- フェーズ3:日時処理
- ジョブが自動実行されます
このようにすることで、Rundeckで比較的安全・効率的にアップデート作業を実施することができます。またアラートの仕組みもあるため、メールやチャットなどで処理の失敗に気付くこともできます。
データの加工処理
ログや監視データなどは、大量のデータを時間をかけて加工して利用する場合があります。さらに1つのデータから、用途に応じて複数のフォーマットのデータを生成するようなケースもあります。このような時にもバッチ処理が利用されます。Rundeckを使うと、加工の段階や加工を行うホストに応じて、段階的にジョブを実行することができます。
またこのようなケースは、ジョブが多重実行されると意図せぬ加工が行われて、処理を最初からやりなおすことになったりしますが、Rundeckはそのリスクを抑制することができます。
エンタープライズ版とOSS版の違い
RundeckはOSS版とエンタープライズ版の2種類があります。この2つの大きな違いは次の通りです。
- エンタープライズ版ではジョブのフローを視覚的に表示する機能が存在する
- エンタープライズ版ではユーザ管理のUIが付属している
- エンタープライズ版ではACL管理のUIが付属している
エンタープライズ版を利用すると、Rundeckをより便利に使うことができます。ただOSS版でも、充分実用できる機能を備えています。
デージーネットの取り組み
Rundeckは非常に強力な機能を備えたジョブ管理ツールです。現在でも複数のバッチプログラムを動作させている企業は多く存在しますので、デージーネットではこのRundeckを活用した提案を今後行っていきます。またRundeckは、日本語の対応がRundeckのバージョンアップについていけていない状態です。この点もデージーネットで改善を行い、Rundeck自体にも貢献していきたいと考えています。
関連ページ
Rundeck〜OSSのジョブ管理ツール〜
ジョブ管理ツールとは、特定の処理を定期的に実行するためのソフトウェアの総称で「ジョブスケジューラ」や「タスクスケジューラ」とも呼ばれています。ここでは、cronにかわるジョブスケジューラのソフトウェアRundeckを紹介します。
デージーネットからのお知らせ
【Webセミナー】PPAPの廃止へ、オンラインストレージ「Nextcloud」を利用したPPAP方式に代わるセキュリティ対策を開催いたします。
弊社では、PPAP方式に代わるセキュリティ対策としてOSSのオンラインストレージと弊社が開発したOSSの「SaMMA」を組み合わせました。2つを組み合わせることで、オンラインストレージを利用して自動でファイルのやり取りができるようになります。今回は、OSSのオンラインストレージと添付ファイル安全化ソフトウェアを組み合わせたPPAP対策をご紹介します。
- 日程:2021年5月21日(金)
- 時間:15:00 〜 16:00(ログイン可能時間14:50 〜)
- 定員:50名
お申込みはまだ間に合います!ぜひこの機会にご参加ください。
お申し込みフォーム↓↓
https://www.designet.co.jp/seminar/seminar.php?seminar_id=53
OSSのオンラインストレージ『Nextcloud』日本語マニュアルを2021年5月19日より無償公開〜PPAP対策やテレワークの業務改善に〜
https://www.designet.co.jp/info/index.php?id=442
Nextcloudのマニュアルを公開しました。
https://www.designet.co.jp/ossinfo/nextcloud/nextcloud_adminmanual/
無料資料ダウンロードに【Rundeck調査報告書】を掲載しました。
RundeckはPagerDuty,Inc.によって開発されたオープンソースソフトウェアです。エンタープライズ版とOSS版の2種類が存在しています。本書は、ジョブスケジューラ「Rundeck」の調査報告書です。なお本書はOSS版のRundeckを取り扱っています。
https://www.designet.co.jp/download/#remotework
DHCPadmin バージョン2.06をリリース
https://www.designet.co.jp/open_source/dhcpadmin/releasenote.php
メールサーバの安全性を無料でチェックできるサイトを公開しています。
メールセキュリティへの関心が高まる中、メールセキュリティのチェック項目を整理して、誰でも簡単にチェックできるツールはありませんでした。本サイトでは、メールアドレスを入力するだけで、メールサーバのセキュリティを無料でチェックできます。