Как подключиться к списку серверов, используя al oop в конвейере Jenkin? - PullRequest
2 голосов
/ 21 марта 2020

Я пытаюсь подключиться к паре моих рабов Дженкинса и запустить простую команду для каждого из них. Этот код Jenkinsfile работает нормально:

pipeline {
agent none
stages {
    stage('alexander') {
        agent { label 'alexanderPig' }
        steps {
            sh "uptime"
        }
    }
    stage('freddy') {
        agent { label 'freddyFox' }
        steps {
            sh "uptime"
         }
    }
}

}

Но что если у меня будет 20 рабов? Есть ли способ определить массив агентов, а затем просто запустить sh команды один раз внутри ie. al oop?

С уважением!

1 Ответ

2 голосов
/ 22 марта 2020

Я думаю matrix может быть именно то, что вам нужно. Вы можете выполнять этапы параллельно с уникальными наборами параметров (например, агентами label). Вот полный пример:

pipeline {
    agent none
    stages {
        stage('call salves') {
            matrix {
                agent {
                    label "${SLAVE}"
                }
                axes {
                    axis {
                        name 'SLAVE'
                        values 'alexanderPig', 'freddyFox'
                    }
                }
                stages {
                    stage('do something') {
                        steps {
                            sh 'uptime'
                        }
                    }
                }
            }
        }
    }
}

Матрица не ограничена одним измерением, вы можете указать несколько axes, и Дженкинс сделает для вас декартово произведение.

...