Installare un agente
Gli agenti (paride-agent) sono le macchine che compilano per il server: Linux, Windows o macOS,
anche più d'una, anche la stessa macchina del server. Oggi un agente si collega, si fa approvare e resta
collegato; le build arrivano con la fase F3. Installarlo già adesso serve a preparare le macchine.
Questi sono i passi per Debian 13. Con la versione 1.0 li farà il pacchetto paride-agent.
Che cosa serve
- il runtime di .NET 10, come per il server (Installare il server, passo 1); sulla macchina del server c'è già;
- la cartella del programma
paride-agent, da Download; - nome e porta del server, che ti dà l'amministratore.
L'agente gira con un suo utente, parideagent, diverso da quello del server anche sulla stessa
macchina: compilerà codice che arriva dal server, e una build non deve poter leggere i dati del server.
1. Utente e programma
sudo useradd --system --user-group --home-dir /var/lib/paride-agent --no-create-home \
--shell /usr/sbin/nologin parideagent
sudo install -d -m 0755 /usr/lib/paride-agent
sudo cp -r paride-agent/. /usr/lib/paride-agent/
sudo chown -R root:root /usr/lib/paride-agent
sudo chmod 0755 /usr/lib/paride-agent/paride-agent
2. La configurazione
L'agente legge server, porta e nome da /etc/paride-agent/paride-agent.json:
sudo install -d -m 0755 /etc/paride-agent
sudo tee /etc/paride-agent/paride-agent.json > /dev/null <<'EOF'
{"format":1,"server":"build.ufficio","port":PORTA,"name":"agent-build1","data_dir":"/var/lib/paride-agent"}
EOF
sudo chmod 0644 /etc/paride-agent/paride-agent.json
Al posto di PORTA va il numero della porta del server, lo stesso che usano i client. Il nome è come
l'agente si presenta: lettere, cifre, punto, trattino e trattino basso. Il file non contiene segreti.
3. Avvio e approvazione
# il servizio: il file paride-agent.service va distribuito insieme al programma
sudo cp /usr/lib/paride-agent/paride-agent.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now paride-agent
sudo tail /var/lib/paride-agent/log/paride-agent.log
Al primo avvio l'agente crea la sua chiave, si presenta al server e aspetta. Nel suo registro c'è il comando da dare sul server, con il codice di 6 cifre:
waiting for the approval of the administrator: on the server run «paride-server user approve agent-build1 326736»
Sul server l'amministratore controlla il codice e approva:
sudo -u parideserver paride-server user list
sudo -u parideserver paride-server user approve agent-build1 326736
sudo paride-server status # «agents connected: 1»
Pochi secondi dopo l'agente è collegato, senza riavvii.
Aggiornare e togliere
sudo systemctl stop paride-agent
sudo cp -r paride-agent/. /usr/lib/paride-agent/
sudo chmod 0755 /usr/lib/paride-agent/paride-agent
sudo systemctl start paride-agent
Prima il server, poi gli agenti. Per togliere un agente: sudo systemctl disable --now paride-agent,
poi il file del servizio e /usr/lib/paride-agent; sul server paride-server user remove NOME.
Se qualcosa non va
L'agente si ferma da solo, e systemd non lo fa ripartire, in tre casi; il motivo è in
journalctl -u paride-agent:
- la configurazione è sbagliata (una porta scritta come testo, un nome con uno spazio): si corregge il file e si riavvia;
- il server l'ha rifiutato: versioni incompatibili (va aggiornato uno dei due) o un nome già usato da un'altra macchina;
- il server ha cambiato chiave: se il server è stato davvero reinstallato, si confronta il codice
corto di
paride-server statuscon quello del registro dell'agente e si toglie la riga del server da/var/lib/paride-agent/hosts.json.
Una caduta qualunque, invece, lo fa ripartire da solo; e se il server è spento l'agente aspetta e riprova, senza errori.