# Rundeck
Official:
http://rundeck.org/index.html
Download:
http://rundeck.org/downloads.html
## リポジトリ追加
  # rpm -Uvh http://repo.rundeck.org/latest.rpm
## インストール
  # yum install rundeck
  ~省略~
  
  =========================================================================================
   パッケージ          アーキテクチャ
                                   バージョン           リポジトリー                  容量
  =========================================================================================
  インストールしています:
   rundeck             noarch      2.5.3-1.10.GA        rundeck-release-bintray       86 M
  依存性関連でのインストールをします。:
   rundeck-config      noarch      2.5.3-1.10.GA        rundeck-release-bintray      9.0 k
  
  トランザクションの要約
  =========================================================================================
  インストール         2 パッケージ
  
  総ダウンロード容量: 86 M
  インストール済み容量: 117 M
  これでいいですか? [y/N]
  
  ~省略~
  
  インストール:
    rundeck.noarch 0:2.5.3-1.10.GA                                                         
  
  依存性関連をインストールしました:
    rundeck-config.noarch 0:2.5.3-1.10.GA                                                  
  
  完了しました!
## Configure
  # cp -a /etc/rundeck/rundeck-config.properties /etc/rundeck/rundeck-config.properties.org
  # vi /etc/rundeck/rundeck-config.properties
  
  #grails.serverURL=http://localhost:4440
  grails.serverURL=http://SERVER_DOMAIN_OR_IP:4440
  grails.mail.host=localhost
  grails.mail.port=25
  grails.mail.default.from=root@ホスト名.localdomain
## Service Start
  # /etc/init.d/rundeckd start
※環境により、数十秒~数分掛かる。ログに以下が出力されれば起動処理終了。
  # tail -f /var/log/rundeck/service.log
  ~省略~
  2015-09-24 11:39:23.814:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:4440
ブラウザで http://SERVER:4440/ にアクセスして、ログイン画面が表示されることを確認。
初期から存在するユーザーは「admin / admin」。
## User setting
Rundeckにログインするユーザーの設定ファイルは「/etc/rundeck/realm.properties」。
書式は、以下のとおり。
  # The format is
  #  : [, ...]
  
  admin:admin,user,admin,architect,deploy,build
パスワード(password)は平文でも記述できるが、MD5などハッシュ化して記述を推奨。
以下、ユーザー:admin、パスワード:adminのパスワードのMD5ハッシュを求める処理。
1. Rundeckのドキュメントにのっている方法。
バージョンによってjettyへのパスが異なるので注意。
    # java -cp /var/lib/rundeck/bootstrap/jetty-all-7.6.0.v20120127.jar org.eclipse.jetty.util.security.Password admin admin
    admin
    OBF:1u2a1toa1w8v1tok1u30
    MD5:21232f297a57a5a743894a0e4a801fc3
    CRYPT:adpexzg3FUZAk
2. md5sum (1)
read:で入力待ちとなるので、adminと入力してenter。
  # bash -c 'read -sp "read: " password && echo -n $password | md5sum'
  read: 21232f297a57a5a743894a0e4a801fc3  -
3. md5sum (2)
「-n」を忘れると別物になるので注意。
  # echo -n "admin" | md5sum              
  21232f297a57a5a743894a0e4a801fc3  -
設定ファイルへの記述方法
  admin:MD5:21232f297a57a5a743894a0e4a801fc3,user,admin,architect,deploy,build
## SSH Key
任意のSSH Keyを設定する場合は、事前に登録と設定が必要。
パスフレーズはないほうが設定は簡単。ある場合、Jobは設定できるが、Commandは設定できない。
その他、制限があるのでパスフレーズ無しが無難。
Rundeck ドキュメント (2.5.3) ユーザーマニュアル プラグイン
http://rundeck.org/docs/jp/manual/08-plugins.html#ssh-%E7%A7%98%E5%AF%86%E9%8D%B5%E3%83%91%E3%82%B9%E3%83%95%E3%83%AC%E3%83%BC%E3%82%BA%E3%81%AE%E8%A8%AD%E5%AE%9A
### Add or Upload a Key
Configure(右上の歯車)-> Key Strage -> Add or Upload a Key
から任意のSSH KeyをRundeckに登録する。
登録する方法はファイルのアップロードか、テキストのコピー&ペーストで。
### SSH Key Storage Path
Projectのconfigureを開き、SSH Key Strage Pathに上記で登録したSSH Keyを設定することで、ProjectのデフォルトのSSH Keyに設定される。
### sshKeyPassphrase
※SSH Keyにパスフレーズを設定していない場合はこの設定は不要。
Jobの設定画面からOptionsのAdd an optionを押下。
- Option Nameに「sshKeyPassphrase」
- Default Valueにパスフレーズ
- RequiredをYes
に設定。
## How To UseEdit
### Project
Jobをまとめる入れ物。複数Jobの共通設定なども行う。
各Jobがsshやscpで使用する鍵ファイルは、デフォルトは「/var/lib/rundeck/.ssh/id_rsa」が定義されているので、
コマンドを実行したいサーバー(Nodes)の任意のユーザーに鍵を登録しておく必要がある。
または、別途サーバーに用意している鍵を使用する場合はその鍵をRundeckに登録して指定する。
デフォルトの鍵、任意に追加した鍵の両方が設定されている場合は、任意に追加した鍵が使用される。
### Jobs
Cronに定義するイメージで、スクリプトやコマンドを指定日時、指定間隔で実行する定義を行う。
「Send Notification?」の定義で、Jobの実行時、終了時、エラー時などに指定のメールアドレスにメールを送信できる。
「Schedule to run repeatedly?」の定義でスケジュール実行を定義する。
### Nodes
Jobの実行対象のサーバーを登録する。
各サーバーの最初の登録は対象ファイルに手書きで登録する必要がある。
/var/rundeck/projects/pj001/etc/resources.xml
  
    
  
usernameを指定すれば、SSHログインのユーザーとなる(※SSH鍵とセットになる必要がある)。
os~はなくても良い。
tagsはJobやCommand実行時のフィルタリングに便利。
Nodesをクリックして一覧を開いたときに赤文字で「server」と書かれているのがRundeckのサーバーとなる。
### Commands
Nodeの中の指定のサーバーに任意のコマンドを実行する。
e.g. Commandに「date」Nodesに「.*(All)」を設定してRun on n Nodesを押下すると、Nodeのすべてのサーバーの現在時刻取得。
### Activity
JobやCommandの実行結果が確認できる。
一覧からJobやCommandを選択すると詳細画面に移行し、ReportやLogの確認、再実行(Run Again)などの操作が行える。
## 関連サイト
Getting Started:
http://rundeck.org/docs/manual/getting-started.html
Rundeck ドキュメント
http://rundeck.org/docs/jp/index.html
## おまけ
  # rd-jobs list -f /mnt/addVol/backup/rundeck/jobs.xml -p ikt
  ERROR BaseFormAuthenticator: Form-based auth failed
  Error: Error making server request to http://localhost:4440: Unable to authenticate user: admin
  # vi /etc/rundeck/framework.properties
  framework.server.password = admin