首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins Pipeline ansible插件: Ansible-playbook失败

Jenkins Pipeline ansible插件: Ansible-playbook失败
EN

Stack Overflow用户
提问于 2016-10-26 03:33:52
回答 1查看 4.6K关注 0票数 2

我有一个Ansible攻略,我正试图从Jenkins管道中运行。我让Ansible从源代码中运行,我用Ansible插件调用它。下面是我的管道脚本中的一小段:

代码语言:javascript
复制
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也是正确的。但下面是我运行管道时它所做的事情:

代码语言:javascript
复制
[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

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

EN

回答 1

Stack Overflow用户

发布于 2017-03-20 22:19:07

尝试以jenkins用户身份运行它

代码语言:javascript
复制
sudo su -s /bin/bash jenkins
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40248220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档