Size: a a a

2021 April 06

Н

Никитяо in jenkins_ru
register
источник

u

unixshaman in jenkins_ru
Это функция - список подается
источник

Н

Никитяо in jenkins_ru
унес в копилочку, спасибо
источник

u

unixshaman in jenkins_ru
Вот там можно вызывать:
stage('Установка Vault') {
           when { expression { params.Vault_Setup == true && run == true } }

           steps {
               script {
                   scriptWithExceptionCatch {
                       executeScript(cerediraTessUrl, params.creds, reservedAgents, 'vaultCreateOrUpdate.bat', [
                           params.cerediraTessShare,
                           params.portableVaultArchive,
                           params.pathToInstallVault,
                           vaultInstallType,
                           vaultUrl
                       ], { response ->
                           if (!response.content.contains('VAULT INSTALL PASSED') &&
                               !response.content.contains('VAULT ALREADY INSTALLED!!!')) {
                               error('Этап установки VAULT прошел не успешно. Смотрите лог выполнения операции для разбора с ошибкой.')
                           }
                       })
                   }
               }
           }
       }
источник

u

unixshaman in jenkins_ru
У меня все bat\sh лежат на отдельном сервисе - CerediraTess, который выполняет их на удаленных машинах, и я просто через contains результат выполнения проверяю, а когда пишу скрипты, там выводу всякие проверочные строки, по наличию которых можно сделать вывод - успешно или нет выполнилось
источник

t

tsla in jenkins_ru
не могу понять, почему он не выдаёт по нему ошибку, я спецом не верный айпи указал на одном из серверов, а он показывает что пайплайн выполнился без ошибок ...

options {
   parallelsAlwaysFailFast()
}
источник

Н

Никитяо in jenkins_ru
за CerediraTess отдельное спасибо, пригодится
источник

t

tsla in jenkins_ru
хм, сложно для меня, но звучит мега круто
источник

u

unixshaman in jenkins_ru
Скорее всего, потому что итератор у тебя перезабивается последним сервисом все 3 раза, посмотри внимательно все 3 параллельныз запроса куда идут. И посмотри комментарий в моем коде
источник

u

unixshaman in jenkins_ru
Решение очень сырое - прямо дно пробивает. Если заинтересует, пишите в ЛС, устрою небольшое демо. Мне как раз пользователи нужны )
источник

t

tsla in jenkins_ru
def servers = ["172.16.2.201", "172.16.2.219", "172.16.2.212"]

def parallelStagesMap = servers.collectEntries {
   ["${it}" : generateStage(it)]
}

def generateStage(servers) {
   return {
       stage("stage: ${servers}") {
               echo "This is ${servers}."
               sh '''
               echo ${servers}
               '''
       }
   }
}
источник

t

tsla in jenkins_ru
народ, а почему тут он не хочет подставлять занчения из def servers в echo ${servers} ?
источник

u

unixshaman in jenkins_ru
Не стоит наверное stage пихать в parallel, фарш какой-то получится
источник

Н

Никитяо in jenkins_ru
да мне код полистать проще, пока ничего сверхъестественного не увидел, flask и psexec
источник

Н

Никитяо in jenkins_ru
кинул ребятам с прошлой работы, им мб пригодится
источник

t

tsla in jenkins_ru
а как лучше?  sh в параллел?
источник

u

unixshaman in jenkins_ru
script { внутри echo и sh и что надо }
источник

t

tsla in jenkins_ru
то бишь тупо bash скрипт на дженкинс сервере и я его запускают в паралелле в стэйдах или тасках ?
источник

u

unixshaman in jenkins_ru
Я отвлекся и вылетел из темы. Пишите вечером в лс
источник

Н

Никитяо in jenkins_ru
def servers = ["172.16.2.201", "172.16.2.219", "172.16.2.212"]

def parallelStagesMap = servers.collectEntries { server ->
   ["${server}": {
       stage("Run SSH command on ${server}") {
           sh "ssh ${server}"
       }
   }]
}

parallel parallelStagesMap
источник