Gitlab CI动态ssh主机

时间:2017-06-26 08:49:25

标签: deployment gitlab-ci gitlab-ci-runner

我正在尝试使用gitlab运行器实现动态部署。 我已经在config.toml中添加了一个跑步者:

[[runners]]
  name = "Deploy-Runner"
  url = "https://my-gitlab.server.com/ci"
  token = "my_super_secret_token"
  executor = "ssh"
  [runners.ssh]
    host  = "$HOSTNAME"
    user = "deployuser"
    identity_file = "/home/deployuser/.ssh/id_rsa.pub"

在我的.gitlab-ci.yml中我会写下:

variables:
  HOSTNAME: preprod.server.com

deploy to preprod:
  stage: deploy
  script: cd to_my_repo && git pull
  environment:
    name: preprod

显然我将deployuser的公钥添加到preprod。

但我得到的是他无法找到ssh键,这很有趣,因为它就在那里!

Using SSH executor...
ERROR: Preparation failed: ssh: no key found

有没有人试图达到同样的目标。也许这甚至不可能?

1 个答案:

答案 0 :(得分:0)

错误在 identity_file 中。您已将路径配置为de public key,但必须设置rsa私钥文件。

你必须设置:

  

identity_file =“/ home / devloyuser / .ssh / id_rsa”