У нас есть скрипт, который использует vSphere для возврата снимка на компьютер и включения.
И затем мы проверяем, доступен ли агент следующим образом:
def checkAgentAvalability(agName, tolerance) {
try {
int sleepTime = 5
def jenkinsObj = Jenkins.instance.getNode(agName)
printLogger("INFO", "checkAgentAvalability() Agent: " + agName + ", tolerance: " + tolerance)
handleSlaveMode(agName, false)
sleep (5000)
for (int i = 0; i < tolerance; i++) {
if (jenkinsObj.toComputer().isOnline()) {
if (jenkinsObj.getRootPath() != null && !jenkinsObj.getComputer().getLog().contains('error'))
{
return true
} else {
sleep (5000)
}
}
sleep (5000)
}
return false
}
catch (err)
{
return false
}
}
Мы используем эти сценарии для установки 30 машин и подготовки их к тестам.
Мы получаем сбои со случайными машинами с этим исключением:
java.io.NotSerializableException: hudson.slaves.JNLPLauncher
Как можно решить эту проблему? Я не могу найти основную причину в интернете.
Как проверить, работает ли автоматически созданный агент? У нас также иногда бывают разъединения после того, как агент работает
Спасибо