PARIDEEnglish

PARIDE › Guide d'uso › Installare un agente

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 status con 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.