2016-10-25 18 views
1

私はJenkinsパイプラインから実行しようとしているAnsibleプレイブックを持っています。私はソースから実行しているAnsibleを持っており、私はAnsibleプラグインでそれを呼び出しています。ここに私のパイプラインスクリプトからのビットです:私はAnsibleの実行ファイルへのパスが正しいことを確認した、とそう$ PYTHONPATHがあるJenkinsパイプラインの可能性のあるプラグイン:不可能なプレイブックが失敗する

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

      } 

。しかし、パイプラインを実行するときの動作は次のとおりです。

[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は自分の定数をロードできないのですか?

答えて

0

は、ユーザージェンキンス

sudo su -s /bin/bash jenkins 
として、それを実行してみます
関連する問題