SSH

noteSSH 执行器只支持 Bash 中生成的脚本,暂不支持缓存功能。

它是一个允许您通过 SSH 执行命令在远端机器上执行构建的简单执行器。

note如果 Git LFS 安装在远端机器上,极狐GitLab Runner 会使用 git lfs 命令。 确保 Git LFS 在任何使用 SSH 执行器运行极狐GitLab Runner 的远端系统中都是最新的。

概览

如果您想使用 SSH 执行器,您需要在 [runners.ssh] 部分下指定 executor = "ssh"。 例如:

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

您可以使用 passwordidentity_file 或两者向服务器进行鉴权。 极狐GitLab Runner 不会从 /home/user/.ssh/id_(rsa|dsa|ecdsa) 中隐式读取 identity_file,并且需要明确指定 identity_file

项目的来源检出到: ~/builds/<short-token>/<concurrent-id>/<namespace>/<project-name>.

其中

  • <short-token> 是 Runner 令牌的简写版本(前 8 个字母)。
  • <concurrent-id> 是一个特殊数字,识别在项目的上下文中特定 Runner 上的本地作业 ID。
  • <namespace> 是极狐GitLab 上存储项目的命名空间。
  • <project-name> 是存储在极狐GitLab 上的项目的名称。

如果您想覆盖 ~/builds 目录,请在 config.toml[[runners]] 部分中指定 builds_dir 选项。

如果您想上传作业产物,请在您通过 SSH 连接的主机上安装 gitlab-runner

安全

引入于极狐GitLab 14.3。

如果您想启用 SSH StrictHostKeyChecking,请确保 [runners.ssh.disable_strict_host_key_checking] 设置为 false。当前默认为 true

在极狐GitLab 15.0 及更高版本中,默认值为 false,表明需要主机密钥检查。