当使用ansible插件与Jenkins一起运行时,我正在努力解决有关ansible中SSH控制路径的问题。在库存中为主机使用长FQDNS时,会出现此问题。
我尝试了以下内容:
在Jenkins用户的SSH配置文件中设置短主机名和控制路径
在/etc/ansible/ansible.cfg
设置中设置SSH args,例如:
[ssh_connection]
ssh_args="-F /var/jenkins_home/.ssh/config -o ControlMaster=auto -o ControlPersist=30m -o ConnectTimeout=60 -o ControlPath=/tmp/ssh-%C"
control_path="/tmp/ssh-%C"
命令行选项--ssh-extra-args=
我似乎无法说服Ansible使用简短的控制路径,如下所示:
" /tmp/ssh-%C"
我仍然得到:
/var/jenkins_home/.ansible/cp/ansible-ssh-bastion-dev.westeurope.cloudapp.azure.com-22-jenkins.ivQ6vi6TPB3BrYta“对于Unix域套接字来说太长了
与我在任何地方设置的选项都不对应。
任何人都知道如何说服Ansible插件停止忽略SSH选项?
答案 0 :(得分:1)
Ansible 2.2.1.0
和Jenkins ver. 2.32.1
$ cat /etc/ansible/ansible.cfg
[ssh_connection]
control_path = /tmp/ssh-%%C
请注意%%C
中的双重百分号(否则Ansible无法对其进行格式化)。
我建议你检查一下构建节点(如果你有jenkins奴隶,你可以更改master上的设置,但是在一个slave上执行job)并运行带有-vvvv
个附加标志的playbook来看看是什么配置文件ansible使用。