1
0

Rundeck導入(ジョブ登録 / 引数設定 / ジョブ実行 / ノード登録 / スケジュール登録)

Last updated at Posted at 2023-09-14

概要

少し前に導入したことあったけど、若干手順が変わっていたのでメモ

環境

  • MIRACLE LINUX release 9.0
  • Rundeck 4.16.0

手順

インストール

公式サイトに登録してインストールが必要。
下記から登録すると導入手順も教えてくれます。

管理ページへのアクセス

インストールとRundeckの起動ができたらブラウザから管理ページにアクセスする。

http://[サーバーのIPアドレス]:4440

以下のようなページが表示されればOK
image.png

ログインができないので・・・

初期パスワードで何故かログインができないので確認してたら
Rundeckの初期ホストがlocalhostになっているのでこれを変えてやらないといけない?

# vi /etc/rundeck/rundeck-config.properties
/etc/rundeck/rundeck-config.properties
- grails.serverURL=http://localhost:4440
+ grails.serverURL=http://[サーバードメイン]:4440

このあたりは各自の環境によって調整するのが良いと思います。

rundeckを再起動する

# systemctl restart rundeckd.service 

再起動後、しばらくはブラウザからRundeckに繋がらないので暫く待つこと。

ログインできることを確認する。
image.png

プロジェクトとジョブの作成

管理画面にログインできたらプロジェクトとジョブを作成します。
プロジェクトはトップ画面の「新しいプロジェクト」から作成できます。

ジョブの作成

今回は適当なコマンドをローカルで実行するログを作成します。
以下のジョブ作成の画面で、ステップを追加から「Command」を選択します。
image.png

なにか適当にコマンドを入力して保存する。
image.png

これでジョブを作成する。他の項目はとりあえず初期値で良い。

ジョブ実行のテスト

先程作成したジョブを実行し、問題なく実行できるかを確認する。

image.png

引数付きのジョブを作成する

コマンドへの引数は直接指定することもできるが、ジョブ自体に引数の設定項目を持たせることも可能です。
ジョブ設定の「Workflow > Options」からオプションを追加します。

image.png

作成したオプションは以下のような方法でコマンドライン引数やスクリプト内に変数的に利用することが可能です。

image.png

今回は引数を設定したいので、${option.arg1}${option.arg2}を使います。(名前はオプション名で変わります)

image.png

オプションを設定することで、ジョブ実行画面で任意の引数値を指定して実行することが可能になります。設定によって、初期値を持たせたり日付を設定したりすることができます。
image.png

他のサーバーでコマンドを実行する場合

他のサーバーで任意のジョブを実行させる場合は 「ノード」 を作成する必要がある。
いろいろやり方はあるが、今回は以下のような条件で作成する

  • ファイルベースのノード追加を行う
  • RunDeckサーバーの任意のディレクトリにノード定義ファイルを作成
  • ノード定義ファイルはYAML形式
  • 他サーバーへの接続はパスワード認証のSSHを使う
  • パスワードはRunDeckのKeyContainerに持たせる

RunDeckサーバーにノード定義ファイルを作成

/rundeck/node/file ディレクトリにノード定義ファイルを作成する。
ノード定義ファイルは以下のようなYAMLを作成

/rundeck/node/file/sv1.yml
sv1:
  nodename: sv1
  hostname: sv1.example.com
  username: user1
  ssh-authentication: password
  ssh-password-storage-path: keys/user1

※ 各値は環境毎に変えること

SSH認証用のキーコンテナをRundeckに作成

Rundeck管理画面の右上の歯車マークからKey Storageを選択して開き、キーを作成する。
image.png

項目
Key Type Password
Name ノード定義yamlに記載した ssh-password-storage-path に対応する値を入力

image.png

ノードを登録

プロジェクトを開き、左下のPROJECT SETTINGからEdit Nodesを開き、ノードを作成する。
image.png

今回はファイルベースでノードを追加するため、Fileを選択する。
image.png

項目
Formnat resourceyaml
File Path 作成したノード定義ファイルのパス

image.png

ジョブに実行ノードを設定

ジョブの設定画面からNodesを開き、実行ノードを設定する。

項目
Nodes Dispatch to Nodes
ノードフィルタ 作成したノード定義名
マッチしたノード 作成したノードが表示されていることを確認

image.png

これで保存すれば準備OKです。
ジョブを実行して設定した他サーバーで実行されるっこおを確認してください。

SSH接続は環境に応じてファイアウォールやフィルタリングの解除などが必要になる場合があります。

スケジュール登録

cronのようにスケジュールを登録してジョブを定期実行するようにする。
ジョブの設定画面からScheduleを開き設定をする。

image.png

cron形式でも登録可能です。

やっていて気になったこと

解決方法とかがあれば記事にするかも

  • ジョブ実行のエラーキャッチやログ出力を調整する場合はバッチ側の調整が必要?
    • 標準出力をログをして表示するので、別途ログファイルに出力している場合はRundeck側はなにもログが出ない
  • 中途半端に日本語化されているから設定を理解するのにちょっと時間がかかる
  • 証明書認証によるSSHの設定

おわり

かなりシンプルにセットアップできるので導入ハードルは低いのだけど、シンプルすぎてちょっと物足りないと感じる場合もあるかも。ワークフローが可視化されないのでその点はちょっと困る・・・

Enterprise版でこの辺は解消されるんだろうけどもー。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0