Hosting Jenkinsa, kontroler i agenci osobno
Kontroler Jenkinsa na własnej maszynie w Pradze lub Covilhã, z kompilacjami wypchniętymi na agentów, gdzie ich miejsce - to jedyna rada dotycząca doboru rozmiaru, jakiej udziela projekt Jenkins, i ta, którą większość instalacji ignoruje.
Dla kogo to jest
Jenkins, który mieszka pod czyimś biurkiem
Buduje od 2019 roku, nikt nie pamięta, które wtyczki mają znaczenie, a cały proces wydawniczy zależy od wieży z jednym dyskiem i bez kopii zapasowej.
Kontroler, który sam uruchamia kompilacje
Executory przydzielono na kontrolerze, bo tak było łatwiej, a teraz ciężkie zadanie pociąga za sobą interfejs webowy - co dokumentacja Jenkinsa nazywa złą praktyką dokładnie tymi słowami.
Zespół, który nie może przejść na hostowane CI
Dwanaście lat potoków, wtyczka, której nikt nie zastąpił, i zadanie rozmawiające ze sprzętem. Jenkins nie jest problemem; problemem jest maszyna pod spodem.
Co daje własna maszyna
- Kontroler, który pozostaje responsywny, bo kompilacje działają na agentach, a nie na tym, co serwuje interfejs webowy.
- JENKINS_HOME na NVMe z migawką przed każdą aktualizacją wtyczek, dzięki czemu wycofanie to dwa kliknięcia, a nie cały wieczór.
- Agenci dodawani jako osobne hosty i podłączani przez SSH albo protokół przychodzący, dobierani inaczej niż kontroler.
- Statyczny IPv4 z AS204057, dzięki czemu wewnętrzny rejestr, magazyn artefaktów albo cel wdrożenia może dopuścić kontroler po adresie.
- Dowolny agent, jakiego potrzebujesz obok - Linux do kompilacji, Windows Server z licencją od nas, kiedy któreś zadanie tego wymaga.
- Obiekty Tier III, kopia zapasowa w cenie i maszyna, która nie zależy od klimatyzacji w biurze.
Dobrane do tego, co potok naprawdę robi
Projekt Jenkins celowo odmawia podania jednej liczby dotyczącej sprzętu, nazywa dobór rozmiaru nauką nieścisłą i umieszcza pamięć kontrolera gdzieś między 200 MB dla małej instalacji a 70 GB i więcej dla dużej. Mówi natomiast wprost, gdzie idzie praca: nie przydzielaj executorów na kontrolerze, bo kompilacja może go przeciążyć i położyć. Dobierz więc kontroler pod interfejs, wtyczki i historię zadań, a kompilacje oddaj agentom. Jedno zastrzeżenie co do formy rozliczenia: stały miesięczny host kosztuje tyle samo w spokojnym tygodniu, gdzie hostowane minuty CI nie kosztują nic - Jenkins zwykle chodzi niemal codziennie, i właśnie wtedy to rozwiązanie wygrywa.
Jak zainstalować Jenkinsa na Debianie albo Ubuntu
Stabilna linia LTS, z własnego repozytorium projektu Jenkins, w kolejności, którą dokumentują. Java 21 albo nowsza to wymóg, a nie sugestia.
-
Zainstaluj Javę
sudo apt update sudo apt install fontconfig openjdk-21-jre java -versionJenkins wymaga Javy 21 albo nowszej. fontconfig jest w udokumentowanym poleceniu razem z nią, bo wtyczki renderujące obrazy bez niego zawodzą w mylący sposób.
-
Dodaj repozytorium LTS Jenkinsa
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 to linia LTS; sama ścieżka debian to linia tygodniowa. Klucz podpisujący jest rotowany, więc weź aktualną nazwę pliku ze strony Jenkinsa, a nie ze starszego poradnika.
-
Zainstaluj i uruchom
sudo apt update sudo apt install jenkins sudo systemctl enable jenkins sudo systemctl start jenkinsJenkins nasłuchuje na porcie 8080 i działa jako własny użytkownik jenkins, a wszystko, co istotne, leży pod /var/lib/jenkins. To ten katalog obejmujesz migawką i kopią zapasową.
-
Odblokuj pierwsze logowanie
sudo cat /var/lib/jenkins/secrets/initialAdminPasswordOtwórz serwer na porcie 8080 i wklej tę wartość. Nie zostawiaj go dostępnego dla całego internetu w trakcie konfiguracji - schowaj go za naszą bramą VPN albo najpierw ogranicz port 8080 do adresu swojego biura.
-
Zdejmij kompilacje z kontrolera
# Manage Jenkins -> Nodes -> Built-In Node -> set executors to 0 # then Manage Jenkins -> Nodes -> New Node for each agent hostTo jedyna rada dotycząca doboru rozmiaru, którą dokumentacja Jenkinsa wypowiada wprost: przydzielanie executorów na kontrolerze pozwala kompilacji go przeciążyć i wywrócić. Ustaw węzeł wbudowany na zero executorów i dodaj hosty agentów, które zaleca trzymać ogólnymi i wymiennymi, a nie szytymi pod konkretne zadanie.
-
Podłącz agenta przez 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-HOSTDodaj klucz prywatny jako poświadczenie SSH Username with private key, a potem utwórz węzeł metodą uruchamiania SSH. Każde połączenie agenta kosztuje kontroler kilka wątków i nieco ponad 2 MB, więc garstka agentów nie jest tym, co decyduje o rozmiarze kontrolera - decydują wtyczki i historia zadań.
Sprawdzone z oficjalną dokumentacją dnia 2026-08-15 — przeczytaj źródło
Czym nie jesteśmy
- Nie jesteśmy projektem Jenkins. Jenkins jest znakiem towarowym Linux Foundation, a oprogramowanie należy do nich; nic tutaj nie jest przez nich firmowane. Sprzedajemy maszynę, na której działa.
- Nie utrzymujemy Twoich wtyczek. To przy aktualizacjach wtyczek psują się instalacje Jenkinsa, a osoba, która wie, które z Twoich 60 wtyczek mają znaczenie, jest po Twojej stronie - choć migawka przed każdą aktualizacją jest po naszej.
- Nie migrujemy Twoich zadań w ramach ceny. Pomożemy z oknem i kopią JENKINS_HOME, a resztę wycenimy, jeśli chcesz, żeby to zrobiono za Ciebie, a nie razem z Tobą.
- Nie ma tu zarządzanej warstwy sterowania Jenkinsem. Jeśli chcesz, żeby ktoś inny w całości przejął aktualizacje, uczciwą odpowiedzią jest hostowany produkt CI, a to nim nie jest.
- Agenci Windows potrzebują licencji Windows Server, które możemy dostarczyć na serwerze, ale każda licencja narzędzia, której wymaga kompilacja, pozostaje Twoja.
Elementy, które zespoły odkrywają za późno
- JENKINS_HOME to cała instalacja - konfiguracja, historia zadań, poświadczenia, wtyczki. Zrób z tego kopię, a kontroler odtworzysz w godzinę; pomiń to, a nie odtworzysz go wcale.
- Migawka przed każdą aktualizacją wtyczek. To zmiana, która najczęściej kładzie działającego Jenkinsa, a migawka zamienia ją w wycofanie dwoma kliknięciami.
- Zero executorów na kontrolerze to udokumentowane zalecenie, a nie preferencja. Kompilacja, która przeciąża kontroler, zabiera ze sobą interfejs webowy.
- Agenci powinni być wymienni. Dokumentacja opowiada się za ogólnymi, zastępowalnymi agentami zamiast jednego specjalnie skonfigurowanego hosta na zadanie, bo ten specjalnie skonfigurowany zawsze jest tym, który akurat nie działa.
- Port 8080 to nie miejsce, w którym zostawia się niezabezpieczonego Jenkinsa. Schowaj go za bramą VPN albo listą dopuszczonych adresów przed pierwszym logowaniem, a nie po nim.
- Pamięć kontrolera rośnie wraz z wtyczkami, liczbą zadań i historią kompilacji, a nie z tym, jak ciężkie są kompilacje - to obciążenie należy do agentów.
Minuty CI u dostawcy kontra własny runner
| Minuty CI hostowane przez dostawcę | Runner w DCXV | |
|---|---|---|
| Za co płacisz | Za każdą minutę każdego zadania, tak długo jak projekt istnieje | Za stały miesięczny host, cokolwiek potok robi w danym miesiącu |
| Kompilacja, która zwalnia | Kosztuje więcej w każdym miesiącu, w którym pozostaje wolna | Nie kosztuje nic więcej - maszyna jest już opłacona |
| Pamięć podręczna warstw Dockera | Zimna przy każdym zadaniu, o ile sam jej nie wyślesz i nie pobierzesz | Ciepła na lokalnym NVMe, między zadaniami i między dniami |
| Równoległość | Próg planu, który się podnosi | Liczba, którą ustawiasz we własnym pliku konfiguracyjnym |
| Gdzie ląduje checkout | Na współdzielonej flocie, często w regionie, którego nie da się wskazać | Na jednej maszynie w Pradze lub Covilhã, na umowie cypryjskiej |
| Adres wychodzący | Wielki współdzielony zakres, którego nic nie dopuści | Jeden statyczny IPv4 z AS204057, Twój do dopuszczenia |
| Co maszyna może pomieścić | To, co akurat niesie obraz runnera | Dowolny łańcuch narzędzi, licencję albo zestaw danych zainstalowany raz |
Jak to rusza na Twoim hoście
Powiedz, co robi potok
Najcięższe zadanie, jakie dziś uruchamiasz, ile ich ma iść naraz i czy buduje obrazy kontenerów. To wystarczy, żeby dobrać host bez zgadywania.
Przekazujemy maszynę
Praga albo Covilhã, dostęp root i statyczny IPv4, w niecałe dziesięć minut. Przynieś własny obraz, jeśli runner już w nim siedzi.
Wykonaj instrukcję z tej strony
To sekwencja producenta, wzięta z jego aktualnej dokumentacji, a nie z wpisu na blogu, i na czystym hoście zajmuje kilka minut.
Zrób migawkę, potem dołóż drugi
Zrób migawkę, gdy pierwszy potok świeci na zielono, żeby kolejna maszyna była odtworzeniem, a nie budową od zera. Pula rośnie przez dokładanie hostów, a nie przez rozdymanie jednego.
Dlaczego nas wybrać
- Obiekty certyfikowane Tier III, SLA obiektu 99,982 %
- Własna sieć, AS204057, IPv4 i IPv6
- Wsparcie 24/7/365 ze średnim czasem odpowiedzi około 10 minut
- Spółka cypryjska, jurysdykcja UE, zgodność z RODO od 2007 roku
FAQ
- Czego potrzebuję, żeby zainstalować Jenkinsa na Ubuntu albo Debianie?
Javy 21 albo nowszej, a potem repozytorium apt projektu Jenkins. Zainstaluj fontconfig i openjdk-21-jre, dodaj keyring i wpis sources dla debian-stable z pkg.jenkins.io, apt install jenkins, włącz i uruchom usługę, a potem odblokuj ją wartością z /var/lib/jenkins/secrets/initialAdminPassword. Jenkins nasłuchuje na porcie 8080. Pełna sekwencja jest na tej stronie
- Ile pamięci RAM potrzebuje kontroler Jenkinsa?
Projekt Jenkins celowo odmawia podania liczby, nazywa dobór rozmiaru nauką nieścisłą i umieszcza pamięć kontrolera gdzieś między 200 MB dla małej instalacji a 70 GB i więcej dla bardzo dużej. Skalują ją wtyczki, liczba zadań i historia kompilacji, a nie to, jak ciężkie są kompilacje - bo kompilacje nie powinny działać na kontrolerze. 8 GB to wygodny start dla małego zespołu
- Czy kompilacje powinny działać na kontrolerze Jenkinsa?
Nie, i dokumentacja mówi to wprost: przydzielanie executorów na kontrolerze jest złą praktyką, bo kompilacja może przeciążyć jego procesor albo pamięć i go wywrócić. Ustaw węzeł wbudowany na zero executorów i dodaj agentów. Projekt zaleca też trzymać agentów ogólnymi i wymiennymi, zamiast szyć jeden host pod każde zadanie
- Jak zrobić kopię zapasową Jenkinsa?
JENKINS_HOME, czyli /var/lib/jenkins przy instalacji z pakietu, to cała instalacja: konfiguracja, definicje zadań, historia kompilacji, poświadczenia i wtyczki. Zrób z tego kopię, a kontroler odtworzysz w godzinę. Każdy plan tutaj zawiera kopię zapasową, a migawka przed każdą aktualizacją wtyczek zamienia zmianę, która najczęściej psuje Jenkinsa, w wycofanie dwoma kliknięciami
- Jak podłączyć agenta kompilacji?
Zwykłą drogą jest SSH: wygeneruj klucz jako użytkownik jenkins, umieść połowę publiczną na hoście agenta, dodaj połowę prywatną jako poświadczenie SSH i utwórz węzeł metodą uruchamiania SSH. Każde połączenie agenta kosztuje kontroler kilka wątków i nieco ponad 2 MB, więc to nie agenci decydują o rozmiarze kontrolera
- Czy bezpiecznie jest zostawić Jenkinsa na porcie 8080?
W otwartym internecie nie. Schowaj go za naszą bramą VPN albo ogranicz port do własnych adresów przed pierwszym logowaniem, a nie po nim - początkowe hasło administratora leży w pliku na serwerze, który do tego czasu odpowiada całemu światu. Statyczny IPv4 z AS204057 upraszcza też dopuszczenie po drugiej stronie
Jeśli potrzebujesz pomocy lub masz dodatkowe pytania, skontaktuj się z menedżerami lub napisz do zespołu wsparcia pod adresem support@dcxv.com
Gotowy na rozpoczęcie?
Rozliczenie miesięczne, bez opłaty aktywacyjnej, bez umowy na czas określony