Ansible百分比扩大

时间:2016-03-20 20:33:55

标签: ssh vagrant ansible

我有一个ansible playbook,它通过非标准ssh端口(转发到localhost)连接到虚拟机,并且与主机用户(vagrant)不同。

ssh端口在ansible inventory中指定:

[vms]
localhost:2222

在ansible-playbook的命令行中给出的用户名:

ansible-playbook -i <inventory from above> <some playbook> -u vagrant

与VM的通信正常工作,但是,%p始终扩展为22和%r到主机用户名。

因此,我无法刷新SSH连接(使用户更改的组成员身份生效),如下所示:

- name: flush the ssh connection
  command: ssh -o ControlPath="~/.ansible/cp/ansible-ssh-%h-%p-%r" -O stop {{inventory_hostname}}
  delegate_to: 127.0.0.1

我在某个地方犯了一个愚蠢的错误吗?或者,是否有不同的方式来刷新SSH连接?

1 个答案:

答案 0 :(得分:0)

展开百分比不会ansible扩展,而是ssh稍后展开。

抱歉,忘了添加最重要的部分

使用

command: ssh -o ControlPath=[...] -O stop {{inventory_hostname}}

将使用默认端口,因为您没有在命令行上指定它。您还必须将端口指定为&#34; flush&#34;这种联系:

command: ssh -o ControlPath=[...] -O stop -p {{inventory_port}} {{inventory_hostname}}

但我不认为这是必要的。当剧本结束时,Ansible应该清理连接,并且我没有看到为什么这样做的任何不同原因。