繁体   English   中英

Ansible Playbook 在通过 Jenkins 执行时失败:/usr/bin/env: 'python3': No such file or directory

[英]Ansible Playbook Fails when Executed Through Jenkins: /usr/bin/env: ‘python3’: No such file or directory

不知道有没有人遇到过这样的问题:

在 Ubuntu 机器上手动执行 Ansible playbook 时,一切正常。 当通过 Jenkins 管道执行相同的 playbook 时(在 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作为 extraVar 传递,但没有帮助。

有什么帮助吗?

基于另一个主题的这个答案,结果是由于在 Jenkins master -> Configure System -> Global Properties 中配置了“全局路径”,路径与 Windows 相关。 它阻止了 Linux 代理使用自己的路径。

删除它解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM