diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..7289fbb --- /dev/null +++ b/readme.md @@ -0,0 +1,109 @@ +### Script Shell: `/usr/local/lxc-scripts/update-hosts.sh` + +```sh +#!/bin/bash + +# Ottieni l'indirizzo IP dell'interfaccia di rete del container +SERVER_IP=$(ip route get 8.8.8.8 | awk '/src /{split($7,a,"/"); print a[1]}') + +# Leggi il nome del server dall'elenco degli indirizzi IP locali +SERVER_NAME=$(hostname -I | awk '{for(i=1;i<=NF;i++) if ($i ~ /127\.0\.1\.1/) print $(i+1)}') + +# Controlla se SERVER_NAME è stato correttamente impostato +if [ -z "$SERVER_NAME" ]; then + echo "Errore: Nome del server non trovato nel file /etc/hosts." + exit 1 +fi + +# Aggiorna il file /etc/hosts aggiungendo la linea specificata +echo "$SERVER_IP $SERVER_NAME" > /tmp/new_hosts + +# Leggi il contenuto originale di /etc/hosts +while IFS= read -r line; do + # Ignora le righe che contengono SERVER_IP ma non SERVER_NAME + if [[ ! "$line" == *"$SERVER_IP"* ]] || [[ "$line" == *"127.0.1.1 $SERVER_NAME"* ]]; then + echo "$line" >> /tmp/new_hosts + fi +done < /etc/hosts + +# Sostituisci il file /etc/hosts con la versione aggiornata +mv /tmp/new_hosts /etc/hosts + +# Verifica che l'aggiunta sia stata effettuata correttamente +if grep -q "^$SERVER_IP $SERVER_NAME" /etc/hosts; then + echo "Hostname aggiunto correttamente." +else + echo "Errore nell'aggiunta del hostname." +fi +``` + +### Manuale per L'Utilizzo + +#### 1. Creazione dello Script + +Crea lo script `/usr/local/lxc-scripts/update-hosts-lxc.sh` con i contenuti forniti sopra. + +```sh +sudo nano /usr/local/lxc-scripts/update-hosts-lxc.sh +``` + +Incolla lo script e salva il file. + + +#### 2. Imposta le Permessi del File + +Imposta i permessi appropriati per eseguire lo script: + +```sh +sudo chmod +x /usr/local/lxc-scripts/update-hosts-lxc.sh +``` + +#### 3. Configurazione del Servizio LXC + +Crea o modifica il file di configurazione del servizio `/etc/systemd/system/lxc-update-hosts.service` con i contenuti forniti sopra. + +```sh +sudo nano /etc/systemd/system/lxc-update-hosts.service +``` + +```sh +[Unit] +Description=Update /etc/hosts for LXC container +After=lxc-container-start.target + +[Service] +Type=oneshot +ExecStart=/usr/local/lxc-scripts/update-hosts-lxc.sh +RemainAfterExit=yes + +[Install] +WantedBy=default.target +``` + +Incolla il file di servizio e salva il file. + +#### 4. Rinnova il Servizio e Riavvia + +Rinnova il servizio systemd per rileggere la configurazione del nuovo servizio: + +```sh +sudo systemctl daemon-reload +``` + +Riavvia il servizio per applicare le modifiche: + +```sh +sudo systemctl restart lxc-update-hosts.service +``` + +#### 5. Verifica + +Verifica che lo script stia funzionando correttamente: + +1. Avvia o riavvia un contenitore LXC. +2. Controlla il file `/etc/hosts` nel contenitore per verificare se il nome del server è stato aggiunto correttamente. + +### Considerazioni Finali + +- Assicurati che il file `/etc/hosts` originale contenga una riga con `127.0.0.1` e il nome del server desiderato. +- Se la riga non esiste, lo script restituirà un errore. \ No newline at end of file