2.8 KiB
2.8 KiB
Script Shell: /usr/local/lxc-scripts/update-hosts.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.
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:
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.
sudo nano /etc/systemd/system/lxc-update-hosts.service
[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:
sudo systemctl daemon-reload
Riavvia il servizio per applicare le modifiche:
sudo systemctl restart lxc-update-hosts.service
5. Verifica
Verifica che lo script stia funzionando correttamente:
- Avvia o riavvia un contenitore LXC.
- Controlla il file
/etc/hostsnel contenitore per verificare se il nome del server è stato aggiunto correttamente.
Considerazioni Finali
- Assicurati che il file
/etc/hostsoriginale contenga una riga con127.0.1.1e il nome del server desiderato. - Se la riga non esiste, lo script restituirà un errore.