Ci sono diversi modi per gestire l’indirizzo IP e il nome host del tuo computer Ubuntu. Gli amministratori di sistema hanno a disposizione gli strumenti nmcli, netplan, hostname e hostnamectl. Sebbene questi strumenti siano efficaci da soli, come puoi utilizzarli per migliorare l’automazione?
Puoi creare uno script Bash che si occupi della configurazione per te. In questo articolo imparerai come impostare un nuovo nome host e configurare le informazioni sull’indirizzo IP, tutto con uno script Bash che accetta input.
Ogni esempio si baserà sull’altro. Alla fine dell’articolo, avrai le conoscenze necessarie per creare uno script di configurazione completamente funzionale in Bash da utilizzare su un host Ubuntu nuovo o esistente.
Prerequisiti
Non è necessario essere esperti nello scripting della shell Bash per seguire questo tutorial, ma assicurati di soddisfare i seguenti requisiti.
- A host running on Ubuntu. This tutorial uses Ubuntu 22.04 LTS.
- Privilegi di root sull’host Ubuntu.
- A text editor, such as
vim
,nano
, or VSCode.
Impostazione del nome host con hostnamectl
Ogni host dovrebbe avere un nome univoco. Utilizzando il comando hostnamectl puoi interrogare o cambiare il nome host. In questo caso, la sintassi è come mostrato di seguito per cambiare il nome host corrente con quello desiderato.
Eseguire il comando hostnamectl con il parametro comune set-hostname seguito da un valore di stringa tra virgolette (“”) come nuovo nome host. Se stessi eseguendo questo comando manualmente, dovrebbe funzionare senza problemi.
Ma cosa succede se vuoi inserirlo in uno script che accetta l’input dell’utente? Inizia utilizzando il comando read, seguito dal parametro -p, che sta per prompt, e una stringa per indicare all’utente cosa inserire per questo prompt. Successivamente, salvi l’input in una nuova variabile chiamata NEW_HOSTNAME.
Una volta che il nome host è memorizzato nella variabile NEW_HOSTNAME, puoi fornire la variabile al comando hostnamectl come nell’esempio seguente.
E questo è tutto! Combinando questi due comandi in una sola riga consente al tuo script di funzionare! Ma hai un compito aggiuntivo: configurare le opzioni di rete.
Impostare le informazioni sull’indirizzo IP con netplan
Il comando netplan è il metodo de facto per gestire le informazioni sull’indirizzo IP di un’interfaccia di rete per gli host Ubuntu moderni. Lo strumento netplan astrae le configurazioni di rete da vari backend utilizzando file di configurazione YAML.
Lo strumento netplan legge questi file di configurazione durante l’avvio del sistema e li applica alle interfacce di rete di destinazione. Ma perché è importante, potresti chiederti?
Avere la configurazione della tua rete in YAML ti permette di iniziare a salvare o fare il backup della tua configurazione in un repository Git. E poiché Git fornisce capacità di tracciamento delle modifiche, puoi utilizzare lo stesso file di configurazione senza doverlo ricreare per le distribuzioni future utilizzando i pipeline CI / CD. Sai, DevOps!
Prima di aggiungere righe a un file di configurazione, devi creare il file di configurazione utilizzando il comando touch.
Il comando sopra posizionerà il nuovo file di configurazione nella tua directory home. Da qui, eseguirai il comando echo per eco ciò che scrivi e iniettare quello nel file di configurazione riga per riga utilizzando la ridirezione dell’input per STDOUT > (aggiungi) e >> (aggiungi).
Nota: Utilizza doppi spazi e non tabulazioni per l’indentazione in YAML.
Con ogni comando echo, costruisci la configurazione YAML utilizzando gli spazi appropriati ridirigendo l’input utilizzando STDOUT. In alternativa, potresti costruire questo file manualmente utilizzando un editor di testo. Ma non è necessario costruire il file manualmente.
Invece, chiedi all’utente di inserire le informazioni sull’indirizzo IP di cui hai bisogno utilizzando lo stesso comando read
.
Suggerimento: Un modo per elencare tutte le informazioni sull’interfaccia di rete su Ubuntu è eseguire il comando ip address.
Questo è meglio. Ora puoi reindirizzare nuovamente l’input dell’utente a diverse variabili per l’uso in uno script.
Ci sono molte altre proprietà che puoi impostare che questo tutorial non copre in dettaglio. Se desideri vedere ulteriori proprietà comuni, assicurati di leggere le pagine man di netplan.
Con le opzioni di rete completate, è ora di costruire un singolo script!
Mettendo Tutto Insieme in uno Script Bash
Ora, combinerai tutto in un unico script Bash con ciò che hai appreso dalle sezioni precedenti. Apri l’editor di tua scelta, incolla il codice qui sotto e salva il file come ~/host_deploy.sh
.
Per eseguire lo script, esegui il comando sottostante per richiamare lo script con bash
nel tuo terminale.
Lo script ti richiede di inserire un nuovo nome host e informazioni sull’indirizzo IP e ti ricorda di riavviare l’host affinché le modifiche abbiano effetto.
Ora che hai uno script funzionante nella tua directory utente, potresti creare un’immagine golden da riutilizzare o condividere con tecnici e coloro che eseguono regolarmente questo compito.
Conclusione
Congratulazioni! Sei arrivato alla fine dell’articolo e hai costruito uno script Bash completamente funzionale che puoi utilizzare ripetutamente.
Potresti anche provare ad utilizzare questo script con Ansible e rispondere alle domande utilizzando un play di Ansible. I compiti in questo tutorial sono solo un piccolo esempio di elementi di configurazione iniziali che potresti iniziare ad utilizzare nei tuoi script di creazione e distribuzione.
Ora sai come accettare l’input dell’utente, impostare parametri di sistema di base utilizzando uno script Bash e applicare questa tecnica per cambiare nomi host e indirizzi IP in Ubuntu Linux.
Source:
https://adamtheautomator.com/change-linux-ip-hostname-bash-script/