Bitbucket Pipeline如何设置ssh代理以在远程服务器上部署

Jam*_*Lin 6 docker bitbucket-pipelines

这是我想要实现的工作流程:

  1. 提交代码
  2. bitbucket管道在我的公共docker镜像上运行测试
  3. bitbucket管道执行ansible脚本以部署在我的公共docker镜像上

前两个步骤工作正常,但问题是:如何/我应该在哪里存储我的私钥以允许ansible通过ssh代理ssh到我的远程服务器?

我有点不愿意将私钥存储在Pipeline环境设置中,因为其他人都拥有对repo的管理员权限可以看到它.

这里有一个类似的问题,但答案建议在docker上设置密钥并使用私人仓库,这与我的有点不同.

Car*_*arl 2

我已经设置了类似的流程并使用了 Pipelines 环境变量,有一个复选框可以保护该值,因此您无需担心其他人查看它。

设置非常简单:

  • Base64 编码私钥并将其存储在 Bitbucket 的环境变量中
  • 将“my_known_hosts”文件提交到您的代码库,其中包含远程主机的公共 SSH 密钥。

然后在您的 bitbucket-pipelines.yml 文件中设置known_hosts 和密钥:

- mkdir -p ~/.ssh
- cat my_known_hosts >> ~/.ssh/known_hosts
- (umask  077 ; echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa)
Run Code Online (Sandbox Code Playgroud)

完整文档可在此处https://confluence.atlassian.com/bitbucket/access-remote-hosts-via-ssh-847452940.html