タスク管理
rundeck

WindowsでRundeckを運用する

アプリのログデータを収集するためのユーティリティサーバとして利用できるサーバにWindows Serverがある。

現状はタスクスケジューラでバッチをいろいろ動かしているけども、実行するバッチは別のサーバーにあるんだけども依存関係があったりして、今は時間間隔を調整して整合性が取れるようにしている。

しかし、いつかは破綻するのでそろそろちゃんとしたいなということで調査した結果、Jar単体で動作するRundeckを採用した。

環境

今回使っている環境は以下の通り

  • Windows Server 2008 R2 SP1(64bit)

セットアップ

インストールの流れは下記の通り。

  1. Javaのインストール
  2. Rundeckのインストール
  3. nssmのインストール
  4. Win32-OpenSSHのインストール

Win32-OpenSSHについては、ローカルのWindowsマシンでジョブを実行しないのであれば必要ない。

アプリケーションの事前準備

以下のツールをダウンロードしておく

名称 バージョン 内容
Rundeck 2.6.9 ジョブ管理
nssm 2.24 アプリケーションのサービス化サポートツール
Win32-OpenSSH sshサーバ
Java 1.7_79 Oracle Java SE

Javaのインストール

  1. Javaのインストーラーを実行
  2. 環境変数JAVA_HOMEを追加する
  3. コマンドプロンプトを起動し、java -versionと入力し、Javaのバージョンが表示されることを確認

Rundeckのインストール

  1. Rundeckを%HOME%以下の任意の場所(例: %HOME%\rundeck)へ展開する
  2. コマンドプロンプトを開き、java -XX:MaxPermSize=256m -Xmx1024m -Xms256m -server -jar rundeck-launcher-2.6.9.jarを入力してRundeckをStandaloneで起動する
  3. Webブラウザでhttp://localhost:4440へアクセスし、ページが表示されることを確認する

3でアクセスできない場合はファイアーウォールの設定で4440のポートを開けるか、Webブラウザの例外設定にlocalhostを入れる。

nssmのインストール

  1. Rundeckの起動スクリプトを作成する
  2. コマンドプロンプトより、nssmを展開したディレクトリまで移動する
  3. nssm install [command name]を入力し、設定ウィンドウを起動する
  4. 必要な情報を入力
start.bat
@echo off
java -XX:MaxPermSize=256m -Xmx1024m -Xms256m -server -jar rundeck-launcher-2.6.9.jar %1

Win32-OpenSSHのインストール

  1. OpenSSHを%HOME%以下の任意の場所へ展開する
  2. 環境変数Pathに、上記のパスを設定する
  3. コマンドプロンプトを起動し、ssh-keygen.exe -Aを実行する
  4. ファイアーウォールで受信ルールにTCPに22を追加する
  5. コマンドプロンプトで1のパスへ移動し、setup-ssh-lsa.cmdを実行する
  6. OSを再起動する
  7. sshd installを実行してサービスへインストールする
  8. サービスから登録したsshdを起動する
  9. コマンドプロンプトから、ssh [コンピュータ名]を入力し、ログインする
  10. ssh-keygen -t rsaを実行し、公開鍵と秘密鍵を生成する。このとき、パスワード入力を求められるが今回はパスワード入力をスキップさせるため、空欄にしておく
  11. etc\sshd_configをテキストエディタで開き、PubkeyAuthenticationがyesになっていることと、AuthorizedKeysFileが.ssh/authorized_keysになっていることを確認する
  12. .ssh/id_rsa.pubを.ssh/authorized_keysへリネームする
  13. sshdを再起動する
  14. パスワードなしでログインできることを確認する

参考サイト