セルフホストランナー
セルフホストランナーは、Subaya のビルドを Subaya クラウドではなく自分が管理するマシン上で
実行する小さなエージェント subaya-runner です。ツールチェーンがそのマシンにすでに
インストールされている場合(たとえばライセンス済みの Quartus)や、ビルドを自分の
ハードウェア上で行う必要がある場合に使用します。
ランナーはセキュアな WebSocket で Subaya へ外向きに接続します。受信ポート、VPN、 パブリック IP はいずれも不要です。Subaya はその接続を通じてビルドをランナーへ送ります。
ランナーは、自身の組織のビルドを、その組織のプロジェクトからプラットフォームが導出したコマンドで実行します。ビルドは、あなたが所有するマシン上でランナーの権限で実行されます — GitHub のセルフホストランナーと同じ信頼モデルです。サンドボックスではありません。
- x86_64 上の Linux。その他のプラットフォームは今後対応予定です。
subaya-dev.comへの外向き HTTPS(ポート 443)。- ビルドに必要なツールが、ランナーを実行するユーザーの
PATH上にインストール済みであること。 ランナーは見つけたものを報告するだけで、何もインストールしません。 - 任意: レシピがコンテナイメージを指定するビルド用の Docker または Podman。
インストール
Section titled “インストール”コンソールで Settings → Runners を開き、Add runner を選択します。ランナーに名前を 付けると、Subaya は一回限りの登録トークンが埋め込まれた 3 つのコマンドを表示します。 トークンは一度だけ使用でき、1 時間で失効します。
ランナーをダウンロードして展開します:
curl -fsSL -o subaya-runner.tar.gz https://subaya-dev.com/cli/runner/latest/subaya-runner_linux_amd64.tar.gz && tar xzf subaya-runner.tar.gz設定します。これにより登録トークンがランナー自身の認証情報と交換され、マシンの外に 出ることのない鍵ペアが生成されます:
./subaya-runner configure --url https://subaya-dev.com --token srt_... --name 'lab-quartus-01'フォアグラウンドで実行します:
./subaya-runner run再起動後も動作させ続けるには、代わりに systemd サービスとしてインストールします:
./subaya-runner install-service自分のユーザーで実行すると systemd のユーザーサービスとして、root で実行するとシステム全体のサービスとしてインストールされます。ユーザーサービスは、アカウントで lingering を有効にしない限りログアウト時に停止します:
sudo loginctl enable-linger "$USER"数秒以内に、ランナーは検出したツールとバージョンとともに Settings → Runners で online と表示されます。
ランナーにビルドを送る
Section titled “ランナーにビルドを送る”--runner で名前を指定してランナーをターゲットにします:
suya build <app> --source . --runner lab-quartus-01 --waitSubaya は、ビルドを受け付ける前に、ビルドに必要なすべてのツールをランナーが報告して いることを確認します。ランナーがオフラインの場合、ビルドはキューで待機し、ランナーが 再接続すると開始されます。
記録される内容
Section titled “記録される内容”ビルドの開始時に、ランナーは実測したツールチェーンを正確に報告します: 各ツールの バージョン文字列、パス、バイナリの SHA-256 です。実行に記録されるのは、プロジェクトが 要求したものではなく、この実測されたツールチェーンです。
プロジェクトがツールのバージョンを明示的に固定しており(たとえば
suya tools set quartus-pro 26.1.1)、ランナーにインストールされたバージョンがその固定と
一致しない場合、ビルドは拒否され toolchain_pin_mismatch で失敗します。何も実行されません。
明示的な固定がなければ、ランナーにインストールされたバージョンが使われます。
ランナーを失効させる
Section titled “ランナーを失効させる”Settings → Runners で、対象ランナーの Revoke を選択します。失効は即座に反映されます:
ランナーの認証情報は機能しなくなり、接続は切断され、以降のビルドは送られず、実行中の
ビルドは失敗します。失効は取り消せません — そのマシンを再び使うには、新しいランナーとして
追加し、新しいトークンで ./subaya-runner configure --replace を実行してください。
マシンからサービスも削除するには:
./subaya-runner uninstall-serviceトラブルシューティング
Section titled “トラブルシューティング”ランナーがオフラインと表示される。 プロセスまたはサービスが動作していること、そして
マシンがポート 443 で subaya-dev.com に到達できることを確認します:
./subaya-runner statusランナーはネットワークが切れた後、自動的に再接続します。接続が切れた時点で実行中だった
ビルドは runner_disconnected で失敗するので、もう一度実行してください。
ランナーが「upgrade required」で終了する。 ランナーが Subaya の受け付ける最小 バージョンより古くなっています。上記のダウンロードコマンドで最新リリースを取得し、 バイナリを置き換えて再度起動してください。設定は保持されます。
ビルドが 422 runner_missing_tool で拒否される。 ビルドに必要なツールをランナーが
報告していません。ツールをインストールし、ランナーの PATH 上にあることを確認してから、
ツールチェーンを再報告させるためにランナーを再起動してください。エラーには不足している
ツール名が含まれます。
登録トークンが拒否される。 トークンは一回限りで、1 時間で失効します。Add runner で 新しいトークンを作成してください。
次のステップ
Section titled “次のステップ”- ワークスペースとプロジェクト — ビルドがどこに存在するか。
- 課金と使用量 — クラウドコンピュートがどのように計測されるか。