我正在与流浪者和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密钥.我与实现分享此链接.
有没有一种方法来隐藏输出的的aplay命令播放声音时?
我没试这么成功
$ aplay ~/.zsh/sounds/done.wav >> /dev/null
Playing WAVE '/home/oscar/.zsh/sounds/done.wav' : Unsigned 8 bit, Rate 11025 Hz, Mono
Run Code Online (Sandbox Code Playgroud)
我将感激你的帮助.
我收到此错误:
Warning! PATH is not properly set up, '/home/oscar/.rvm/gems/ruby-2.1.2/bin' is not at first place,
usually this is caused by shell initialization files - check them for 'PATH=...' entries,
it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
to fix temporarily in this shell session run: 'rvm use ruby-2.1.2'.
rvm 1.25.28 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
Run Code Online (Sandbox Code Playgroud)
当我进入任何virtualenv.它首先需要virtualenv的道路.在这个例子中,我打电话给我的virtualenv borrar,所以这是我的路径:
/home/oscar/projects/borrar/bin:/home/oscar/.rvm/gems/ruby-2.1.2/bin:/home/oscar/.rvm/gems/ruby-2.1.2@global/bin:/home/oscar/.rvm/rubies/ruby-2.1.2/bin:/home/oscar/eagle-6.6.0/bin:/home/oscar/android-studio/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/oscar/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-7-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
Run Code Online (Sandbox Code Playgroud)
我认为我的路径在任何virtualenv之外是正确的,因为rvm位于第一位.
/home/oscar/.rvm/gems/ruby-2.1.2/bin:/home/oscar/.rvm/gems/ruby-2.1.2@global/bin:/home/oscar/.rvm/rubies/ruby-2.1.2/bin:/home/oscar/eagle-6.6.0/bin:/home/oscar/android-studio/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/jvm/java-7-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/home/oscar/.rvm/bin
Run Code Online (Sandbox Code Playgroud)
这是我的.zshrc 这里我.zsh_profile,我在最后加载RVM.
我感谢你的帮助.