Servizi systemd che ricevono i segreti da Crunu
Esegui l’agente Crunu come servizio systemd in sandbox su Linux, avvia i tuoi servizi con crunu run o scrivi un file env per EnvironmentFile= con crunu pull.
- Supporto
- Funziona con Crunu oggi: il supporto per systemd fa parte del prodotto.
- Funzionalità di Crunu
- Macchine e Regole di rete
- Verificato
- Con Crunu 6.0.0 il 27 ottobre 2026
Funzionalità di Crunu che funzionano con systemd
Ogni funzionalità qui sotto funziona allo stesso modo in ogni integrazione: il server conserva testo cifrato, e solo le persone, le macchine e i token a cui concedi l’accesso possono decifrare.
Macchine
Registra un server con un codice monouso: l’agente crunu tiene i suoi ambienti in memoria e avvia i tuoi programmi con quelle variabili.
Scopri di più
Regole di rete
Fornisci il contenuto di un ambiente solo alle reti IPv4 e IPv6 consentite, con regole firmate che non possono essere allentate di nascosto.
Scopri di più
Come funziona con systemd
In questa pagina
Cosa fa Crunu con systemd
Su un server Linux, l’agente crunu gira come servizio systemd crunu-agent. Accede con le chiavi proprie della macchina, controlla il server ogni minuto, tiene gli ambienti decifrati solo in memoria e li passa a crunu run tramite un socket locale. Il tuo servizio si avvia tramite crunu run e riceve le variabili dall’agente, quindi nulla finisce su disco.
È anche così che Crunu tiene production fuori dalla CI: il server di produzione scarica da solo il proprio ambiente, e la pipeline si limita a consegnare il codice e a riavviare il servizio.
Registrare la macchina
In Crunu, apri Machines e scegli New machine. Scegli i suoi ambienti e come fornirli, poi copia il comando di installazione dalla finestra Enroll machine. Installa l’agente, controlla lo SHA-256 del binario e registra la macchina con un codice monouso letto da 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 -La finestra compila per te il codice di registrazione e i checksum. Le release dell’agente sono pubblicate su releases.crunu.com: la versione 6.0.0 ha binari per Linux e macOS, pacchetti .deb, install.sh e un manifest firmato. Su un server che gestisci tu, la finestra mostra gli indirizzi con cui quel server è configurato. Il codice è valido per 15 minuti per impostazione predefinita e si consuma la prima volta che viene presentato. crunu enroll stampa l’impronta della macchina; approva la macchina in Machines dopo aver verificato che l’impronta corrisponda.
L’installer è testato con systemd su Ubuntu 24.04, Ubuntu 22.04 e Debian 12. Viene compilato anche un pacchetto .deb per amd64 e arm64.
Avviare il servizio tramite 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/serverL’utente del servizio deve far parte del gruppo crunu, proprietario del socket dell’agente. Con --restart on-change, crunu run riavvia il tuo programma dopo che i valori sono cambiati: invia SIGTERM, poi SIGKILL se il programma non si è fermato entro il timeout di arresto, e lo riavvia con le nuove variabili. Nel log finiscono solo i nomi delle variabili cambiate. I segnali di systemd vengono inoltrati al tuo programma, e il suo codice di uscita diventa quello di crunu run.
Il programma riceve un ambiente pulito: un breve elenco di variabili consentite come PATH, HOME e LANG, più le variabili dell’ambiente.
Oppure scrivere un file per EnvironmentFile=
Se una unit deve leggere le variabili da un file, crunu pull può scriverle come unico file env con permessi 0600:
crunu pull --env payments-api/production --env-out /etc/payments-api/envPunta la direttiva EnvironmentFile= della unit a quel percorso. I valori sono allora su disco, leggibili da root e dal proprietario del file, e Crunu non rimuove il file in seguito. Quando puoi, preferisci crunu run.
Come è protetto il servizio dell’agente
- La unit gira come utente
crunusenza capability, conProtectSystem=strict, una home di sola lettura,/tmpe dispositivi privati, e unSystemCallFilterlimitato alle normali chiamate di un servizio. - I core dump sono disattivati, e su Linux l’agente è protetto dagli altri processi dello stesso utente.
- I file di stato vengono scritti in modo atomico. L’agente registra lo stato verificato più recente prima di fornirlo, così dopo un riavvio il server non può riportarlo indietro di nascosto.
Gestione
sudo systemctl enable --now crunu-agent
sudo systemctl kill -s HUP crunu-agent
crunu statusIl primo comando avvia l’agente una volta registrata la macchina. SIGHUP gli fa controllare il server subito invece che al minuto successivo. crunu status mostra la macchina, la sua organizzazione e le impronte, il lease e ogni ambiente.
Se il server non è raggiungibile, l’agente fornisce l’ultimo stato verificato fino alla fine del lease, 24 ore per impostazione predefinita. Dopo la revoca della macchina, cancella i suoi ambienti dalla memoria entro pochi minuti, mentre è online.
Correlati
Dubbi frequenti
Non trovi la risposta? Scrivi a support@crunu.com e ti risponderà una persona.
I segreti vengono scritti su disco?
Non con crunu run: l’agente tiene gli ambienti in memoria e li passa tramite un socket locale. crunu pull --env-out scrive un file solo quando lo chiedi.
Cosa succede se il server non è raggiungibile?
L’agente fornisce l’ultimo stato verificato fino alla fine del suo lease, 24 ore per impostazione predefinita.
Il servizio gira su macOS?
No. Il servizio in background è solo per Linux. Su macOS, crunu funziona come strumento da riga di comando.