【问题标题】:Ansible in Jenkins Ansible plugin, ignores SSH configJenkins Ansible 插件中的 Ansible,忽略 SSH 配置
【发布时间】:2017-06-17 06:23:14
【问题描述】:

在使用 ansible 插件与 Jenkins 一起运行时,我正在努力解决有关 ansible 中 SSH 控制路径的问题。对清单中的主机使用长 FQDNS 时会出现此问题。

我尝试了以下方法:

  • 在 Jenkins 用户的 SSH 配置文件中设置短主机名和控制路径

  • /etc/ansible/ansible.cfg设置中设置SSH参数,例如:

    [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 选项吗?

【问题讨论】:

    标签: jenkins ssh automation ansible devops


    【解决方案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 slave,您可以更改 master 上的设置,但作业在其中一个 slave 上执行)并使用 -vvvv 附加标志运行 playbook 以查看 ansible 使用哪些配置文件.

    【讨论】:

    • 非常感谢您指出这一点,有点 n00b 问题,我责备暂时失明
    • @barrymac 可能会将其作为错误报告提交给 Ansible,以解决对 2 % 的需求或更好地记录这一点。
    猜你喜欢
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多