Jenkins容器中Ansible流水线SSH连接失败问题排查与解决
Jenkins流水线执行Ansible Playbook失败问题排查与解决
问题背景
在同一个Docker镜像中运行集成了Ansible的Jenkins容器,通过Ansible更新同一Docker网络内的另一个容器,采用SSH密钥文件认证方式,已测试root和jenkins两个用户。
异常现象
- 在Jenkins/Ansible容器的CLI中,可正常SSH到目标容器,且能成功运行playbook
- 通过Jenkins流水线执行playbook时失败;复制Jenkins控制台输出的命令,仅将临时SSH密钥替换为真实密钥后,playbook即可正常运行:
- 临时密钥:
--private-key /var/lib/jenkins/workspace/TestJs/ssh9809173197875714932.key - 真实密钥:
--private-key /var/lib/jenkins/.ssh/jenkins_key
- 临时密钥:
- 在Jenkins Docker CLI执行以下命令完全正常:
/usr/bin/ansible-playbook /var/lib/jenkins/workspace/TestJs/deploy/playbooks/deployToTarget.yml -i /var/lib/jenkins/workspace/TestJs/deploy/playbooks/inventory.inv --private-key /var/lib/jenkins/.ssh/jenkins_key -u jenkins - 为排除Jenkins临时密钥问题,编写了直接连接主机执行shell脚本的简单流水线,运行正常
流水线片段
stages { stage('Deploy on Test') { steps { ansiblePlaybook( credentialsId: 'TEST_HOST_SSH_KEY', disableHostKeyChecking: true, installation: 'Ansible', inventory: "${WORKSPACE}/deploy/playbooks/inventory.inv", playbook: "${WORKSPACE}/deploy/playbooks/deployToBSI_SMA.yml", colorized: true) } } }
控制台错误信息
PLAY [Deploy On Test] *************************************************** TASK [Gathering Facts] ********************************************************* [1;31mfatal: [bsi_sma]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: muxserver_listen: link mux listener /var/lib/jenkins/.ansible/cp/119f480311.4lIaQB6LhOC2svmf => /var/lib/jenkins/.ansible/cp/119f480311: Bad file descriptor", "unreachable": true}[0m PLAY RECAP ********************************************************************* [0;31mbsi_sma[0m : ok=0 changed=0 [1;31munreachable=1 [0m failed=0 skipped=0 rescued=0 ignored=0
排查过程
最初在CLI测试了-u jenkins和-u root两个用户:
- 以
root身份执行时一切正常 - 切换为
jenkins用户执行相同命令时,出现和流水线完全一致的错误
确认问题根源:Jenkins是以jenkins用户运行的,用户权限或配置加载差异导致异常。
解决方法
Jenkins流水线不会自动加载playbook目录下的Ansible配置文件,而CLI环境会自动加载。在流水线中添加环境变量指定Ansible配置文件路径后,问题解决:
environment { ANSIBLE_CONFIG = "${WORKSPACE}/deploy/playbooks/ansible.cfg" }
内容的提问来源于stack exchange,提问作者harrypottar
相关产品推荐
相关产品推荐

