Vagrant 让rsync负责与流浪汉一起工作
我想使用测试脚本。在尝试对远程主机执行rsync之前,一切正常:Vagrant 让rsync负责与流浪汉一起工作,vagrant,rsync,ansible,Vagrant,Rsync,Ansible,我想使用测试脚本。在尝试对远程主机执行rsync之前,一切正常: - name: Install custom dev user settings local_action: command rsync -ave ssh roles/common/files/home/{{ item.name }} {{ ansible_ssh_user }}@{{ inventory_hostname }}:/#home/ with_items: dev_users when: "{
- name: Install custom dev user settings
local_action: command rsync -ave ssh roles/common/files/home/{{ item.name }}
{{ ansible_ssh_user }}@{{ inventory_hostname }}:/#home/
with_items: dev_users
when: "{{ item.custom }} == True"
tags:
- dev_custom
- dev_users
- users
然而,它在这一点上失败了-它似乎试图通过密码登录,但我不知道为什么,因为它应该通过SSH连接到Vagrant,对吗(我在下面省略了一些信息,因为它提到了密钥)
马克
如果您没有将ssh公钥部署到该框中(在/home/vagrant/ssh/authorized_keys
中),那么请求输入密码是很正常的行为。使用“流浪者”和标准盒子应该是可行的
如果你先按一下键,以后事情就容易办了。你可以找到一个流浪汉导向的例子
似乎您已正确设置了ansible\u ssh\u user
,但请确保您也使用--ask pass--sudo
调用了playbook
作为旁注,该行:
when: "{{ item.custom }} == True"
可以改写为:
when: item.custom
我终于发现了如何解决这个问题。我知道它不是rsync,因为我在命令行测试了它:
rsync -ave ssh home/dataToSync root@10.0.0.10:/home/
这很有效。我上传了一个流浪者信箱的钥匙,我甚至不用登录。但是,从ansible调用rsync失败。我尝试按照Leucos的建议指定密码,但没有成功。我想了想,不知道问题是否出在Ansible试图在我本地的包厢上玩sudo。为了看看这是否是问题所在,我补充道
sudo: False
我的行动,它解决了问题 由于Vagrant以用户Vagrant的身份运行Ansible playbooks,因此尝试重新同步到根目录通常会失败。我发现的最可靠的解决方案是告诉Ansible将rsync与sudo结合使用,而不是在分配组或试图找到一些神奇的幂等chmod/chown解决方案上瞎搞
-同步:
src=/local/site/
dest=/var/www/site
rsync_path='sudo rsync'
请注意,Ansible对rsync进行了包装,使这些任务对作者来说更为简洁。在Ansible 2.2.1.0中,这对我很有用:
- synchronize:
mode: pull
src: "/home/vagrant/dir1"
dest: "/my_linux/dir1"
recursive: yes
delete: no
times: yes
…使用此资源清册(要使用ansible\u ssh\u private\u key\u文件
var):
希望它对您有所帮助。嗨,Leucos,谢谢您提供有关它何时有用的提示。如果我添加了--ask pass--sudo,那么它会提示我输入密码('vagrant'),但它现在可以工作了-谢谢!你能再解释一下发生了什么/为什么这是必要的吗?我查了ansible.cfg,我有——sudo设置,但没有——询问密码?你必须告诉ansible询问sudo密码。在上面的输出中,您是否有机会在“[sudo via ansible,key=…]password:”行之后键入任何内容,或者它是否在未经请求的情况下展开所有这些行直到结束?是的,标记,但您似乎正在将密钥部署到~root/.ssh,而您作为“vagrant”连接。没关系,你帮了我很大的忙-这个Ansible教程看起来不错,所以我将在下一步继续学习。谢谢不客气,祝你玩得开心!这是一个地方行动!很抱歉错过了:facepalm::(
sudo: False
- synchronize:
mode: pull
src: "/home/vagrant/dir1"
dest: "/my_linux/dir1"
recursive: yes
delete: no
times: yes
[vagrant1]
192.168.77.4
[vagrant1:vars]
ansible_user=vagrant
ansible_ssh_private_key_file="/Users/Chilcano/.vagrant.d/insecure_private_key"