Хостинг Jenkins, контролер і агенти окремо

Контролер Jenkins на власній машині в Празі чи Ковільяні, зі збірками, винесеними на агентів, де їм і місце, - це єдина порада щодо розміру, яку дає проєкт Jenkins, і та, яку більшість інсталяцій ігнорує.

Сертифіковано за Tier III ISO 9001 ISO/IEC 27001 ISO 14001 Відповідає GDPR

Для кого це

Jenkins, який живе під чиїмось столом

Він збирає з 2019 року, ніхто не пам'ятає, які плагіни важливі, а весь процес випуску залежить від башти з одним диском і без резервної копії.

Контролер, що виконує власні збірки

Виконавців виділили на контролері, бо так було простіше, а тепер важке завдання тягне за собою вебінтерфейс - що документація Jenkins називає поганою практикою саме такими словами.

Команда, яка не може перейти на розміщений CI

Дванадцять років конвеєрів, плагін, якого ніхто не замінив, і завдання, що говорить із залізом. Проблема не в Jenkins; проблема в машині під ним.

Що дає власна машина

  • Контролер, який лишається чутливим, бо збірки виконуються на агентах, а не на тому, що обслуговує вебінтерфейс.
  • JENKINS_HOME на NVMe зі знімком перед кожним оновленням плагінів, тож відкат - це два кліки, а не цілий вечір.
  • Агенти, додані як окремі хости й підключені через SSH або вхідний протокол, з іншим розміром, ніж у контролера.
  • Статична IPv4 з AS204057, щоб внутрішній реєстр, сховище артефактів чи ціль розгортання могли дозволити контролер за адресою.
  • Будь-який агент, потрібний поруч, - Linux для збірок, Windows Server із ліцензією від нас, коли завдання цього вимагає.
  • Об'єкти Tier III, резервна копія у складі тарифу і машина, яка не залежить від кондиціонера в офісі.

Розмір за тим, що конвеєр робить насправді

Проєкт Jenkins свідомо відмовляється публікувати одне число щодо заліза, називає підбір розміру неточною наукою і розміщує пам'ять контролера десь між 200 МБ для малої інсталяції та 70 ГБ і більше для великої. Зате він чітко каже, куди йде робота: не виділяйте виконавців на контролері, бо збірка може перевантажити його й покласти. Тож підбирайте контролер під інтерфейс, плагіни та історію завдань, а збірки віддайте агентам. Одне застереження щодо форми оплати: фіксований місячний хост коштує так само у спокійний тиждень, коли розміщені хвилини CI не коштують нічого - але Jenkins зазвичай працює майже щодня, і саме тоді це рішення виграє.

Перший контролер
16.49
на місяць

Замовити
невелика команда, агенти згодом
2 vCPU
8 GB RAM
80 GB NVMe
1 статична IPv4
1 щотижнева резервна копія включена
Контролер з агентами
36.01
на місяць

Замовити
контролер із місцем під історію збірок
4 vCPU
16 GB RAM
240 GB NVMe
1 статична IPv4
1 щотижнева резервна копія включена
Ферма збірок
65.98
на місяць

Замовити
багато завдань, багато агентів, довга історія
8 vCPU
32 GB RAM
320 GB NVMe
1 статична IPv4
1 щотижнева резервна копія включена

Як встановити Jenkins на Debian чи Ubuntu

Стабільна лінія LTS, із власного репозиторію проєкту Jenkins, у порядку, який вони документують. Java 21 або новіша - це вимога, а не порада.

  1. Встановіть Java

    sudo apt update
    sudo apt install fontconfig openjdk-21-jre
    java -version

    Jenkins потребує Java 21 або новішої. fontconfig стоїть поруч у задокументованій команді, бо плагіни, що малюють зображення, без нього падають незрозумілим чином.

  2. Додайте репозиторій 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/null

    debian-stable - це лінія LTS; простий шлях debian - тижнева. Ключ підпису ротується, тож беріть поточну назву файлу зі сторінки Jenkins, а не зі старішого посібника.

  3. Встановіть і запустіть

    sudo apt update
    sudo apt install jenkins
    sudo systemctl enable jenkins
    sudo systemctl start jenkins

    Jenkins слухає на порту 8080 і працює від власного користувача jenkins, а все важливе лежить під /var/lib/jenkins. Саме цей каталог ви охоплюєте знімком і резервною копією.

  4. Розблокуйте перший вхід

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword

    Відкрийте сервер на порту 8080 і вставте це значення. Не лишайте його доступним усьому інтернету, поки налаштовуєте, - сховайте за нашим VPN-шлюзом або спершу обмежте порт 8080 адресою вашого офісу.

  5. Заберіть збірки з контролера

    # Manage Jenkins -> Nodes -> Built-In Node -> set executors to 0
    # then Manage Jenkins -> Nodes -> New Node for each agent host

    Це єдина порада щодо розміру, яку документація Jenkins проговорює прямо: виділення виконавців на контролері дозволяє збірці перевантажити його й покласти. Поставте вбудований вузол на нуль виконавців і додайте хости-агенти, які вона радить тримати універсальними та взаємозамінними, а не скроєними під конкретне завдання.

  6. Підключіть агента через 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Будь-який набір інструментів, ліцензію чи набір тестових даних, встановлений один раз

Як це запускається на вашому хості

1

Скажіть, що робить конвеєр

Найважче завдання, яке ви виконуєте сьогодні, скільки їх має йти одночасно і чи збирає воно образи контейнерів. Цього досить, щоб підібрати хост без здогадок.

2

Ми передаємо машину

Прага чи Ковільян, доступ root і статична IPv4, менш ніж за десять хвилин. Принесіть власний образ, якщо runner уже всередині нього.

3

Виконайте покрокову інструкцію з цієї сторінки

Це послідовність від виробника, взята з його чинної документації, а не з допису в блозі, і на чистому хості вона займає кілька хвилин.

4

Зробіть знімок, а тоді додайте другий

Зробіть знімок, щойно перший конвеєр стане зеленим, щоб наступна машина була відновленням, а не побудовою з нуля. Пул росте додаванням хостів, а не роздуванням одного.

Чому обирають нас

  • Сертифіковані об'єкти 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

Готові розпочати?

Оплата щомісяця, без плати за підключення, без прив'язки

Хмарні сервери від 15 €/міс