Cambia il nome host della tua istanza AL2 - Amazon Linux 2

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Cambia il nome host della tua istanza AL2

Quando avvii un'istanza in un VPC privato, Amazon EC2 assegna un nome host del sistema operativo guest. Il tipo di nome host assegnato da Amazon dipende dalle EC2 impostazioni della sottorete. Per ulteriori informazioni sui EC2 nomi host, consulta i tipi di hostname delle EC2 istanze Amazon nella Amazon EC2 User Guide.

Un tipico nome DNS EC2 privato di Amazon per un' EC2 istanza configurata per utilizzare la denominazione basata su IP con un IPv4 indirizzo è simile al seguente:ip-12-34-56-78.us-west-2.compute.internal, dove il nome è composto dal dominio interno, dal servizio (in questo casocompute), dalla regione e da una forma dell'indirizzo privato. IPv4 Parte di questo nome host viene visualizzato nel prompt della shell quando esegui l'accesso all'istanza, ad esempio, ip-12-34-56-78). Ogni volta che interrompi e riavvii l' EC2istanza Amazon (a meno che tu non stia utilizzando un indirizzo IP elastico), l' IPv4 indirizzo pubblico cambia, così come il nome DNS pubblico, il nome host del sistema e il prompt della shell.

Importante

Queste informazioni si applicano ad Amazon Linux. Per informazioni su altre distribuzioni, consulta la documentazione specifica.

Modifica del nome host del sistema

Se disponi di un nome DNS pubblico registrato per l'indirizzo IP dell'istanza, ad esempio webserver.mydomain.com, puoi impostare il nome host del sistema in modo che l'istanza identifichi se stessa come appartenente a tale dominio. Ciò modifica anche il prompt della shell in modo che visualizzi la prima parte di questo nome anziché il nome host fornito da AWS (ad esempio,). ip-12-34-56-78 Se non dispone di un nome DNS pubblico registrato, puoi comunque modificare il nome host, ma il processo necessario è leggermente diverso.

Affinché l'aggiornamento del nome host persista, è necessario verificare che l'impostazione cloud-init di preserve_hostname sia impostata su true. Per modificare o aggiungere questa impostazione è possibile eseguire il seguente comando:

sudo vi /etc/cloud/cloud.cfg

Se l'impostazione preserve_hostname non è riportata, aggiungere la seguente riga di testo alla fine del file:

preserve_hostname: true
Per modificare il nome host del sistema in un nome DNS pubblico

Segui questa procedura se disponi già di un nome DNS pubblico registrato.

    • Per AL2: utilizzate il hostnamectl comando per impostare il nome host in modo che rifletta il nome di dominio completo (ad esempio). webserver.mydomain.com

      [ec2-user ~]$ sudo hostnamectl set-hostname webserver.mydomain.com
    • Per Amazon Linux AMI: nell'istanza, aprire il file di configurazione /etc/sysconfig/network nel proprio editor di testo preferito e modificare la voce HOSTNAME in base al nome di dominio completo, ad esempio webserver.mydomain.com.

      HOSTNAME=webserver.mydomain.com
  1. Riavviare l'istanza per rendere effettivo il nuovo nome host.

    [ec2-user ~]$ sudo reboot

    In alternativa, puoi riavviare utilizzando la EC2 console Amazon (nella pagina Istanze, seleziona l'istanza e scegli Instance state, Reboot instance).

  2. Eseguire l'accesso all'istanza e verificare che il nome host sia aggiornato. Il prompt deve mostrare il nuovo nome host (fino al primo ".") e il comando hostname deve mostrare il nome di dominio completo.

    [ec2-user@webserver ~]$ hostname webserver.mydomain.com
Per modificare il nome host del sistema senza un nome DNS pubblico
    • Per AL2: utilizza il hostnamectl comando per impostare il nome host in modo che rifletta il nome host di sistema desiderato (ad esempio). webserver

      [ec2-user ~]$ sudo hostnamectl set-hostname webserver.localdomain
    • Per Amazon Linux AMI: nell'istanza, aprire il file di configurazione /etc/sysconfig/network nel proprio editor di testo preferito e modificare la voce HOSTNAME in base al nome host del sistema desiderato, ad esempio webserver.

      HOSTNAME=webserver.localdomain
  1. Aprire il file /etc/hosts nel proprio editor di testo preferito e modificare la voce che inizia con 127.0.0.1 in modo che corrisponda all'esempio seguente (sostituire con il proprio nome host).

    127.0.0.1 webserver.localdomain webserver localhost4 localhost4.localdomain4
  2. Riavviare l'istanza per rendere effettivo il nuovo nome host.

    [ec2-user ~]$ sudo reboot

    In alternativa, puoi riavviare utilizzando la EC2 console Amazon (nella pagina Istanze, seleziona l'istanza e scegli Instance state, Reboot instance).

  3. Eseguire l'accesso all'istanza e verificare che il nome host sia aggiornato. Il prompt deve mostrare il nuovo nome host (fino al primo ".") e il comando hostname deve mostrare il nome di dominio completo.

    [ec2-user@webserver ~]$ hostname webserver.localdomain

Puoi anche implementare altre soluzioni programmatiche, ad esempio, specificare i dati utente per configurare l'istanza. Se l'istanza fa parte di un gruppo con scalabilità automatica, puoi utilizzare gli hook del ciclo di vita per definire i dati utente. Per maggiori informazioni, consulta Esecuzione di comandi sull'istanza Linux durante l'avvio e Hook del ciclo di vita per l'avvio delle istanze nella Guida per l'utente di AWS CloudFormation .

Modifica del prompt della shell senza ripercussioni sul nome host

Se non desideri modificare il nome host della tua istanza, ma desideri che venga visualizzato un nome di sistema più utile (ad esempiowebserver) rispetto al nome privato fornito da AWS (ad esempio,ip-12-34-56-78), puoi modificare i file di configurazione del prompt della shell per visualizzare il nickname del tuo sistema anziché il nome host.

Per modificare il prompt della shell in un nome host alternativo
  1. Creare un file in /etc/profile.d in cui sia impostata la variabile di ambiente denominata NICKNAME sul valore che si desidera visualizzare nel prompt della shell. Ad esempio, per impostare il nome alternativo del sistema su webserver, esegui il comando seguente.

    [ec2-user ~]$ sudo sh -c 'echo "export NICKNAME=webserver" > /etc/profile.d/prompt.sh'
  2. Aprire il file /etc/bashrc (Red Hat) o /etc/bash.bashrc (Debian/Ubuntu) con l'editor di testo preferito (ad esempio vim o nano). È necessario utilizzare sudo con il comando dell'editor in quanto /etc/bashrc e /etc/bash.bashrc sono di proprietà di root.

  3. Modificare il file e la variabile del prompt della shell (PS1) in modo da visualizzare il nome alternativo anziché il nome host. Cercare la seguente riga che imposta il prompt della shell in /etc/bashrc o /etc/bash.bashrc. Di seguito vengono visualizzate alcune righe circostanti per fornirne il contesto. Cercare la riga che inizia con [ "$PS1"):

    # Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " # You might want to have e.g. tty in prompt (e.g. more virtual machines) # and console windows

    Modificare \h (il simbolo per hostname) in tale riga impostando il valore della variabile NICKNAME.

    # Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@$NICKNAME \W]\\$ " # You might want to have e.g. tty in prompt (e.g. more virtual machines) # and console windows
  4. (Opzionale) Per impostare il titolo delle finestre della shell utilizzando il nuovo nome alternativo, completare la procedura seguente.

    1. Creare un file denominato /etc/sysconfig/bash-prompt-xterm.

      [ec2-user ~]$ sudo touch /etc/sysconfig/bash-prompt-xterm
    2. Rendere eseguibile il file utilizzando il seguente comando.

      [ec2-user ~]$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm
    3. Aprire il file /etc/sysconfig/bash-prompt-xterm con il proprio editor di testo preferito (ad esempio vim o nano). È necessario utilizzare sudo con il comando dell'editor in quando /etc/sysconfig/bash-prompt-xterm è di proprietà di root.

    4. Aggiungere la seguente riga al file.

      echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"
  5. Uscire e rieseguire l'accesso per rendere effettivo il nuovo valore del nome alternativo.

Modifica del nome host in altre distribuzioni Linux

Le procedure in questa pagina sono pensate per essere utilizzate solo con Amazon Linux. Per ulteriori informazioni su altre distribuzioni Linux, consulta la documentazione specifica e i seguenti articoli: