SSH

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

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

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

使用 SSH 执行器

如果想使用 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,表明需要主机密钥检查。