我正在使用Vagrant和Ansible进行工作。我想自动化Ansible的部署角色(您可以在这里检查我的代码库)。
为此,我正在尝试将我的本地ssh密钥部署到我的VPS和Vagrant虚拟机中(我正在尝试使用SSH代理转发)。
目标:
使用Ansible自动化使用Git进行部署过程。 我已经完成了这个过程:
---
- name: read-write git checkout from github
git: repo={{ repository }} dest=/home/site
地点:
---
# Variables here are applicable to all host groups
repository: git@bitbucket.org:dgnest/dgnest.git
问题
当我执行 "vagrant provision" 命令时,控制台会卡在这里:
TASK: [deployment | read-write git checkout from github] **********************
那是因为我还没有设置ssh密钥。
我尝试了
我想使用ansible的git模块具有的key_file选项。但它也失败了。
---
- name: read-write git checkout from github
git: repo={{ repository }} dest=/home/site key_file=/home/oscar/.ssh/id_rsa.pub
另一个选择是将我的~/ssh/id_rsa.pub复制到每个VPS和vagrant中,但在这种情况下,我的问题是处理所有不同的用户。Vagrant使用“vagrant”用户,而我的VPS使用其他用户,因此我不得不将我的ssh本地密钥放入每个这些用户中吗?希望你能帮助我。谢谢。
更新:
我刚刚自动化了@leucos的回答(感谢)。复制私有和公共rsa密钥。我分享这个链接与实现。