Installare B3 e metterlo come servizio

Qualsiasi cosa inseritela qui
Rispondi
Avatar utente
Matteo
Admin
Admin
Messaggi: 49
Iscritto il: venerdì 5 novembre 2021, 11:10

Installare B3 e metterlo come servizio

Aggiornamento del sistema e installazione dipendenze

Codice: Seleziona tutto

sudo apt update

Codice: Seleziona tutto

sudo apt install git python2 python2-dev curl

Codice: Seleziona tutto

sudo curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py

Codice: Seleziona tutto

sudo python2 get-pip.py

Codice: Seleziona tutto

sudo pip2 install -r /root/requirements.txt
python2 serve perché B3 legacy gira su Python 2.7
python2-dev e python2-pip servono per eventuali moduli aggiuntivi o plugin

2️⃣ Creazione della cartella di B3

Codice: Seleziona tutto

sudo useradd -r -m -d /opt/b3 -s /usr/sbin/nologin b3
-r = utente di sistema
-m -d /opt/b3 = usa /opt/b3 come home
-s /usr/sbin/nologin = non può fare login interattivo

Codice: Seleziona tutto

sudo mkdir -p /opt/b3

Codice: Seleziona tutto

sudo chown -R b3:b3 /opt/b3

Codice: Seleziona tutto

cd /opt/b3
3️⃣ Clonare B3 dal repository ufficiale

Codice: Seleziona tutto

git clone https://github.com/BigBrotherBot/big-brother-bot.git .
Clona tutto il codice direttamente in /opt/b3

4️⃣ Installazione di B3

Codice: Seleziona tutto

python2 setup.py install --prefix=/usr/local
Questo installa i moduli Python necessari globalmente (in /usr/local)
In alternativa puoi usare virtualenv, ma per semplicità globale va bene così

5️⃣ Configurazione dei file XML per i server
Vai nella cartella di configurazione:

Codice: Seleziona tutto

cd /opt/b3/b3/conf
Crea il file di configurazione per ogni server LinuxGSM, ad esempio:

Codice: Seleziona tutto

b3_cod4.xml      # per cod4server
b3_sof2.xml      # per sof2server
b3_cod2.xml      # ecc.
Nei file XML assicurati di impostare:

Codice: Seleziona tutto

<game> → parser corretto (cod4x18 per CoD4X, sof2 per SoF2 ecc.)

<rcon_ip> e <rcon_port> → RCON del server

<rcon_password> → password RCON

<logfile> → percorso log del server LinuxGSM (~/serverfiles/main/games_mp.log)
6️⃣ Creazione della unit template systemd

Crea /etc/systemd/system/b3@.service:

Codice: Seleziona tutto

nano /etc/systemd/system/b3@.service
incolla:

Codice: Seleziona tutto

[Unit]
Description=Big Brother Bot - %i
After=network.target

[Service]
User=b3
WorkingDirectory=/opt/b3
ExecStart=/usr/bin/python2 /opt/b3/b3_run.py --restart -c /opt/b3/b3/conf/b3_%i.xml
Restart=always
RestartSec=5
LimitNOFILE=4096
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

%i prende il nome dell’istanza quando avvii b3@cod4 o b3@sof2

RestartSec=5 evita che systemd riavvii troppo velocemente se c’è un crash

LimitNOFILE aumenta il numero massimo di file descriptor (utile se B3 gestisce molte connessioni)

7️⃣ Ricaricare systemd e abilitare le istanze

Codice: Seleziona tutto

sudo systemctl daemon-reload

Codice: Seleziona tutto

sudo systemctl enable b3@cod4   # parte al boot
sudo systemctl enable b3@sof2   # se hai altri server
8️⃣ Avviare, fermare e controllare B3

Avviare:

Codice: Seleziona tutto

sudo systemctl start b3@cod4
Fermare:

Codice: Seleziona tutto

sudo systemctl stop b3@cod4
Riavviare:

Codice: Seleziona tutto

sudo systemctl restart b3@cod4
Stato:

Codice: Seleziona tutto

sudo systemctl status b3@cod4 -l
Log live:

Codice: Seleziona tutto

sudo journalctl -u b3@cod4 -f
9️⃣ Test manuale (opzionale)

Se vuoi vedere eventuali errori di configurazione prima di systemd:

Codice: Seleziona tutto

sudo -u cod4server /usr/bin/python2 /opt/b3/b3_run.py --restart -c /opt/b3/b3/conf/b3_cod4.xml
Questo ti mostra direttamente eventuali problemi di XML, RCON o logfile

10️⃣ Consiglio finale

Per aggiungere altri server basta creare il file XML corrispondente (b3_sof2.xml) e avviare l’istanza:

Codice: Seleziona tutto

sudo systemctl start b3@sof2

Tutte le istanze possono girare indipendentemente, con lo stesso utente dei rispettivi server LinuxGSM.
Rispondi