Jenkins Ansible插件中的Ansible忽略了SSH配置

时间:2017-01-31 17:35:08

标签: jenkins ssh automation ansible devops

当使用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"
    
  • Jenkins插件对话框中的
  • 命令行选项--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选项?

1 个答案:

答案 0 :(得分:1)

Ansible 2.2.1.0Jenkins 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使用。