如何使用jenkins管道多个参数

时间:2018-03-14 08:46:28

标签: jenkins jenkins-pipeline

我有一个使用ansible-playbook的Jenkinsfile实例来部署webmachine。

我需要一次指定多个ansible-playbook参数。

我得到了

  

WorkflowScript:25:多次出现参数部分

我的jenkinsfile就是这样,

pipeline {
agent none
stages {
    stage('docker-compose up') {
        input {
            message "Should we continue?"
            ok "Yes, do it!"
            parameters {
                string(name: 'KIBANA_TAG', defaultValue: '', description: 'input tag for ansible command.')
            }
            parameters {
                string(name: 'FLUENT_TAG', defaultValue: '', description: 'input tag for ansible command.')
            }
            parameters {
                string(name: 'ES_TAG', defaultValue: '', description: 'input tag for ansible command.')
            }
            parameters {
                string(name: 'HOST', defaultValue: '', description: 'input tag for ansible command.')
            }
        }
        steps {
            sh "rd6-admin@qa ansible-playbook /tmp/qa/docker-compose-up.yml -e fluent_tag=${params.FLUENT_TAG} -e kibana_tag=${params.KIBANA_TAG} -e es_tag=${params.ES_TAG} -e host=${params.HOST}"
        }
    }
}
}

我应该修复哪一部分?

2 个答案:

答案 0 :(得分:2)

parameters {
    string(name: 'KIBANA_TAG', defaultValue: 'default', description: 'input tag for ansible command.'),
    string(name: 'FLUENT_TAG', defaultValue: 'default', description: 'input tag for ansible command.'),
    string(name: 'ES_TAG', defaultValue: 'default', description: 'input tag for ansible command.'),
    string(name: 'HOST', defaultValue: 'default', description: 'input tag for ansible command.')
}

试试这个。多次出现参数部分意味着只允许一个参数{},您必须将参数放在那里。

答案 1 :(得分:2)

逗号分隔符在版本2.222.1。中不起作用。我删除了逗号,现在可以使用了。

parameters {
    string(name: 'KIBANA_TAG', defaultValue: 'default', description: 'input tag for ansible command.')
    string(name: 'FLUENT_TAG', defaultValue: 'default', description: 'input tag for ansible command.')
    string(name: 'ES_TAG', defaultValue: 'default', description: 'input tag for ansible command.')
    string(name: 'HOST', defaultValue: 'default', description: 'input tag for ansible command.')
}