

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
<a name="set-hostname"></a>

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 EC2 dipende dalle impostazioni della sottorete. Per ulteriori informazioni sui nomi host EC2, consulta i tipi di hostname delle [istanze Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) nella Amazon *EC2* User Guide.

Un tipico nome DNS privato di Amazon EC2 per un'istanza EC2 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 caso`compute`), 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 si arresta e si riavvia l'istanza Amazon EC2 (a meno che non si utilizzi 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
<a name="set-hostname-system"></a>

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.

1. 
   + 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 usando la console Amazon EC2 (nella pagina **Instances (Istanze)**, seleziona l'istanza e scegli **Instance state (Stato istanza)**, **Reboot instance [Riavvia istanza]**).

1. 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**

1. 
   + Per AL2: utilizzare 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
   ```

1. Riavviare l'istanza per rendere effettivo il nuovo nome host.

   ```
   [ec2-user ~]$ sudo reboot
   ```

   In alternativa puoi riavviare usando la console Amazon EC2 (nella pagina **Instances (Istanze)**, seleziona l'istanza e scegli **Instance state (Stato istanza)**, **Reboot instance [Riavvia istanza]**).

1. 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](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) e [Hook del ciclo di vita per l'avvio delle istanze](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#aws-resource-autoscaling-lifecyclehook--examples--Lifecycle_hook_for_instance_launch) nella *Guida per l'utente di AWS CloudFormation *.

## Modifica del prompt della shell senza ripercussioni sul nome host
<a name="set-hostname-shell"></a>

Se non desiderate modificare il nome host della vostra istanza, ma desiderate che venga visualizzato un nome di sistema più utile (ad esempio**webserver**) rispetto al nome privato fornito da AWS (ad esempio,`ip-12-34-56-78`), potete modificare i file di configurazione del prompt della shell per visualizzare il nickname del 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'
   ```

1. 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`.

1. 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
   ```

1. (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
      ```

   1. Rendere eseguibile il file utilizzando il seguente comando.

      ```
      [ec2-user ~]$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm
      ```

   1. 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`.

   1. Aggiungere la seguente riga al file.

      ```
      echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"
      ```

1. Uscire e rieseguire l'accesso per rendere effettivo il nuovo valore del nome alternativo.

## Modifica del nome host in altre distribuzioni Linux
<a name="set-hostname-other-linux"></a>

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:
+ [How do I assign a static hostname to a private Amazon EC2 instance running RHEL 7 or Centos 7? (Come si assegna un nome host statico a un'istanza di Amazon EC2 privata eseguita in RHEL 7 o Centos 7?)](https://aws.amazon.com/premiumsupport/knowledge-center/linux-static-hostname-rhel7-centos7/)