Rundeckの紹介
Rundeckはオープンソースのジョブスケジューラーサービスです。ノード間で簡単に自動化されたタスクを実行できます。ライセンスはApacheライセンス2.0です。
Rundeckを導入するとバッチ操作の安全性向上とジョブの可視性向上を期待できます。
Rundeckの主要機能紹介
- コマンドライン/ウェブAPI/ウェブUI
- 複数ステップワークフロー
- ジョブスケジューリング
- ジョブ実行履歴・実行ログ
- LDAP/ActiveDirectory連携
- ユーザー単位のアクセス権限管理
- 分散処理・ノード管理
Rundeckは主にユーザー認証とジョブの実行環境に関する機能を提供しています。外部サービスやリソースとの連携はプラグインとして追加や開発が出来る仕組みになっています。
Rundeck.orgとRundeck.comの違いと有料版の紹介
ここで紹介するのはRundeck.orgで公開されている無料版ですが、Rundeck.comでは有料版のRundeck Proを提供しています。有料版にはワークフローのパラレル実行や実行状況のリアルタイム可視化やユーザーインターフェイスの改良が含まれています。
インストール手順
Ubuntu16.04 LTSにRundeck 2.8.2をインストールする手順を説明します。
まずjava8をインストールします。
$ sudo apt-get install openjdk-8-jdk
次にパッケージを取得しインストールします。
$ wget http://dl.bintray.com/rundeck/rundeck-deb/rundeck-2.8.2-1-GA.deb $ sudo dpkg -i rundeck-2.8.2-1-GA.deb
rundeckdがサービスに登録されました。状態を確認するとinactiveと表示され停止しています。
$ service rundeckd status
以下のコマンドで起動します。起動後にstatusコマンドでjavaのプロセスが稼働している事を確認できます。
$ service rundeckd start
4440番ポートでアクセスしログインフォームが表示されます。もしHTTPSでアクセスする場合は4443番ポートを指定します。
初期状態のAdminユーザーでログインするにはUsernameとPasswordにadmin/adminと入力します。同じように初期状態のUserユーザーでログインするにはUsernameとPasswordにuser/userと入力します。
ログイン後のページが表示されればインストール完了です。
使い方を簡単に紹介
それでは実際にRundeckを動かしながら使い方を紹介します。ここではsambaの再起動(起動と停止)を行うジョブを試してみます。
プロジェクトの追加
ログインしてすぐに表示されている「New Project」ボタンを押してプロジェクトを新規追加します。
プロジェクト追加フォームが開きますので、Project NameとDescriptionに適当に値を入力してフォーム下部にあるcreateをクリックします。
ジョブの追加
プロジェクトを作成しましたら次にジョブを追加します。ジョブの一覧ページが開いていると思います。もしくはページ上部のナビゲーションバーにある「Jobs」をクリックしジョブ一覧ページを開いてから「Create a new Job」ボタンをクリックします。
ジョブの名称と簡単な説明を入力しフォーム内にあるワークフロー入力に進みます。
ワークフローのブロック中にあるSTEP中の「Local Command」リンクをクリックしコマンドの入力フォームに移ります。
実行するコマンドを入力し「Save」ボタンをクリックします。ここで実行するコマンドはSambaのサービスを停止する「sudo service smbd stop」です。
次にSambaの起動コマンドを登録します。「Add a step」をクリックし追加コマンド入力フォームを開きます。前手順と同じようにSTEP中の「Local Command」を押してコマンドの入力フォームに移ります。
実行するコマンドを入力し「Save」ボタンをクリックします。ここで実行するコマンドはSambaのサービスを起動する「sudo service smbd start」です。
ステップが2つ登録されました。フォーム最下部にあるCreateボタンをクリックしジョブを追加します。
無事にジョブが作られました。
ジョブの実行
ジョブを実行してもRundeckの実行ユーザーにsudo権限がないためエラーになりますが、エラー情報を確認するために「Run Job Now」ボタンをクリックします。
実行して数秒待つと失敗します。
「Localhost > stop smbd service」リンクをクリックするとエラーログを参照できます。コマンドからsudoを実行できるようになっていないため、no tty presentとログに出力されています。
ジョブのエラーを修正して再実行
コマンドからvisudoを編集します。
$ sudo visudo
Defaultsが並ぶ下に以下を追加します。:(コロン)の後ろに指定するユーザー名はrundeckです。
Defaults:rundeck !requiretty
またパスワードを求められないようにrundeckユーザーにNOPASSWORDオプションを指定します。
rundeck ALL=(ALL) NOPASSWD:ALL
visudoコマンドを終了してウェブUIに戻ります。ジョブ実行結果ページの右上にある「Run Again」をクリックするとジョブページに遷移します。再度「Run Job Now」ボタンをクリックしジョブを再実行します。
ジョブの実行に成功しました。
Reportのタブを開き、Nodeの詳細を開くと全てのステップが実行されているのを確認できます。
ウェブUIからコマンド実行
ノードに対し直接コマンドを実行できます。ここでは試しにpingコマンドを実行します。
ページ最上部にあるナビゲーションバーの「Commands」をクリックします。Nodesに全てを意味する.*を入力し、コマンド入力欄に10回pingを実行するping -c 10 google.co.jpと入力し「Run on 1 Node」ボタンをクリックします。
徐々にpingの実行結果が表示されて行きます。
ジョブの実行状況はActivityから確認できます。
ジョブの実行スケジュール追加
cronのようなルールベースのスケジューリングを設定してみます。ジョブの新規フォームまたは編集フォームの「Schedule to run repeatedly?」で実行ルールを指定します。
crontabのタブを押すとcron形式で入力できるためcronに登録されている内容を移植するのに便利です。カーソルの位置に合わせてYear/Month/Day Of Weekとヒントが表示されるのも便利です。
保存してジョブの詳細を開くと実行予定と次回実行時間が表示されるようになります。
Rundeckの簡単な使い方の説明は以上です。
まとめ
ジョブスケジューラーに必要な機能を一式搭載しているオールインワン型の比較的分かりやすいソフトウェアです。また「Job Scheduler and Runbook automation」と歌っているようにサーバー環境や開発環境構築などの構成管理ツールとしての用途にも対応でき、AnsibleやChefのプラグインも提供されています。
最近更新されていませんが、version2.6.7までは日本語のマニュアルが準備されているようです。http://rundeck.org/2.6.7/jp/index.html
参考情報
http://rundeck.org/
https://github.com/rundeck/rundeck
https://www.rundeck.com/
http://rundeck.org/docs/administration/installation.html
http://rundeck.org/2.8.2/
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments