SSH

note
SSH Executor は Bash で生成されたスクリプトのみをサポートし、キャッシュ機能は現在サポートされていません。

これは SSH 経由でコマンドを実行することで、リモートマシン上でビルドを実行できるシンプルな Executor です。

note
GitLab RunnerがSSH Executorを使用するリモートシステムで共通の前提条件を満たしていることを確認してください。

SSH Executor を使用します。

SSH Executor を使用するには、[runners.ssh] セクションにexecutor = "ssh" を指定します。例えば

[[runners]]
  executor = "ssh"
  [runners.ssh]
    host = "example.com"
    port = "22"
    user = "root"
    password = "password"
    identity_file = "/path/to/identity/file"

identity_file サーバーに対する認証には identity_filepassword またはidentity_file その両方を identity_file使用できます。identity_file GitLab Runner identity_file/home/user/.ssh/id_(rsa|dsa|ecdsa) からidentity_file 暗黙的に読み込む identity_fileことはありません。identity_file は明示的に指定する必要があります。

プロジェクトのソースのチェックアウト先は、:~/builds/<short-token>/<concurrent-id>/<namespace>/<project-name>.

どこに:

  • <short-token> はランナートークンの短縮形(最初の8文字)
  • <concurrent-id> はユニークな番号で、プロジェクトのコンテキストで特定のランナーのローカルジョブIDを識別します。
  • <namespace> はプロジェクトが GitLab に保存されている名前空間です。
  • <project-name> は GitLab に保存されているプロジェクトの名前です。

~/builds ディレクトリを上書きするには、config.toml[[runners]] セクションでbuilds_dir オプションを指定します。

ジョブのアーティファクトをアップロードする場合は、SSHで接続するホストにgitlab-runner をインストールしてください。

厳密なホスト鍵チェックの設定

GitLab 14.3で導入されました

SSHStrictHostKeyChecking を有効にするには、[runners.ssh.disable_strict_host_key_checking]false に設定されていることを確認してください。現在のデフォルトはtrue です。

GitLab 15.0以降では、デフォルト値はfalse 、つまりホスト鍵のチェックが必要です。