Хостинг Jenkins, контролер і агенти окремо
Контролер Jenkins на власній машині в Празі чи Ковільяні, зі збірками, винесеними на агентів, де їм і місце, - це єдина порада щодо розміру, яку дає проєкт Jenkins, і та, яку більшість інсталяцій ігнорує.
Для кого це
Jenkins, який живе під чиїмось столом
Він збирає з 2019 року, ніхто не пам'ятає, які плагіни важливі, а весь процес випуску залежить від башти з одним диском і без резервної копії.
Контролер, що виконує власні збірки
Виконавців виділили на контролері, бо так було простіше, а тепер важке завдання тягне за собою вебінтерфейс - що документація Jenkins називає поганою практикою саме такими словами.
Команда, яка не може перейти на розміщений CI
Дванадцять років конвеєрів, плагін, якого ніхто не замінив, і завдання, що говорить із залізом. Проблема не в Jenkins; проблема в машині під ним.
Що дає власна машина
- Контролер, який лишається чутливим, бо збірки виконуються на агентах, а не на тому, що обслуговує вебінтерфейс.
- JENKINS_HOME на NVMe зі знімком перед кожним оновленням плагінів, тож відкат - це два кліки, а не цілий вечір.
- Агенти, додані як окремі хости й підключені через SSH або вхідний протокол, з іншим розміром, ніж у контролера.
- Статична IPv4 з AS204057, щоб внутрішній реєстр, сховище артефактів чи ціль розгортання могли дозволити контролер за адресою.
- Будь-який агент, потрібний поруч, - Linux для збірок, Windows Server із ліцензією від нас, коли завдання цього вимагає.
- Об'єкти Tier III, резервна копія у складі тарифу і машина, яка не залежить від кондиціонера в офісі.
Розмір за тим, що конвеєр робить насправді
Проєкт Jenkins свідомо відмовляється публікувати одне число щодо заліза, називає підбір розміру неточною наукою і розміщує пам'ять контролера десь між 200 МБ для малої інсталяції та 70 ГБ і більше для великої. Зате він чітко каже, куди йде робота: не виділяйте виконавців на контролері, бо збірка може перевантажити його й покласти. Тож підбирайте контролер під інтерфейс, плагіни та історію завдань, а збірки віддайте агентам. Одне застереження щодо форми оплати: фіксований місячний хост коштує так само у спокійний тиждень, коли розміщені хвилини CI не коштують нічого - але Jenkins зазвичай працює майже щодня, і саме тоді це рішення виграє.
Як встановити Jenkins на Debian чи Ubuntu
Стабільна лінія LTS, із власного репозиторію проєкту Jenkins, у порядку, який вони документують. Java 21 або новіша - це вимога, а не порада.
-
Встановіть Java
sudo apt update sudo apt install fontconfig openjdk-21-jre java -versionJenkins потребує Java 21 або новішої. fontconfig стоїть поруч у задокументованій команді, бо плагіни, що малюють зображення, без нього падають незрозумілим чином.
-
Додайте репозиторій LTS Jenkins
sudo wget -O /etc/apt/keyrings/jenkins-keyring.asc \ https://pkg.jenkins.io/debian-stable/jenkins.io-2026.key echo "deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc]" \ https://pkg.jenkins.io/debian-stable binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list > /dev/nulldebian-stable - це лінія LTS; простий шлях debian - тижнева. Ключ підпису ротується, тож беріть поточну назву файлу зі сторінки Jenkins, а не зі старішого посібника.
-
Встановіть і запустіть
sudo apt update sudo apt install jenkins sudo systemctl enable jenkins sudo systemctl start jenkinsJenkins слухає на порту 8080 і працює від власного користувача jenkins, а все важливе лежить під /var/lib/jenkins. Саме цей каталог ви охоплюєте знімком і резервною копією.
-
Розблокуйте перший вхід
sudo cat /var/lib/jenkins/secrets/initialAdminPasswordВідкрийте сервер на порту 8080 і вставте це значення. Не лишайте його доступним усьому інтернету, поки налаштовуєте, - сховайте за нашим VPN-шлюзом або спершу обмежте порт 8080 адресою вашого офісу.
-
Заберіть збірки з контролера
# Manage Jenkins -> Nodes -> Built-In Node -> set executors to 0 # then Manage Jenkins -> Nodes -> New Node for each agent hostЦе єдина порада щодо розміру, яку документація Jenkins проговорює прямо: виділення виконавців на контролері дозволяє збірці перевантажити його й покласти. Поставте вбудований вузол на нуль виконавців і додайте хости-агенти, які вона радить тримати універсальними та взаємозамінними, а не скроєними під конкретне завдання.
-
Підключіть агента через SSH
sudo -u jenkins ssh-keygen -t ed25519 -f /var/lib/jenkins/.ssh/agent sudo -u jenkins ssh-copy-id -i /var/lib/jenkins/.ssh/agent.pub jenkins@AGENT-HOSTДодайте приватний ключ як обліковий запис SSH Username with private key, а тоді створіть вузол методом запуску SSH. Кожне підключення агента коштує контролеру пару потоків і трохи більше за 2 МБ, тож жменя агентів не є тим, що визначає розмір контролера, - його визначають плагіни й історія завдань.
Звірено з офіційною документацією 2026-08-15 — читати першоджерело
Чим ми не є
- Ми не проєкт Jenkins. Jenkins - торгова марка Linux Foundation, а програмне забезпечення належить їм; ніщо тут ними не схвалене. Ми продаємо машину, на якій воно працює.
- Ми не супроводжуємо ваші плагіни. Саме на оновленнях плагінів ламаються інсталяції Jenkins, і людина, яка знає, котрі з ваших 60 плагінів мають значення, - на вашому боці, хоча знімок перед кожним оновленням на нашому.
- Ми не переносимо ваші завдання у складі ціни. Ми допоможемо з вікном і копією JENKINS_HOME, а решту оцінимо, якщо ви хочете, щоб це зробили за вас, а не разом із вами.
- Тут немає керованої площини керування Jenkins. Якщо ви хочете, щоб хтось інший цілком узяв на себе оновлення, чесною відповіддю є розміщений продукт CI, а це не він.
- Агенти Windows потребують ліцензій Windows Server, які ми можемо надати на сервері, але будь-яка ліцензія на інструмент, потрібний збірці, лишається вашою.
Частини, які команди виявляють запізно
- JENKINS_HOME - це вся інсталяція: конфігурація, історія завдань, облікові дані, плагіни. Зробіть із цього копію - і контролер відновлюється за годину; пропустіть - і він не відновлюється взагалі.
- Знімок перед кожним оновленням плагінів. Це зміна, яка найімовірніше кладе робочий Jenkins, а знімок перетворює її на відкат у два кліки.
- Нуль виконавців на контролері - це задокументована рекомендація, а не вподобання. Збірка, що перевантажує контролер, забирає з собою вебінтерфейс.
- Агенти мають бути взаємозамінними. Документація обстоює універсальних, замінних агентів замість одного спеціально налаштованого хоста на завдання, бо спеціально налаштований завжди виявляється тим, який саме не працює.
- Порт 8080 - не місце, щоб лишати незахищений Jenkins. Сховайте його за VPN-шлюзом або списком дозволених адрес до першого входу, а не після.
- Пам'ять контролера зростає з плагінами, кількістю завдань і історією збірок, а не з тим, наскільки важкі збірки, - це навантаження належить агентам.
Хвилини CI у провайдера проти власного runner
| Хвилини CI на боці провайдера | Раннер на DCXV | |
|---|---|---|
| За що ви платите | За кожну хвилину кожного завдання, доки існує проєкт | За фіксований місячний хост, хоч би що конвеєр робив того місяця |
| Збірка, що сповільнюється | Коштує більше кожного місяця, поки лишається повільною | Не коштує нічого більше - машина вже оплачена |
| Кеш шарів Docker | Холодний на кожному завданні, якщо ви самі його не вивантажите й не завантажите | Теплий на локальному NVMe, між завданнями і між днями |
| Паралельність | Щабель тарифу, який підвищують | Число, яке ви задаєте у власному файлі конфігурації |
| Куди потрапляє checkout | На спільний парк машин, часто в регіоні, який неможливо зафіксувати | На одну машину в Празі чи Ковільяні, за кіпрським договором |
| Вихідна адреса | Величезний спільний діапазон, який нічим не дозволити | Одна статична IPv4 з AS204057, ваша, щоб її дозволяти |
| Що може вмістити машина | Те, що випадково несе образ runner | Будь-який набір інструментів, ліцензію чи набір тестових даних, встановлений один раз |
Як це запускається на вашому хості
Скажіть, що робить конвеєр
Найважче завдання, яке ви виконуєте сьогодні, скільки їх має йти одночасно і чи збирає воно образи контейнерів. Цього досить, щоб підібрати хост без здогадок.
Ми передаємо машину
Прага чи Ковільян, доступ root і статична IPv4, менш ніж за десять хвилин. Принесіть власний образ, якщо runner уже всередині нього.
Виконайте покрокову інструкцію з цієї сторінки
Це послідовність від виробника, взята з його чинної документації, а не з допису в блозі, і на чистому хості вона займає кілька хвилин.
Зробіть знімок, а тоді додайте другий
Зробіть знімок, щойно перший конвеєр стане зеленим, щоб наступна машина була відновленням, а не побудовою з нуля. Пул росте додаванням хостів, а не роздуванням одного.
Чому обирають нас
- Сертифіковані об'єкти Tier III, SLA об'єкта 99.982%
- Власна мережа, AS204057, IPv4 та IPv6
- Підтримка 24/7/365 із середнім часом відповіді близько 10 хвилин
- Компанія на Кіпрі, юрисдикція ЄС, відповідність GDPR з 2007 року
FAQ
- Що потрібно, щоб встановити Jenkins на Ubuntu чи Debian?
Java 21 або новіша, а тоді репозиторій apt проєкту Jenkins. Встановіть fontconfig і openjdk-21-jre, додайте keyring і рядок sources для debian-stable з pkg.jenkins.io, apt install jenkins, увімкніть і запустіть службу, а тоді розблокуйте її значенням із /var/lib/jenkins/secrets/initialAdminPassword. Jenkins слухає на порту 8080. Повна послідовність є на цій сторінці
- Скільки оперативної пам'яті потрібно контролеру Jenkins?
Проєкт Jenkins свідомо відмовляється назвати число, називає підбір розміру неточною наукою і розміщує пам'ять контролера десь між 200 МБ для малої інсталяції та 70 ГБ і більше для дуже великої. Її масштабують плагіни, кількість завдань і історія збірок, а не те, наскільки важкі збірки, - бо збірки не мають виконуватися на контролері. 8 ГБ - зручний старт для невеликої команди
- Чи мають збірки виконуватися на контролері Jenkins?
Ні, і документація каже це прямо: виділяти виконавців на контролері - погана практика, бо збірка може перевантажити його процесор чи пам'ять і покласти його. Поставте вбудований вузол на нуль виконавців і додайте агентів. Проєкт також радить тримати агентів універсальними та взаємозамінними, а не кроїти окремий хост під кожне завдання
- Як робити резервну копію Jenkins?
JENKINS_HOME, тобто /var/lib/jenkins при встановленні з пакета, - це вся інсталяція: конфігурація, визначення завдань, історія збірок, облікові дані й плагіни. Зробіть із цього копію - і контролер відновлюється за годину. Кожен тариф тут містить резервну копію, а знімок перед кожним оновленням плагінів перетворює зміну, яка найімовірніше ламає Jenkins, на відкат у два кліки
- Як під'єднати агента збірок?
Звичний шлях - SSH: згенеруйте ключ від користувача jenkins, покладіть публічну половину на хост агента, додайте приватну як обліковий запис SSH і створіть вузол методом запуску SSH. Кожне підключення агента коштує контролеру пару потоків і трохи більше за 2 МБ, тож не агенти визначають розмір контролера
- Чи безпечно лишати Jenkins на порту 8080?
У відкритому інтернеті ні. Сховайте його за нашим VPN-шлюзом або обмежте порт власними адресами до першого входу, а не після - початковий пароль адміністратора лежить у файлі на сервері, який доти відповідає всьому світові. Статична IPv4 з AS204057 також спрощує дозвіл на протилежному боці
Якщо вам потрібна допомога або у вас виникли додаткові питання, будь ласка, звертайтеся до менеджерів або напишіть у службу підтримки за адресою support@dcxv.com
Готові розпочати?
Оплата щомісяця, без плати за підключення, без прив'язки