2016-12-13 2 views
0

мне удалось так тариф для запуска ansiblePlaybook в работы DSL сценария:AnsiblePlaybook Дженкинс Pipeline

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) 

Таким образом, я попытался запустить команду, напечатанную как неудачную в sh Шаг:

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

Смежные вопросы