Go to file
2025-01-14 16:56:04 +00:00
lxc-update-hosts.service Add lxc-update-hosts.service 2025-01-14 16:42:29 +00:00
readme.md Update readme.md 2025-01-14 16:55:18 +00:00
update-hosts-lxc.sh Update update-hosts-lxc.sh 2025-01-14 16:56:04 +00:00

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:

  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.1.1 e il nome del server desiderato.
  • Se la riga non esiste, lo script restituirà un errore.