以下是我想要实现的工作流程:
前2个步骤正常,但问题是: 我应该如何/在哪里存储我的私钥以允许ansible通过ssh代理ssh到我的远程服务器?
我有点不愿意将私钥存储在Pipeline环境设置中,因为其他人都拥有对repo的管理员权限,可以看到它。
有一个类似的问题here,但答案建议在docker上设置密钥并使用私人仓库,这与我的有点不同。
答案 0 :(得分:2)
您现在可以在管道设置下设置SSH密钥,这样您就不需要使用环境变量并复制到容器中的某些位置。私钥根本没有显示。
在
Settings -> Pipelines -> SSH keys
您需要获取生产容器known_hosts文件的公钥。
答案 1 :(得分:1)
我已经设置了一个类似的流程并使用了Pipelines环境变量,有一个复选框可以保护该值,因此您无需担心其他人查看它。
设置非常简单:
然后在你的bitbucket-pipelines.yml文件中设置known_hosts和key:
- mkdir -p ~/.ssh
- cat my_known_hosts >> ~/.ssh/known_hosts
- (umask 077 ; echo $MY_SSH_KEY | base64 --decode > ~/.ssh/id_rsa)
此处提供完整文档https://confluence.atlassian.com/bitbucket/access-remote-hosts-via-ssh-847452940.html