2016-10-25 4 views
1

Ich habe ein Ansible playbook Ich versuche, von einer Jenkins-Pipeline zu laufen. Ich habe Ansible von der Quelle ausgeführt und ich rufe es mit dem Ansible-Plugin an. Hier ist das Bit von meinem Pipeline-Skript:Jenkins Pipeline ansible Plugin: Ansible-Playbook schlägt fehl

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}'" 
       ]) 

      } 

ich vergewissert habe, dass der Weg zum ansible ausführbaren korrekt ist, und so ist $ PYTHONPATH. Aber hier ist, was es tut, wenn ich die Pipeline laufen lassen:

[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 

Eine Idee, was ich hier falsch mache? Warum kann Ansible keine eigenen Konstanten laden?

Antwort

0

versuchen, es zu laufen als Benutzer

sudo su -s /bin/bash jenkins 
jenkins
Verwandte Themen