使用 ansible 和 jenkins 从 bitbucket 中提取 Git

使用 ansible 和 jenkins 从 bitbucket 中提取 Git

大家好,我是 ansible 新手,我正在使用 Ubuntu 16.04 和 ansible 2.2,如何使用 ansible 将 bitbucket 存储库拉到远程服务器?我已经连接到主机,并且能够 ping 或使用我的 ansible 运行简单命令到远程服务器,我试过这种方法在远程服务器上克隆私有仓库但我收到了这个错误:

"stderr": "克隆到‘/home/deploy/test’...\n权限被拒绝(公钥)。\r\n严重:无法从远程存储库读取。\n\n请确保您具有正确的访问权限\n并且存储库存在。\n",

我是否需要从 bitbucket 生成 ssh 密钥或将我的公钥插入 bitbucket?就像我之前说的,我是新手,而且情况很紧急,谢谢。

答案1

最好的解决方案是在您的工作站中生成密钥对,将公钥上传到 bitbucket,然后将私钥复制到您在目标服务器中执行 git clone 的用户。使用该解决方案,您可以自动部署到多台服务器,而无需在每台服务器上生成新的密钥对。

key_file您可以使用Ansible 中的选项指定密钥文件git 模块

答案2

一般来说,使用私钥并不安全,因为如果目标服务器被黑客入侵,这个密钥就会被暴露。安全的替代方案是使用来自 ansible 实例的 ssh 代理转发。这样,只需要在 bitbucket 上注册 ansible 密钥,它就不会在目标主机上暴露。看看这篇文章:https://www.jeffgeerling.com/blog/2018/cloning-private-github-repositories-ansible-on-remote-server-through-ssh 如果你想知道如何将 ssh 密钥添加到 ssh-agent:https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/

相关内容