我想知道是否有人遇到过这样的问题:
在Ubuntu机器上手动执行Ansible playbook时,一切正常。 当通过Jenkins管道(在Windows上配置Jenkins master,在Ubuntu上配置代理,在Ubuntu代理上执行相关步骤)以以下方式执行相同的剧本时:
stage ('Calling Ansible') {
agent {
label 'ubuntu'
}
steps {
script {
ansiblePlaybook(
playbook: '/home/jenkins/ansibleJenkins/test.yml'
)
}
}
}
我得到以下错误:
[lculator-jenkinsfile-test_master] $ ansible-playbook /home/jenkins/ansibleJenkins/test.yml
/usr/bin/env: ‘python3’: No such file or directory
FATAL: command execution failed
hudson.AbortException: Ansible playbook execution failed
at org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder.perform(AnsiblePlaybookBuilder.java:262)
at org.jenkinsci.plugins.ansible.workflow.AnsiblePlaybookStep$AnsiblePlaybookExecution.run(AnsiblePlaybookStep.java:400)
at org.jenkinsci.plugins.ansible.workflow.AnsiblePlaybookStep$AnsiblePlaybookExecution.run(AnsiblePlaybookStep.java:321)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
at hudson.security.ACL.impersonate(ACL.java:367)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
请注意,当手动检查Ubuntu时,当我执行:$ /usr/bin/env python3 --version
时,我得到:Python 3.8.2
作为回报
尝试将ansible_python_interpreter=/usr/bin/env python3
作为Jenkinsfile中的外部变量传递,但没有帮助
有什么帮助吗
基于另一个主题上的this answer,结果是由于在Jenkins master中配置了“全局路径”&>;配置系统->;全局属性,具有与Windows相关的路径。它阻止Linux代理使用自己的路径
移除它解决了问题
相关问题 更多 >
编程相关推荐