今回はRundeckの管理画面で操作できるプロジェクト作成画面の各項目について、調べた結果を紹介します。
利用環境は以下の通りです。
OS | CentOS Stream release 9 |
Java | openjdk 11.0.20.1 |
Rundeck | rundeck 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 Later | X時間後にジョブ実行を有効/無効化したい場合に、利用する。 ・X時間後にジョブ実行を無効化したい場合 「Disable Execution Later」にチェック、かつ、 「Disable Execution after time」に何時間後にジョブ実行を無効化したいか指定 ・X時間後にジョブ実行を有効化したい場合 「Enable Execution Later」にチェック、かつ、 「Enable Execution after time」に何時間後にジョブ実行を無効化したいか指定 |
Enable/Disable Schedule Later | X時間後にスケジュールされたジョブ実行を有効/無効化したい場合に、利用する。 ・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 MOTD | MOTDの表示場所を制御する項目。 MOTD(Message of the Day)とは、プロジェクトユーザーに重要なメッセージや通知を表示するための機能です。 表示場所の選択肢には以下のようなものがあります。 ・「Projects List」: プロジェクト一覧ページに表示 ・「Project Home Page」: プロジェクトのホームページに表示 ・「Navbar Indicator」: ナビゲーションバーにボタンとして表示 |
Allow Unsanitized HTML output | ジョブの出力に含まれるHTMLコンテンツの処理方法を制御する項目。 この設定にチェックを入れると、ジョブの出力に含まれるHTMLコードがそのまま解釈され、表示される。 デフォルトではチェックは入っておらず、セキュリティ上の理由からHTMLコンテンツはサニタイズ(無害化)されています。 |
プロジェクト作成画面~[Default ノードエクズキュータ]タブ~
Rundeck でノード上でコマンドを実行する際、ノードエクズキュータを介して実行されます。
Default ノードエクズキュータはプロジェクト内のノード(ジョブ実行対象のサーバ)でコマンドを実行する際に使用されるデフォルトの実行方法を指定できる設定です。
実行方法は、画面左上のセレクトボックスから選択できます。
主な選択肢は以下の通りです。
項目名 | 説明 |
---|---|
Local | Rundeckサーバー自体でコマンドを実行 リモートノードではなく、ローカル実行用 |
Local(New) | Rundeckサーバー自体でコマンドを実行 リモートノードではなく、ローカル実行用 こちらは新しいバージョンのBeta版みたいです。 |
SSHj-SSH | Java用のSSHライブラリであるSSHJ (SSH library for Java) を使用して、リモートLinux/Unixノードに接続 SSHキーまたはパスワード認証をサポート |
Stub | テスト用の擬似エクズキュータ 実際のコマンド実行は行わず、ログ出力のみ |
SSH | SSHプロトコルを使用してリモートLinux/Unixノードに接続 SSHキーまたはパスワード認証をサポート |
Script Execution | カスタムスクリプトを使用してコマンドを実行 柔軟なカスタマイズが可能 |
Ansible Ad-Hoc Node Executor | Ansibleを使用してノードでコマンドを実行 Ansibleのインベントリとプレイブックを活用可能 |
openssh / executor | SSHやSCPなどのOpenSSHコマンドを直接使用してリモートノードに接続し、コマンドを実行 |
WinRN Node Executor Python | Python用のWinRMクライアントライブラリであるPyWinRMを使用してWindowsノードに接続 |
SSHj-SSHとSSHの違いについて
SSHj-SSHとSSHの主な違いは以下の通りです。
Rundeck 4.16.0以降の新規プロジェクトでデフォルトとして、SSHj-SSHが使用されています。
比較項目 | SSHj-SSH | SSH |
---|---|---|
実装ライブラリ | SSHJ (SSH library for Java) を使用 | (Java Secure Channel) を使用 |
セキュリティ標準 | 最新のSSHセキュリティ標準をサポート (より安全なRSAアルゴリズムなど) | 一部の最新のセキュリティ標準をサポートしていない |
互換性 | 最新のSSH実装との互換性が高い | 一部の最新の環境で互換性の問題が発生する可能性がある |
設定の違い | 一部の設定パラメータが異なる可能性がある(例:キーパスの指定方法) | 従来の設定パラメータを使用 |
パフォーマンス | 一般的にパフォーマンスが向上している | 従来のパフォーマンス |
メンテナンス | 活発に開発・メンテナンスされている | メンテナンスが減少している可能性がある |
SSHj-SSHは、より新しく、セキュアで、パフォーマンスの良いオプションですが、既存のプロジェクトや設定との互換性に注意が必要です。
一方、従来のSSHオプションは、レガシーシステムとの互換性を維持する場合に有用です。
プロジェクト作成画面~[Default ファイルコピー]タブ~
Rundeck がノード上でスクリプトを実行する場合、まず「ファイル コピー」を使用してスクリプトをファイルとしてノードにコピーし、その後、「ノード エグゼキュータ」を使用してスクリプトを実行します。
Default ファイルコピーはリモートノードにスクリプトやファイルをコピーする際に使用されるデフォルトの実行方法を指定できる設定です。
設定できる選択肢としては、以下の通りです。
項目名 | 説明 |
---|---|
Local | Rundeckサーバー自体でファイルをコピーする場合に使用 リモートノードではなく、ローカル実行用 |
Script Execution | カスタムスクリプトを使用してファイルをコピー 特殊な要件や環境に対応可能 柔軟性が高いが、設定が複雑になる可能性がある |
Ansible Ad-Hoc Node Executor | Ansibleを使用してリモートノードにファイルをコピー Ansibleのインベントリとプレイブックを活用可能 |
Stub | テスト用の擬似ファイルコピーオプション 実際のファイルコピーは行わず、コピー操作のシミュレーションのみを実施 |
SSHj-SCP | SSHJライブラリを使用した新しいSCP実装 最新のSSHセキュリティ標準をサポート Rundeck 4.16.0以降で推奨 |
SCP | SSHプロトコルを使用してファイルを安全にコピー UNIXベースのシステムで広く使用されている |
openssh / executor | OpenSSHコマンドを直接使用してファイルをコピー SCPやSFTPプロトコルを使用してファイル転送を実施 |
WinRN Node Executor Python | Python用の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
コメント