登録
RTE が参加を申請して承認される仕組み、無人インストール用の参加トークン、データベースモード
参加の申請
7.3.0 からは、アプリがまだ知らないソケットモード( outbound または inbound )の RTE は参加を申請し、管理者がそれを承認します。 RTE は自分の RTE_TOKEN と RTE_NAME を付けて連絡してきます。アウトバウンドの RTE は最初にアプリに接続したとき、インバウンドの RTE は一度だけの 登録の呼び出しで連絡します。参加トークンがない場合、アプリは次のことを行います。
- RTE の
RTE_TOKENを、<name>-rteという名前(その名前が使われている場合は番号が付きます)の種類 RTE の新しい認証情報に保存します。 インバウンドの RTE の場合はそのアドレスRTE_URLも保存します RTE_NAMEにちなんだ名前で、種類 RTE、RTE のモードで、その認証情報でサインインするランナーを追加します。ランナーには 承認待ち の印が付き、 オフになっています。その説明には申請元のホストが示されます
アウトバウンドの RTE は待機中も接続を保ちますが、ジョブは受け取りません。インバウンドの RTE には、承認されるまでアプリは接続しません。どちらも、 接続 > ランナー で管理者の承認を待っていることを、トークンのフィンガープリントとともにログに記録します。
https:// の RTE_URL を持つインバウンドの RTE は、参加を申請するときに証明書も送り、アプリはそれを固定します。以降、アプリは その RTE が同じ証明書を提示した場合にだけ接続するので、自己署名証明書でも CA なしで動作します( インバウンド を参照)。
同時に承認を待てる RTE は最大 20 個です。それを超えると、いくつかが承認または拒否されるまで拒否されます。24 時間以内に誰も処理しなかった申請は、 認証情報とともにワーカーが削除します。
アプリがすでに知っているランナーの名前を持ちながら別のトークンを持つ RTE は拒否され、参加の申請もしません。そのランナーの トークンを RTE に与えるか、ランナーを削除して RTE に参加を申請させてください。 参加トークン が役立つのは、そのランナーがまだ承認待ちの間だけです。
RTE の承認
承認待ちのランナーは 接続 > ランナー のリストから外れ、その上のオレンジ色の通知(たとえば 2 件のランナーが承認を待っています )に、ランナーごとに名前、ホスト、IP アドレス、モード、アドレス、フィンガープリントの行とともに表示されます。 ランナーを表示できるユーザーには、ヘッダーのベルにその数が表示されます( ベル を参照)。
通知をクリックすると、ランナーごとに順番に 承認を確認 ダイアログが開きます。名前をクリックすると、そのランナーだけが開きます。 そのページでは、黄色のボックス この RTE が参加を求めています に同じ情報が表示されます。承認する前に、自分が起動したものであることを確認してください。
| フィールド | 表示内容 |
|---|---|
| フィンガープリント | RTE_TOKEN の SHA-256 の先頭 16 進数 8 桁を abcd-ef12 の形式で表示したもの。RTE は起動時にこれをログに記録し、 インストーラー は最後に表示します。同じである必要があります |
| 証明書のフィンガープリント | ダイアログで、HTTPS のインバウンドの RTE の場合:アプリが固定する証明書(その DER バイト)の SHA-256 の先頭 16 進数 8 桁を abcd-ef12 の形式で表示したもの。RTE は起動時にこれをログに記録し、 インストーラー は最後に表示します。同じである必要があります |
| ホスト | RTE が動作しているホスト |
| IP アドレス | RTE がアプリに連絡してきたアドレス |
| モード | アウトバウンドまたはインバウンド |
| URI | インバウンドの RTE のアドレス。アプリはここに接続します |
| バージョン | RTE のリリース |
| 申請日時 | 参加を申請した日時 |
ダイアログまたはそのページのボックスにある 承認 と 拒否 で決めます。
| 操作 | 結果 |
|---|---|
| 承認 | ランナーが有効になり、今後ジョブを受け取ります。その種類に既定がない場合は既定になります |
| 拒否 | ランナーが認証情報とともに削除され、そのソケットは閉じられます。RTE は再び参加を申請でき、その場合は再び承認待ちになります |
RTE を承認または拒否できるのは管理者だけです。
参加トークン
参加トークンは、無人インストールのために RTE をすぐに承認します。 RTE_JOIN_TOKEN を指定して 起動した RTE、またはインストーラーの --join でインストールしたランナーは、それを一度提示し、そのランナーは待たずに有効な状態で追加されます。 参加トークンにはインターフェース上のページがありません。管理者が /api/v2/runner の下の REST API で作成します。
| 呼び出し | 動作 |
|---|---|
POST /api/v2/runner/jointoken | 参加トークンを作成します。本文にはその name と、任意で expiresInHours (なし:期限切れにならない)と maxUses (なし:RTE の数は無制限)を含めます |
GET /api/v2/runner/jointoken | 参加トークンを新しい順に、使用回数とまだ使えるかどうかとともに一覧表示します。トークン自体は決して表示されません |
POST /api/v2/runner/jointoken/<id>/revoke | 失効させます。それ以降ランナーを追加しなくなり、リストには残ります |
DELETE /api/v2/runner/jointoken/<id> | 削除します |
curl -X POST https://forms.example.com/api/v2/runner/jointoken \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{ "name": "dmz-runners", "expiresInHours": 24, "maxUses": 5 }'
応答には afj_ で始まるトークンがこの一度だけ含まれます。保存されるのはその SHA-256 だけです。それを提示した RTE は、 参加を申請する RTE と同じ認証情報とランナーを有効な状態で受け取り、その説明には参加トークンの名前が入ります。以降、 RTE は自分のトークンでサインインするので、参加トークンが期限切れになったり失効したりしても影響はありません。参加トークンを失効または削除しても、 それが追加したランナーは残ります。
参加トークンが、承認済みのランナーに新しいトークンを与えることはありません。その名前の RTE ランナーがすでに存在する場合:
| ランナー | 結果 |
|---|---|
| 承認待ち | 認証情報に新しいトークンが入り、引き続き管理者の承認を待ちます |
| 承認済み | 409 で拒否されます: runner ‘<name>’ exists and is approved: a join token cannot give it a new token. Use its current RTE_TOKEN, or have an admin change the token in its credential (or remove the runner) under Connections 。参加トークンは消費されません |
| 構成シード から来ている | 拒否されます: runner ‘<name>’ is managed by the config seed: its token is set there |
そのため、新しいトークンで再インストールした RTE は、ランナーの認証情報のトークンでサインインするか、管理者が 接続 > 認証情報 でそのトークンを変更するか、ランナーを削除して RTE を新規として参加させます。
データベースモードでの登録
7.3.0 から非推奨のデータベースモードの RTE は、既定で自分自身を、その RTE_URL 、なければ自分のアドレスとポートで登録します。 その RTE が 10 分間ハートビートを書き込まなかった時点で、ワーカーはそのランナーを削除します。手動で、構成シードで、またはソケットモードの RTE が追加したランナーが、この方法で削除されることはありません。
この登録をオン/オフにする RTE_REGISTER は、7.3.0 でデータベースモードとともに 非推奨になりました。ソケットモードの RTE は参加を申請するか、参加トークンで参加します。その間こうしたランナーを自分で管理するには、 RTE_REGISTER=0 で RTE を起動し、ここで種類 RTE、モード データベース (非推奨) 、そのアドレスと同じトークンを持つ RTE 認証情報で 追加します。ソケットモードに移すには、 モード を参照してください。