Ansible:SSH错误:控制路径太长

Ansible:SSH错误:控制路径太长,ssh,vagrant,ansible,Ssh,Vagrant,Ansible,我用ubuntu15.10运行一台计算机,我试着用Ansible运行Vagrant 在开始之前,我想说的是,我对服务器管理,尤其是Ansible一无所知 我之所以要以这种方式运行我的系统,是因为我已经开始着手一个需要这种安装的项目 毕竟,我遇到的问题是,在设置Vagrant时,我得到以下消息 <aaa.dev> ESTABLISH CONNECTION FOR USER: vagrant <aaa.dev> REMOTE_MODULE setup <aaa.dev&

我用
ubuntu15.10
运行一台计算机,我试着用
Ansible
运行
Vagrant

在开始之前,我想说的是,我对服务器管理,尤其是
Ansible
一无所知

我之所以要以这种方式运行我的系统,是因为我已经开始着手一个需要这种安装的项目

毕竟,我遇到的问题是,在设置
Vagrant
时,我得到以下消息

<aaa.dev> ESTABLISH CONNECTION FOR USER: vagrant
<aaa.dev> REMOTE_MODULE setup
<aaa.dev> EXEC ssh -C -tt -vvv -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o IdentityFile=/media/merianos/Large Internal/Vagrant/ansible-project/.vagrant/machines/default/virtualbox/private_key -o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/merianos/.ansible/cp/%h-%r" -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=30 aaa.dev /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1446622406.54-199921739516776 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1446622406.54-199921739516776 && echo $HOME/.ansible/tmp/ansible-tmp-1446622406.54-199921739516776'
fatal: [aaa.dev] => SSH Error: ControlPath too long
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.
带有
控件的结果\u路径=%(目录)s/%%h-%%r

<aaa.dev> ESTABLISH CONNECTION FOR USER: vagrant
<aaa.dev> REMOTE_MODULE setup
<aaa.dev> EXEC ssh -C -tt -vvv -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o IdentityFile=/media/merianos/Large Internal/Vagrant/ansible-project/.vagrant/machines/default/virtualbox/private_key -o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/merianos/.ansible/cp/%h-%r" -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=30 aaa.dev /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1446628320.4-231606404275563 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1446628320.4-231606404275563 && echo $HOME/.ansible/tmp/ansible-tmp-1446628320.4-231606404275563'
fatal: [aaa.dev] => SSH Error: ControlPath too long
It is sometimes useful to re-run the command using -vvvv, which prints SSH debug output to help diagnose the issue.
一般来说,对于我所做的每一次修改,错误消息似乎都是相同的,可能是从其他级别发生的配置,但不是
ansible.cfg


不幸的是,我不知道在哪里可以找到那个位置:(

我在中描述了这个问题


您需要将其更改为较短的名称(如果主机名较长)。对于测试用例,您可以尝试使用
/master
,但对于实际用例,您应该至少使用
/s/%%h-%%r

,答案的第一句话是:

在[ssh_connection]头下,以下设置可针对ssh连接进行调整

因此,您需要将
ssh\u args
变量放在
ansible.cfg
[ssh\u connection]
部分,例如:

[defaults]
timeout = 600

[ssh_connection]
ssh_args = -o ControlMaster=off
事实上,用空值覆盖
ssh_args
会禁用Ansible中
ControlMaster
/
ControlPersistent
/
ControlPath
的默认值,因此它应该是:

[ssh_connection]
ssh_args =

谢谢你的回答,但是你能帮我吗?我不知道在哪里更改这个变量。正如我在问题中所描述的,我在ansible.cfg中更改了控件路径,但没有起作用。你知道如何更改它吗?谢谢你说的
不起作用是什么意思?它在输出消息中没有任何区别吗?设置
ssh\u args=-o控件Master=off
有什么区别吗?在哪里更改ControlMaster?正如我所说,我没有服务器管理员经验,我不知道Ansible如何工作,当然也不知道如何配置它。经过长时间的研究,我找到了
Ansible.cfg
,并更改了属性
control\u path
,但我不知道如何应用您的ugestions。抱歉。与您在
ansible.cfg
中应用
control\u path
选项的方式相同。在应用任何内容之前、将其更改为
control\u path=./%%h-%%r
之后以及在
中添加
ssh\u args=-o ControlMaster=off
行之后,是否可以发布erorr消息的更改ansible.cfg
?ansible似乎完全忽略了您的选项。您在哪个
.cfg
文件中更改了这些值?ansible以不同的顺序和优先级读取了大量配置文件:
[defaults]
timeout = 600

[ssh_connection]
ssh_args = -o ControlMaster=off
[ssh_connection]
ssh_args =