Rundeck 3 で SSH先 でジョブを実行する方法

結論

1. 「ノード」の設定(追加)を行う

まずは追加です。

2. ノードを追加する際に「新しいリソースモデルソースを追加」では「File」を選択する

以下の画像をご参照ください。

f:id:gregminster:20190211110517p:plain

3. まずは雛形ファイルを作ってしまう

  • 以下の画像をご参照ください
  • 後から手動で作ることも可能ですがいろいろ面倒なのでここで雛形を作ったほうが良いかと思います
  • ファイルのフォーマットは XML と JSON と YAML が選べますが、ここでは YAML を選んでいます

f:id:gregminster:20190211111019p:plain

  • この雛形ファイル内で最上位階層のキー名は 必ず変更する必要があります *1
    • 「5.」でも触れます

4. GUI の編集画面に遷移する

  • CLI から編集できますが、GUI からも編集できる(Edit Nodes File をクリック)のでその方が楽だと思います
  • 以下の画像をご参照ください

f:id:gregminster:20190211111247p:plain


f:id:gregminster:20190211111300p:plain

5. 設定ファイルに SSH先 と 鍵 を記載する(注意点あり

  • 最上位階層のキー名をデフォルトのものから任意の名称に必ず変更して下さい
    • 変更しないとノードのリストに現れません
    • 変更しない場合は強制的に localhost になるようです*2
  • hostname に SSH先 を設定します
    • ひな形の hostname を削除することを忘れないでください(下記の例ではコメントアウトしています)
  • ssh-key-storage-path に SSH鍵 を設定します*3
    • storage-path という文字列が含まれてあることから分かるように、この設定名を用いる場合は Rundeck の鍵管理システムを利用する場合です
    • 単純に任意の場所に置いた鍵を指定する方法や パスワードでログインする方法の場合は異なる設定をする必要があります
  • 具体的には以下のようになります
af1e1b85e098:
  nodename: af1e1b85e098
  # hostname: af1e1b85e098
  osVersion: 4.9.125-linuxkit
  osFamily: unix
  osArch: amd64
  description: Rundeck server node
  osName: Linux
  username: rundeck
  tags: ''
  hostname: 123.123.123.123
  ssh-key-storage-path: keys/FOOBAR_KEY

6. ジョブの設定において当該「ノード」を割り当てる

  • ジョブの設定項目に「ノード」というものがあります
  • その設定にて「ノードに割り当てる」を選択し、ノードの name: に、先ほど書いた設定ファイルの設定名(キーバリューの組み合わせのうち、ルートにあるキーの名前)を指定します
    • ノードをフィルタリングしたあとに指定したいノードをクリックします
      • フィルタリングの際の書式は純粋な正規表現です
    • ノードの詳細が表示されるので、詳細の最上部にある「→」のアイコンをクリックすると指定できます
  • 以下の画像をご参照ください、

f:id:gregminster:20190211112025p:plain


f:id:gregminster:20190211112006p:plain

7. ジョブを実行する

ここまでの設定が正しければ、SSH先 でジョブを実行することが可能になっているはずです。

備考

ノードの設定ファイルは一つのディレクトリに放り込んでおき、Add source の項目で Directory を選ぶと楽かと思います。

f:id:gregminster:20190219140504p:plain

補足

Rundeck 3 については粒度を細かくして記事にしているので、他の記事 も参考にするとよいかもしれません。

あと、困ったら何はともあれ 公式ドキュメント です。

*1:ここが最大のハマりポイントかも

*2:おそらく書いてあると思うんですが、ドキュメントが見つけられませんでした……

*3:プロジェクトのデフォルト鍵を用いる場合はこの記述は不要ですが、その場合でも明示的に書いておいたほうがよいと思います

Powered by はてなブログ