ジョブスケジューラRundeckをEc2に立ててみた

業務でcronで動いているバッチを専用のサーバで動かすという要件があったため、Rundeckというジョブスケジューラで行うことになりました。

導入方法はとても簡単です。使い勝手も大変良く、日時のバッチの失敗の検知(メールで送信)などもGUI上で設定できます。

ここではRundeckを起動するまでの流れを簡単に説明致します。

 

 1.動かすサーバーを立てる。

自分はオンプレで立てましたが、一番最速なAWSのEC2で今回は立てます
AWSの管理コーンソールでサクッとインスタンスを作成してしまいましょう

f:id:kinokuniya56:20191016111025p:plain

 

f:id:kinokuniya56:20191016111111p:plain

f:id:kinokuniya56:20191016111231p:plain

 

 

最後にコンソールからSSHでEC2にアクセスするためのキーを作成します。

f:id:kinokuniya56:20191016111124p:plain

 

ここで作成したキーを使って作成されたEC2インスタンスに接続しましょう

>>>  ssh -i ~/.ssh/rundeck.pem ec2-user@<ホスト名>

※つながらない場合はkeyをchmod 600で権限を変えてあげましょう

 

2.Rundeckをインストール

インストールはJAVAとRundeckをインストールするのみです。
Webサーバなどの役割もRundeckの方で自動で設定してくれるみたいです。
ec2の接続先で以下のコマンドを実行してインストールします。

>>> yum install java-1.8.0

>>> rpm -Uvh http://repo.rundeck.org/latest.rpm

>>> yum install rundeck

 

3.Rundeck起動

サービスを起動します。

 >>> service rundeckd start

 

自サーバから応答が帰ってくるかを見ます。

 >>> curl -v 127.0.0.1:4440/user/login

 

コマンド入力後にHTMLが帰ってくれば起動はできているということです。

 

4.ブラウザから見れるようにす

ブラウザからrundeckにアクセスするにはrundeck側とEC2のセキュリティグループのインバウンドの設定が必要になります。

※Rundeck側
以下の設定ファイルを設定します。

 

rundeckユーザで作業しましょう

>>> sudo su - rundeck

>>> vi  /etc/rundeck/rundeck-config.properties

 

以下の項目を設定します。
私の場合はとりあえずIPのみを設定しました

>>> grails.serverURL=http://xxx.xxx.xxx.xxx:4440

 

※EC2側

インスタンス→セキュリティグループ→インバウンドの設定からrundeckのポート番号4440を許可します。

以下ような設定

f:id:kinokuniya56:20191016112630p:plain

 

さてこれで設定は完了です。ブラウザからアクセスしてみましょう

http://xxx.xxx.xxx.xxx:4440/user/login

 

f:id:kinokuniya56:20191016112727p:plain

 

ログイン画面が起動しました。
初期id/passはともにadminです。

ログインしてみましょう。メニュー画面に遷移します。
最近ブラウザのセキュリティの問題でhttpsでないとうまくいかないブラウザが増えていますが、
うまく遷移しない場合したのURLを直接叩いても良いです。

http://xxx.xxx.xxx.xxx:4440/menu/home

f:id:kinokuniya56:20191016112826p:plain

とここまででRundeckを使う準備はできました。
次回はRundeckの使い方を書いていく予定です。