2016-12-13 12 views
0

私は仕事のDSLスクリプトでansiblePlaybookを実行するので、運賃成功しました:AnsiblePlaybookジェンキンスパイプライン

ansiblePlaybook("running-colour.yml") { 
     inventoryPath("ec2.py") 
     additionalParameters("--vault-password-file \$ANSIBLE_VAULT_KEY_FILE -e env_name=\$ENVIRONMENT_NAME") 
} 

をしかし、私はパイプラインで非常に同じのparams実行すると:

ansiblePlaybook playbook: 'running-colour.yml', inventory: 'ec2.py', extras: "-e env_name=$environment --vault-password-file $ansibleVaultKeyFile" 

をそれは私にこれを与えるだろう

ansible-playbook running-colour.yml -i ec2.py -f 5 -e env_name=prod --vault-password-file **** 
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) 

だから私は0に失敗として印刷コマンドを実行しようとした:間違っているものを私に教えてくれないエラーステップ:

sh "ansible-playbook running-colour.yml -i ec2.py -f 5 -e env_name=prod --vault-password-file $file" 

これは機能します。

答えて

0

私はパイプラインで使用すると、私のために働く。

withCredentials([file(credentialsId: 'ansible_vault_keyfile', variable: 'ansibleVaultKeyFile')]) { 
     ansiblePlaybook playbook: 'running-colour.yml', inventory: 'ec2.py', extras: "-e env_name=$environment --vault-password-file ${ansibleVaultKeyFile}" 
     } 

あなたはこの作品$

でエキストラに変数名を渡すwithCredentialsを使用する必要があります。

+0

はいこれは、使用していた最近のKubernetesプラグインで修正されています。 – Joan

関連する問題