Я создал конвейер и хочу запустить сценарий оболочки на нескольких серверах, я читаю список серверов из txt-файла, я написал код для итерации по этому списку и запускаю сценарий оболочки для каждого сервера в этом списке.
Проблема в том, что цикл не проходит после первого выполнения. Если я просто печатаю имя сервера и не выполняю команду ssh, он печатает все имена серверов, это означает, что цикл работает нормально, но не работает должным образом с командой ssh. Я пытался за цикл, но та же проблема.
stage('execute script') {
steps {
script {
....some code here
def absoluteFilePath = "${WORKSPACE}/serversList.txt"
def fileContent = readFile(absoluteFilePath)
listOfServers = fileContent.split('\n')
}
iterateOverList(listOfServers, "${WORKSPACE}/")
}
}
@NonCPS
def iterateOverList(list, workSpacePath) {
//iterate over servers list and execute shell script on it.
list.each { hostServer ->
sh "ssh -t -o StrictHostKeyChecking=no -o 'UserKnownHostsFile /dev/null' -i /var/lib/user/.ssh/id_rsa user@${hostServer} 'sudo bash -s' < ${workSpacePath}myShellScript.sh"
}
}