Usługi systemd, które pobierają sekrety z Crunu
Uruchom agenta Crunu jako izolowaną usługę systemd na Linuksie, startuj swoje usługi przez crunu run albo zapisz plik env dla EnvironmentFile= przez crunu pull.
- Obsługa
- Działa z Crunu już dziś: obsługa systemd jest częścią produktu.
- Funkcje Crunu
- Maszyny i Reguły sieciowe
- Sprawdzono
- Z wersją Crunu 6.0.0, 27 października 2026
Funkcje Crunu, które działają z systemd
Każda z poniższych funkcji działa tak samo w każdej integracji: serwer przechowuje zaszyfrowane dane, a odszyfrować je mogą tylko osoby, maszyny i tokeny, którym dasz dostęp.
Maszyny
Zarejestruj serwer jednorazowym kodem, a agent crunu trzyma jego środowiska w pamięci i uruchamia z nimi twoje programy.
Dowiedz się więcej
Reguły sieciowe
Wydawaj zawartość środowiska tylko dozwolonym sieciom IPv4 i IPv6, z podpisanymi regułami, których nie da się po cichu złagodzić.
Dowiedz się więcej
Jak to działa z systemd
Na tej stronie
Co Crunu robi z systemd
Na serwerze z Linuksem agent crunu działa jako usługa systemd crunu-agent. Loguje się własnymi kluczami maszyny, sprawdza serwer co minutę, trzyma odszyfrowane środowiska tylko w pamięci i przekazuje je crunu run przez lokalne gniazdo. Twoja usługa startuje przez crunu run i dostaje zmienne od agenta, więc nic nie trafia na dysk.
W ten sposób Crunu trzyma też production z dala od CI: serwer produkcyjny sam pobiera swoje środowisko, a potok tylko dostarcza kod i restartuje usługę.
Rejestracja maszyny
W Crunu otwórz Machines i wybierz New machine. Wybierz jej środowiska i sposób dostarczania, a potem skopiuj polecenie instalacji z okna Enroll machine. Instaluje ono agenta, sprawdza SHA-256 pliku binarnego i rejestruje maszynę jednorazowym kodem odczytywanym ze stdin:
printf '%s\n' 'crunu_enr_…' | sudo sh install.sh --version 6.0.0 --sha256 amd64=<sum> --sha256 arm64=<sum> --base-url https://releases.crunu.com/6.0.0 --server https://app.crunu.com --enroll -Okno samo wpisuje kod rejestracji i sumy kontrolne. Wydania agenta są publikowane na releases.crunu.com: wersja 6.0.0 ma pliki binarne dla Linuksa i macOS, pakiety .deb, install.sh i podpisany manifest. Na serwerze, który prowadzisz samodzielnie, okno pokazuje adresy skonfigurowane na tym serwerze. Kod jest domyślnie ważny 15 minut i zużywa się przy pierwszym przedstawieniu. crunu enroll wypisuje odcisk klucza maszyny; zatwierdź maszynę w Machines, gdy sprawdzisz, że odcisk się zgadza.
Instalator jest testowany z systemd na Ubuntu 24.04, Ubuntu 22.04 i Debianie 12. Budowany jest też pakiet .deb dla amd64 i arm64.
Uruchamianie usługi przez crunu run
# /etc/systemd/system/payments-api.service
[Service]
User=payments
ExecStart=/usr/local/bin/crunu run --env payments-api/production --restart on-change -- /opt/payments-api/bin/serverUżytkownik usługi musi należeć do grupy crunu, do której należy gniazdo agenta. Z --restart on-change polecenie crunu run uruchamia twój program ponownie po zmianie wartości: wysyła SIGTERM, a potem SIGKILL, jeśli program nie zatrzymał się w czasie przewidzianym na zatrzymanie, i uruchamia go ponownie z nowymi zmiennymi. Do dziennika trafiają tylko nazwy zmienionych zmiennych. Sygnały od systemd są przekazywane twojemu programowi, a jego kod wyjścia staje się kodem wyjścia crunu run.
Program dostaje czyste środowisko: krótką listę dozwolonych zmiennych, takich jak PATH, HOME i LANG, oraz zmienne środowiska Crunu.
Albo plik dla EnvironmentFile=
Jeśli jednostka ma odczytywać zmienne z pliku, crunu pull może zapisać je jako jeden plik env z uprawnieniami 0600:
crunu pull --env payments-api/production --env-out /etc/payments-api/envWskaż tę ścieżkę w EnvironmentFile= jednostki. Wartości są wtedy na dysku, czytelne dla roota i właściciela pliku, a Crunu nie usuwa później tego pliku. Gdy możesz, wybieraj crunu run.
Jak zabezpieczona jest usługa agenta
- Jednostka działa jako użytkownik
crunubez uprawnień (capabilities), zProtectSystem=strict, katalogiem domowym tylko do odczytu, prywatnymi/tmpi urządzeniami orazSystemCallFilterograniczonym do zwykłych wywołań usługi. - Zrzuty pamięci są wyłączone, a na Linuksie agent jest odizolowany od innych procesów tego samego użytkownika.
- Pliki stanu są zapisywane atomowo. Agent zapisuje najnowszy zweryfikowany stan, zanim go wyda, więc po restarcie serwer nie może go po cichu cofnąć.
Obsługa
sudo systemctl enable --now crunu-agent
sudo systemctl kill -s HUP crunu-agent
crunu statusPierwsze polecenie uruchamia agenta, gdy maszyna jest już zarejestrowana. SIGHUP sprawia, że agent sprawdza serwer od razu, a nie w następnej minucie. crunu status pokazuje maszynę, jej organizację i odciski kluczy, dzierżawę i każde środowisko.
Jeśli serwer jest nieosiągalny, agent wydaje ostatni zweryfikowany stan do końca dzierżawy, domyślnie przez 24 godziny. Po odebraniu dostępu maszynie agent, o ile jest online, usuwa jej środowiska z pamięci w ciągu kilku minut.
Zobacz także
Odpowiedzi na pytania
Nie ma tu odpowiedzi? Napisz na support@crunu.com, a odpowie ci człowiek.
Czy sekrety są zapisywane na dysku?
Nie przy crunu run: agent trzyma środowiska w pamięci i przekazuje je przez lokalne gniazdo. crunu pull --env-out zapisuje plik tylko wtedy, gdy o to poprosisz.
Co się dzieje, gdy serwer jest nieosiągalny?
Agent wydaje ostatni zweryfikowany stan do końca dzierżawy, domyślnie przez 24 godziny.
Czy usługa działa na macOS?
Nie. Usługa w tle działa tylko na Linuksie. Na macOS crunu działa jako narzędzie wiersza poleceń.