Jenkins - Есть ли способ удалить все автономные узлы (ведомые) /пакетно удалить узлы /удалить все узлы?

При использовании подключаемого модуля Jenkins Docker, возможно, из-за ошибки, рои не могут быть запущены. Я не обратил внимания, и на данный момент у меня есть тысячи автономных узлов, которые не удалось запустить.

НИЖНЯЯ ЛИНИЯ - Есть ли способ удалить узлы (ведомые) в Дженкине, очистить все автономные узлы или даже удалить все узлы? Восстановление сервера Дженкинса не помогло, и я не смог найти выход в API Дженкинса.

Буду признателен за любую идею, прежде чем я начну писать сценарий Selenium или что-то в этом роде ...

Большое спасибо!

10 голосов | спросил AlonL 6 J0000006Europe/Moscow 2014, 04:26:23

2 ответа


0

Существует этот сценарий с закомментированным разделом для удаления узлов.

Он запускается в консоли сценариев Jenkins

for (aSlave in hudson.model.Hudson.instance.slaves) {
  println('====================');
  println('Name: ' + aSlave.name);
  println('getLabelString: ' + aSlave.getLabelString());
  println('getNumExectutors: ' + aSlave.getNumExecutors());
  println('getRemoteFS: ' + aSlave.getRemoteFS());
  println('getMode: ' + aSlave.getMode());
  println('getRootPath: ' + aSlave.getRootPath());
  println('getDescriptor: ' + aSlave.getDescriptor());
  println('getComputer: ' + aSlave.getComputer());
  println('\tcomputer.isAcceptingTasks: ' + aSlave.getComputer().isAcceptingTasks());
  println('\tcomputer.isLaunchSupported: ' + aSlave.getComputer().isLaunchSupported());
  println('\tcomputer.getConnectTime: ' + aSlave.getComputer().getConnectTime());
  println('\tcomputer.getDemandStartMilliseconds: ' + aSlave.getComputer().getDemandStartMilliseconds());
  println('\tcomputer.isOffline: ' + aSlave.getComputer().isOffline());
  println('\tcomputer.countBusy: ' + aSlave.getComputer().countBusy());
  //if (aSlave.name == 'NAME OF NODE TO DELETE') {
  //  println('Shutting down node!!!!');
  //  aSlave.getComputer().setTemporarilyOffline(true,null);
  //  aSlave.getComputer().doDoDelete();
  //}
  println('\tcomputer.getLog: ' + aSlave.getComputer().getLog());
  println('\tcomputer.getBuilds: ' + aSlave.getComputer().getBuilds());
}
ответил KeepCalmAndCarryOn 6 J0000006Europe/Moscow 2014, 07:02:47
0

Спасибо за отличный ответ.

Другой способ сделать это - вручную отредактировать файл '$ {JENKINS_HOME} /config.xml' (например, найти /заменить на regex).

ответил AlonL 6 J0000006Europe/Moscow 2014, 15:01:19

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132