Дженкінс не виконуватиме жодної роботи. Переглянувши це запитання , я вимкнув усі підлеглі вузли, але проста робота навіть не виконується на головному вузлі.
Що не так?
Дженкінс не виконуватиме жодної роботи. Переглянувши це запитання , я вимкнув усі підлеглі вузли, але проста робота навіть не виконується на головному вузлі.
Що не так?
Відповіді:
Консоль адміністратора Дженкінса може працювати навіть із вузлом Master в автономному режимі. Це може статися, коли у Дженкінса закінчується місце на диску.
Для підтвердження зробіть наступне (з подякою geekride - jenkins-pending-waiting-next-available-executor):
У моєму випадку кількість виконавців було встановлено на 0. Збільшено його і проблема виправлена.
У моєму випадку у мене був наступний набір у моєму JenkinsFile
node('node'){
...
}
Не було вузла під назвою 'вузол', лише майстер (значення було залишено там після виконання деяких основних підручників). Змінивши значення на "master", збірка запрацювала.
Я зіткнувся з подібною проблемою, оскільки моєму майстру було встановлено "Залишити цю машину лише для пов'язаних робіт". Тож, незважаючи на те, що я відключив Раба, Дженкінс продовжував обходити Господаря, шукаючи щось інше.
Перейдіть до Jenkins -> Manage Jenkins -> Manage Nodes і натисніть кнопку налаштування вашого головного вузла (схожа на викрутку та гайковий ключ). Перевірте Використання та переконайтеся, що в ньому вказано "Використовувати цього підлеглого якомога більше"
У моєму випадку це було спричинено кількістю виконавців (у мене було 1) та запуском роботи Дженкінса (проект) від Pipeline (мій сценарій конвеєра започаткував іншу роботу в Дженкінсі). Це спричинило тупик - мій трубопровід утримував виконавця і чекав своєї роботи, але робота чекала вільного виконавця.
Рішення може бути збільшенням # of executors
в Jenkins -> Manage Jenkins -> Manage Nodes -> Configure (icon on required node)
.
Я трохи запізнився з грою, але це може допомогти іншим.
У моєму випадку у мого майстра jenkins є спільний зовнішній ресурс, який виділяється для завдань jenkins за допомогою плагіна external-resource- dispecher . Через помилку JENKINS-19439 у плагіні (яка знаходиться в бета-версії), я виявив, що мій ресурс був заблокований попереднім завданням, але не був розблокований, коли попереднє завдання було скасовано.
Щоб дізнатись, чи ресурс зараз перебуває в заблокованому стані, перейдіть до відповідного вузла jenkins, Jenkins -> Manage Jenkins -> Manage Nodes -> master
Ви повинні побачити поточний стан будь-яких зовнішніх ресурсів. Якщо якісь з них несподівано заблоковані, це може бути причиною того, чому робочі місця чекають на виконавця.
Я не міг знайти деталей, як вручну вирішити цю проблему.
Перезапуск дженкінів не вирішив проблему.
Врешті-решт я пішов із жорстоким підходом:
У моєму випадку я помітив таку поведінку, коли в коробці не вистачало пам'яті (оперативної пам'яті), я перейшов до Jenkins -> Manage Jenkins -> Manage Nodes і виявив виняток, що не має пам'яті. Я просто звільнив трохи пам'яті на машині, і завдання почали надходити до виконавців.
У моєму випадку я щойно встановив плагін "Авторизувати проект" і неправильно налаштував стратегію в "Керувати Дженкінсом -> Налаштувати глобальну безпеку -> Контроль доступу для збірок" як "Запустити як анонімний". Отже, «анонімний» не мав права виконувати роботу.
Встановивши першу стратегію як "Запустити як користувача, який ініціював побудову", розблокували завдання в черзі.
Коротка відповідь: Виконайте всі завдання, які виконуються на майстрі.
У моєму випадку на майстрі було вивішено 3 робочі місця більше 10 днів, які були непоміченими. Зазвичай ми не виконуємо жодної роботи безпосередньо на господаря, все працює на рабах. Я вбив ці 3 робочі місця, які були повішені, автоматично виконавці раба почали підбирати робочі місця.
Слід зазначити, що, хоча ми маємо 8 рабів, лише 1 раб був у цьому постраждалому стані.
[EDIT] Ми знайшли відповідь на те, чому лише один раб був у цьому постраждалому стані. Коли раб Дженкінса падає, всі очікувані завдання автоматично передаються майстру. Всі 3 роботи, які я вбив, були від цього раба, тому, ймовірно, проблема зв’язку між господарем і цим конкретним рабом.
Для мене нижче рішення спрацювало.
Дженкінс -> Керувати Дженкінсом -> Керувати вузлами -> майстер -> налаштувати -> Властивості вузла -> Обмежити виконання завдань на вузлі - увімкнено та надано доступ певним користувачам. Я сам надав доступ, а потім робота почала працювати.
Якщо ввімкнено обмеження виконання завдань на вузлі , заплановані завдання не можуть запускатися.
У моєму випадку це схоже на @Michael Easter: Я отримав проблему на роботі через брак місця на диску. Я звільнив місце, перезапустив Дженкінса, але проблема все ще залишалася.
Рішенням було перейти до Jenkins -> Manage Jenkins -> Manage Nodes і просто натиснути кнопку, щоб оновити статус.
Що мені вдалося: нарешті я помітив вікно Status Executor Status зліва на головній інформаційній панелі Jenkins. Я запускаю екземпляр dev / test у своїй локальній системі з 2 виконавцями. Наразі обидва були зайняті збірками, які не працювали. Після скасування їх на робочих місцях моє третє (очікуване) завдання змогло запуститись.
Я зіткнувся з подібною проблемою, оскільки моєму майстру було встановлено значення "# від виконавця (максимальна кількість одночасних збірок, які Дженкінс може виконувати на цьому агенті).
Перейдіть до Jenkins -> Manage Jenkins -> Manage Nodes і натисніть кнопку налаштування вашого головного вузла (збільште кількість виконавців, щоб одночасно запускати безліч завдань).
У моєму випадку я повинен встановити Execute concurrent builds if necessary
в загальних налаштуваннях завдання.
Можливо, у вас встановлені етапи, і ваша робота не буде виконуватися до завершення попередньої роботи.