Update-Hosts-LXC/readme.md
2025-01-14 16:55:18 +00:00

109 lines
2.8 KiB
Markdown

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