Вопрос:

Groovy: не найден такой метод DSL 'ansible' среди шагов

jenkins groovy jenkins-pipeline jenkins-groovy

684 просмотра

1 ответ

3239 Репутация автора

У нас есть этот сложный сценарий для Дженкинса, который выглядит примерно так:

def run_pipeline() {
  try {
    stage('Build') {
      sh "docker build . -t ansible"
    }
    stage('Linux Common Tag') {
      def stage_common = [
        [tag: 'common', serial: '100%', user: "${env.ANSIBLE_USER}", playbook: 'platform.yml'],
      ]

      run_stages(stage_common, serial)
    }
}

def run_stages(stages, serial) {
  stages.each { phase ->
    def serial_percent=serial.containsKey(phase.tag) ? serial[phase.tag]: phase.serial
    ansible(phase.tag, phase.user, phase.password, limit=phase.limit, playbook=phase.playbook, serial=serial_percent)
  }

  execute_stages()
}

def ansible(tag, user, password, limit='', serial='100%' playbook='platform.yml') {
    // stuff in here
}

Что мы получаем

 java.lang.NoSuchMethodError: No such DSL method 'ansible' found among steps

Кажется, что происходит в run_stagesфункции

Любой вклад в то, что я делаю неправильно? Спасибо!

Автор: Mike Источник Размещён: 08.11.2017 11:04

Ответы (1)


0 плюса

3137 Репутация автора

Это сообщение об ошибке означает, что команда или «шаг», который вы используете, недопустимы. Это либо потому, что вы ввели что-то неправильно, либо не установлен плагин, обеспечивающий этот шаг. Я полагаю, у вас нет установленного плагина.

Автор: Rob Hales Размещён: 09.11.2017 05:17
Вопросы из категории :
32x32