Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins管道ansible插件:ansible playbook失败_Jenkins_Ansible_Jenkins Plugins_Jenkins Pipeline - Fatal编程技术网

Jenkins管道ansible插件:ansible playbook失败

Jenkins管道ansible插件:ansible playbook失败,jenkins,ansible,jenkins-plugins,jenkins-pipeline,Jenkins,Ansible,Jenkins Plugins,Jenkins Pipeline,我有一本Ansible的剧本,我正试图从詹金斯的管道中运行。我从源代码运行Ansible,我用Ansible插件调用它。以下是我的管道脚本中的部分: withEnv(["PYTHONPATH=/home/ec2-user/ansible/lib"]) { ansiblePlaybook([ colorized: true, credentialsId: 'my-creds',

我有一本Ansible的剧本,我正试图从詹金斯的管道中运行。我从源代码运行Ansible,我用Ansible插件调用它。以下是我的管道脚本中的部分:

withEnv(["PYTHONPATH=/home/ec2-user/ansible/lib"]) {
                ansiblePlaybook([
                    colorized: true,
                    credentialsId: 'my-creds',
                    installation: 'ansible-2-2-0',
                    inventory: 'staging',
                    playbook: 'deploy.yml',
                    extras: "--extra-vars 'app_build_id=${git_commit}'"
                ])

            }
我已经验证了Ansible可执行文件的路径是正确的,$PYTHONPATH也是正确的。但当我运行管道时,它是这样做的:

[Pipeline] ansiblePlaybook
[planet-healthcare-pipeline] $ /home/ec2-user/ansible/bin/ansible-playbook deploy.yml -i staging -f 5 --private-key /home/ec2-user/jenkins/workspace/REDACTED.key -u ec2-user --extra-vars app_build_id=24a6431
Traceback (most recent call last):
  File "/home/ec2-user/ansible/bin/ansible-playbook", line 43, in <module>
    import ansible.constants as C
ImportError: No module named ansible.constants
FATAL: command execution failed
hudson.AbortException: Ansible playbook execution failed
    at org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder.perform(AnsiblePlaybookBuilder.java:227)
    at org.jenkinsci.plugins.ansible.workflow.AnsiblePlaybookStep$AnsiblePlaybookExecution.run(AnsiblePlaybookStep.java:290)
    at org.jenkinsci.plugins.ansible.workflow.AnsiblePlaybookStep$AnsiblePlaybookExecution.run(AnsiblePlaybookStep.java:226)
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:52)
    at hudson.security.ACL.impersonate(ACL.java:221)
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:49)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] mail
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: Ansible playbook execution failed
Finished: FAILURE
[Pipeline]ansiblePlaybook
[planet healthcare pipeline]$/home/ec2 user/ansible/bin/ansible playbook deploy.yml-i staging-f5-私钥/home/ec2 user/jenkins/workspace/redact.key-u ec2 user-额外vars应用程序构建id=24a6431
回溯(最近一次呼叫最后一次):
文件“/home/ec2 user/ansible/bin/ansible playbook”,第43行,在
将ansible.constants导入为C
ImportError:没有名为ansible.constants的模块
致命:命令执行失败
hudson.AbortException:Ansible playbook执行失败
位于org.jenkinsci.plugins.ansible.AnsiblePlaybookBuilder.perform(AnsiblePlaybookBuilder.java:227)
位于org.jenkinsci.plugins.ansible.workflow.AnsiblePlaybookStep$ansibleplaybooksecution.run(AnsiblePlaybookStep.java:290)
位于org.jenkinsci.plugins.ansible.workflow.AnsiblePlaybookStep$ansibleplaybooksecution.run(AnsiblePlaybookStep.java:226)
位于org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:52)
位于hudson.security.ACL.impersonate(ACL.java:221)
位于org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:49)
位于java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
在java.util.concurrent.FutureTask.run(FutureTask.java:266)处
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
运行(Thread.java:745)
[管道]}
[Pipeline]//withEnv
[管道]}
[管道]//阶段
[管道]邮件
[管道]}
[管道]//节点
[管道]管道末端
错误:Ansible playbook执行失败
完成:失败

知道我做错了什么吗?为什么Ansible不能加载自己的常量?

尝试以用户jenkins的身份运行它

sudo su -s /bin/bash jenkins

怎么用?你所说的以用户身份运行它是什么意思,詹金斯。屏幕截图会有所帮助。