Rundeckのプロジェクト作成画面の見方について調べてみた

今回はRundeckの管理画面で操作できるプロジェクト作成画面の各項目について、調べた結果を紹介します。

利用環境は以下の通りです。

OSCentOS Stream release 9
Javaopenjdk 11.0.20.1
Rundeckrundeck 5.6.0

Rundeckのインストール、ジョブ登録については以下で紹介していますので、ご参考ください。

プロジェクト作成画面

プロジェクト作成画面は以下のタブで構成されています。
内容について、1つずつ見ていきましょう。

プロジェクト作成画面~[Details]タブ~

Detailsタブは以下の項目で構成されています。
各項目の説明は以下の通りです。

項目名説明
Project Nameプロジェクトを識別するための名前です。
必須項目で他のプロジェクトと重複しない一意の値である必要があります。
Project Display Nameプロジェクトの表示名。
Project Nameとは別に、UIなどでユーザーに表示される際の名前を指定可能。
Descriptionプロジェクトの説明文を入力できます。任意項目です。

プロジェクト作成画面~[Execution History Clean]タブ~

Execution History Cleanは、古い実行履歴を自動的に削除してデータをクリーンに保つための機能です。

有効化(Enableにチェック)にした場合、各設定項目の説明は以下の通りです。

項目名説明
Days to keep executions.実行履歴を保持する日数を指定する。
この日数を超えた古い実行履歴は削除される。
デフォルト値:60
Minimum executions to keep.削除せずに保持する最小の実行数を指定する。
「Days to keep executions.」で指定している日数条件を満たしていても、この変数で指定した数を下回る実行履歴は削除されない。
デフォルト値:50
Maximum size of the deletion.1回のクリーン処理で削除する最大の実行数を指定する。
大量の削除によるシステムへの負荷を制御するために使用される。
デフォルト値:500
Schedule clean history job (Cron expression). クリーンアップジョブを実行するスケジュールをCron式で指定する。
例えば、毎日午前2時に実行する場合は “0 0 2 * * ?” のように設定する。
デフォルト値:0 0 0 1/1 * ? * (毎日 0時)

Minimum executions to keep“と”Days to keep executions“の違い

  • 日数vs数:
    • “Days to keep executions”は時間ベース
    • “Minimum executions to keep”は数量ベース
  • 優先順位:
    “Minimum executions to keep”は”Days to keep executions”よりも優先されます。
  • 保護機能:
    “Minimum executions to keep”は、重要な最新の実行履歴を確実に保持するためのセーフガードとして機能します。
  • 柔軟性:
    両方の設定を組み合わせることで、より柔軟な履歴管理が可能になります。

プロジェクト作成画面~[Execution Mode]タブ~

Execution Modeタブは、プロジェクトレベルでのジョブ実行と実行スケジュールを管理するために使用されます。

主な設定項目は以下の通りです。

項目名説明
Enable/Disable Execution LaterX時間後にジョブ実行を有効/無効化したい場合に、利用する。
・X時間後にジョブ実行を無効化したい場合
 「Disable Execution Later」にチェック、かつ、
 「Disable Execution after time」に何時間後にジョブ実行を無効化したいか指定
・X時間後にジョブ実行を有効化したい場合
 「Enable Execution Later」にチェック、かつ、
 「Enable Execution after time
」に何時間後にジョブ実行を無効化したいか指定
Enable/Disable Schedule LaterX時間後にスケジュールされたジョブ実行を有効/無効化したい場合に、利用する。
・X時間後にスケジュールされたジョブ実行を無効化したい場合
 「Disable Scheduled Later」にチェック、かつ、
 「Disable Scheduled after Time」に何時間後にジョブ実行を無効化したいか指定
 ※スケジュールされたジョブを無効にすると、自動実行は停止するが、手動実行は可能。
・X時間後にスケジュールされたジョブ実行を有効化したい場合
 「Enable Scheduled Later」にチェック、かつ、
 「Enable Scheduled after time」に何時間後にジョブ実行を無効化したいか指定
Enable/Disable Execution Nowジョブ実行、スケジュールされたジョブ実行を即時有効/無効化したい場合に、利用する。
作成時、デフォルトでは有効化されているため、無効化するかどうかを選べるようです。
・ジョブ実行を即時無効化したい場合
 「Disable Execution」をチェック
・スケジュールされたジョブ実行を即時無効化したい場合
 「Disable Schedule」をチェック

プロジェクト作成画面~[User Interface]タブ~

User Interfaceタブはプロジェクトのユーザインターフェースをカスタマイズするための画面です。

主な設定項目は以下の通りです。

項目名説明
Job Group Expansion Levelジョブリストでのジョブグループの初期表示状態を制御する項目。
数値を指定することで、ジョブグループの展開レベルを設定できる。
・0: すべてのグループを折りたたんだ状態で表示
・1: 最上位のグループのみ展開
・2: 最上位と2階層目のグループを展開
以降同様に、指定した階層まで展開される。
Display the Project ReadmeプロジェクトのReadmeファイルの表示場所を制御する項目。
Readmeファイルは、プロジェクトの概要や重要な情報を提供します。
表示場所の選択肢には以下のようなものがあります。
・「Projects List」: プロジェクト一覧ページに表示
・「Project Home Page」: プロジェクトのホームページに表示
Display the Project MOTDMOTDの表示場所を制御する項目。
MOTD(Message of the Day)とは、プロジェクトユーザーに重要なメッセージや通知を表示するための機能です。
表示場所の選択肢には以下のようなものがあります。
・「Projects List」: プロジェクト一覧ページに表示
・「Project Home Page」: プロジェクトのホームページに表示
・「Navbar Indicator」: ナビゲーションバーにボタンとして表示
Allow Unsanitized HTML outputジョブの出力に含まれるHTMLコンテンツの処理方法を制御する項目。
この設定にチェックを入れると、ジョブの出力に含まれるHTMLコードがそのまま解釈され、表示される。
デフォルトではチェックは入っておらず、セキュリティ上の理由からHTMLコンテンツはサニタイズ(無害化)されています。

プロジェクト作成画面~[Default ノードエクズキュータ]タブ~

Rundeck でノード上でコマンドを実行する際、ノードエクズキュータを介して実行されます。

Default ノードエクズキュータはプロジェクト内のノード(ジョブ実行対象のサーバ)でコマンドを実行する際に使用されるデフォルトの実行方法を指定できる設定です。

実行方法は、画面左上のセレクトボックスから選択できます。
主な選択肢は以下の通りです。

項目名説明
LocalRundeckサーバー自体でコマンドを実行
リモートノードではなく、ローカル実行用
Local(New)Rundeckサーバー自体でコマンドを実行
リモートノードではなく、ローカル実行用
こちらは新しいバージョンのBeta版みたいです。
SSHj-SSHJava用のSSHライブラリであるSSHJ (SSH library for Java) を使用して、リモートLinux/Unixノードに接続
SSHキーまたはパスワード認証をサポート
Stubテスト用の擬似エクズキュータ
実際のコマンド実行は行わず、ログ出力のみ
SSHSSHプロトコルを使用してリモートLinux/Unixノードに接続
SSHキーまたはパスワード認証をサポート
Script Executionカスタムスクリプトを使用してコマンドを実行
柔軟なカスタマイズが可能
Ansible Ad-Hoc Node ExecutorAnsibleを使用してノードでコマンドを実行
Ansibleのインベントリとプレイブックを活用可能
openssh / executorSSHやSCPなどのOpenSSHコマンドを直接使用してリモートノードに接続し、コマンドを実行
WinRN Node Executor PythonPython用のWinRMクライアントライブラリであるPyWinRMを使用してWindowsノードに接続

SSHj-SSHSSHの違いについて

SSHj-SSHとSSHの主な違いは以下の通りです。
Rundeck 4.16.0以降の新規プロジェクトでデフォルトとして、SSHj-SSHが使用されています。

比較項目SSHj-SSHSSH
実装ライブラリSSHJ (SSH library for Java) を使用(Java Secure Channel) を使用
セキュリティ標準最新のSSHセキュリティ標準をサポート
(より安全なRSAアルゴリズムなど)
一部の最新のセキュリティ標準をサポートしていない
互換性最新のSSH実装との互換性が高い一部の最新の環境で互換性の問題が発生する可能性がある
設定の違い一部の設定パラメータが異なる可能性がある(例:キーパスの指定方法)従来の設定パラメータを使用
パフォーマンス一般的にパフォーマンスが向上している従来のパフォーマンス
メンテナンス活発に開発・メンテナンスされているメンテナンスが減少している可能性がある

SSHj-SSHは、より新しく、セキュアで、パフォーマンスの良いオプションですが、既存のプロジェクトや設定との互換性に注意が必要です。
一方、従来のSSHオプションは、レガシーシステムとの互換性を維持する場合に有用です。

プロジェクト作成画面~[Default ファイルコピー]タブ~

Rundeck がノード上でスクリプトを実行する場合、まず「ファイル コピー」を使用してスクリプトをファイルとしてノードにコピーし、その後、「ノード エグゼキュータ」を使用してスクリプトを実行します。

Default ファイルコピーはリモートノードにスクリプトやファイルをコピーする際に使用されるデフォルトの実行方法を指定できる設定です。

設定できる選択肢としては、以下の通りです。

項目名説明
LocalRundeckサーバー自体でファイルをコピーする場合に使用
リモートノードではなく、ローカル実行用
Script Executionカスタムスクリプトを使用してファイルをコピー
特殊な要件や環境に対応可能
柔軟性が高いが、設定が複雑になる可能性がある
Ansible Ad-Hoc Node ExecutorAnsibleを使用してリモートノードにファイルをコピー
Ansibleのインベントリとプレイブックを活用可能
Stubテスト用の擬似ファイルコピーオプション
実際のファイルコピーは行わず、コピー操作のシミュレーションのみを実施
SSHj-SCPSSHJライブラリを使用した新しいSCP実装
最新のSSHセキュリティ標準をサポート
Rundeck 4.16.0以降で推奨
SCPSSHプロトコルを使用してファイルを安全にコピー
UNIXベースのシステムで広く使用されている
openssh / executorOpenSSHコマンドを直接使用してファイルをコピー
SCPやSFTPプロトコルを使用してファイル転送を実施
WinRN Node Executor PythonPython用のWinRMクライアントライブラリであるPyWinRMを使用してWindowsリモート管理(WinRM)プロトコルでファイル転送を実施

まとめ

今回は、Rundeckのプロジェクト作成画面の各項目について、調べた結果を紹介しました。

ご参考になれば、幸いです。

以上になります。ありがとうございました。

参考

https://qiita.com/komeda-shinji/items/5f7b4cf795063d204500
https://note.crohaco.net/2015/rundeck-basic/
https://apatheia.info/blog/2012/01/03/rundeck-jenkins-java/
https://dev.classmethod.jp/articles/try-rundeck-job/
https://docs.rundeck.com/docs/manual/project-settings.html

コメント

タイトルとURLをコピーしました