インタラクティブなウェブ端末

GitLab 11.3で導入されました

インタラクティブウェブターミナルは、ユーザーがGitLabのターミナルにアクセスし、CIパイプラインのための単発のコマンドを実行できるようにします。SSHを使ったデバッグの方法のようなものですが、ジョブページから直接実行することができます。GitLab Runnerがデプロイされている環境にShellでアクセスできるようにするため、ユーザーを保護するためにセキュリティ上の注意が払われています。

note
GitLab.comの共有ランナーでは、インタラクティブなウェブターミナルを提供していません。サポートの追加については、このイシューに従ってください。GitLab.comでホストされているグループやプロジェクトでは、自分自身のグループやプロジェクトのRunnerを使用する場合、インタラクティブなウェブターミナルが利用できます。

設定

対話型ウェブターミナルを動作させるには、2つの設定が必要です:

Helmチャートの一部サポート

インタラクティブなウェブ端末は、gitlab-runner Helmチャートで部分的にサポートされています。以下の場合に有効になります:

  • レプリカの数が1
  • loadBalancer

これらの制限を修正するためのサポートは、以下のイシューで追跡されています:

実行中のジョブのデバッグ

note
すべてのエクゼキュータがサポートされているわけではありません。
note
docker の Executor は、ビルドスクリプトが終了した後も実行を継続しません。その時点でターミナルは自動的に切断され、ユーザーが終了するまで待機しません。この動作の改善については、このイシューに従ってください。

ジョブが実行されているとき、期待通りにいかないことがあります。デバッグを支援するシェルがあると便利です。ジョブが実行されているとき、右のパネルに現在のジョブのターミナルを開くボタンdebug があります。ジョブを開始した人だけがデバッグできます。

Example of job running with terminal available

選択すると、ターミナルページに新しいタブが開き、標準的なシェルのようにターミナルにアクセスしてコマンドを入力できます。

terminal of the job

ターミナルを開いていて、ジョブがそのタスクを終了した場合、ターミナルウィンドウを閉じるまで、[session_server].session_timeout で設定された時間、ターミナルはジョブの終了をブロックします。

finished job with terminal open

Web IDE 用の対話型 Web ターミナル

Web IDE 用の対話型 Web ターミナルを実行するには、Web IDE を参照してください。