osk*_*ast 30 git deployment ssh-keys vagrant ansible
我正在与流浪者和ansible一起工作.我想自动化ansible 的部署角色(你可以在这里查看我的repo).为此,我试图将我的本地ssh密钥部署到我的VPS和我的流浪客户机(我正在尝试SSH代理转发).
目标
使用ansible自动使用git进行部署过程.我已经这样做了:
---
- name: read-write git checkout from github
git: repo={{ repository }} dest=/home/site
Run Code Online (Sandbox Code Playgroud)
哪里:
---
# Variables here are applicable to all host groups
repository: git@bitbucket.org:dgnest/dgnest.git
Run Code Online (Sandbox Code Playgroud)
问题
当我做:"流浪汉提供",控制台停在这里:
TASK: [deployment | read-write git checkout from github] **********************
Run Code Online (Sandbox Code Playgroud)
那是因为我没有设置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
Run Code Online (Sandbox Code Playgroud)
另一个选择是将我的〜/ ssh/id_rsa.pub复制到每个VPS和vagrant中,但在这种情况下我的问题是处理所有不同的用户.Vagrant使用"vagrant"用户,而我的VPS使用其他用户,所以我不得不将ssh本地密钥放入这些用户中?
希望您能够帮助我.谢谢.
更新:
我刚刚自动化@leucos答案(谢谢).复制私有和公共rsa密钥.我与实现分享此链接.
Igo*_*kiy 34
您不必将本地SSH密钥复制到远程服务器.相反,您只需创建ansible.cfg在运行部署脚本的目录中命名的文件,然后进行下一个设置:
[ssh_connection]
ssh_args = -o ForwardAgent=yes
Run Code Online (Sandbox Code Playgroud)
就是这样,现在您的本地身份被转发到您使用Ansible管理的远程服务器.
leu*_*cos 31
如果你选择这种key_file方式,我的猜测是密钥必须在VPS/vagrant机器上.所以你可能想先复制它.请注意,您需要私钥,而不是公钥.
对于第二个选项,您可以根据实例类型将密钥推送给特定用户.假设VPS中的用户是vpsuser,并且您主要部署在这些VPS上,您可以:
group_vars/all:
deploy_user=vpsuser
Run Code Online (Sandbox Code Playgroud)
group_vars /游民
deploy_user=vagrant
Run Code Online (Sandbox Code Playgroud)
然后,你可以有一个像这样的剧本:
- name: send key to remote deploy user
copy: src=files/private_key dest=~/{{deploy_user}}/.ssh/priv_key
- name: read-write git checkout from github
git: repo={{ repository }} dest=/home/site key_file=~/{{deploy_user}}/.ssh/priv_key
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何询问远程私钥的密码(我不认为ansible默认允许身份验证代理转发(检查-vvvv输出),你可能不得不摆弄你的~/.ansible.cfg).
我建议您使用特定密钥进行部署(在git存储库上使用只读密钥).这样,您的私钥就不会离开您的计算机.使这个特殊密钥无密码.我认为安全权衡是可以接受的 - 因为它只会保护你的代码, - 你的代码会在私钥的机器上签出,所以游戏已经结束了.
另一个选择是使用ansible从本地结帐分发您的应用程序:制作tarball,复制文件,解压缩,然后设置.这样,您无需在VPS上保留安全凭据.
祝好运.
| 归档时间: |
|
| 查看次数: |
21956 次 |
| 最近记录: |