我有一个Jenkins种子DSL的工作:
job("cronjob/${ACTION}_${ENVRIONMENT}_environment_CRONJOB") {
scm {
git('https://git_user@github.com/abc-Data/devops.git','*/develop')
}
triggers {
scm("${SCHEDULE}")
}
steps {
ansiblePlaybook("ansible/scripts/ansible-${ACTION}.yml") {
inventoryPath("/etc/ansible/hosts")
credentialsId("usercred")
extraVars {
extraVar('environment_name',"${ENVRIONMENT}",false)
}
}
}
}
操作、环境和计划是参数。
ACTION的值可以是create
或remove
,我有两个ansible剧本ansible-create.yml
和ansible-remove.yml
。
当我运行sseed作业时,出现以下错误:
ERROR: (unknown source) No signature of method: javaposse.jobdsl.dsl.helpers.step.StepContext.ansiblePlaybook() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl, script$_run_closure1$_closure4$_closure5) values: [ansible/scripts/ansible-create.yml, ...]
Finished: FAILURE
ansiblePlaybook("ansible/scripts/ansible-${ACTION}.yml")
不能与变量ACTION一起使用。
如果我硬编码ansiblePlaybook
中的脚本名称,种子作业将创建一个新作业。
我错过了什么?
谢谢你!
1条答案
按热度按时间k5hmc34c1#
正如上面@daggett所建议的,我将代码修改如下:
它按预期工作,并使用输入的变量值创建一个新的作业。再次感谢您@daggett!