

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Modifier le nom d'hôte de votre instance AL2
<a name="set-hostname"></a>

Lorsque vous lancez une instance dans un VPC privé, Amazon EC2 attribue un nom d’hôte de système d’exploitation invité. Le type de nom d’hôte attribué par Amazon EC2 dépend des paramètres de votre sous-réseau. Pour plus d'informations sur les noms d'hôte EC2, consultez les types de noms d'hôtes des [instances Amazon EC2 dans le guide](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) de l'utilisateur Amazon *EC2*.

Un nom DNS privé Amazon EC2 typique pour une instance EC2 configurée pour utiliser la dénomination basée sur l'IP avec une IPv4 adresse ressemble à ceci : `ip-12-34-56-78.us-west-2.compute.internal` le nom comprend le domaine interne, le service (dans ce cas,`compute`), la région et une forme d'adresse privée. IPv4 Une partie de ce nom d’hôte est affiché sur l’invite shell lorsque vous vous connectez dans votre instance (par exemple, `ip-12-34-56-78`). Chaque fois que vous arrêtez et redémarrez votre instance Amazon EC2 (sauf si vous utilisez une adresse IP élastique), l' IPv4 adresse publique change, tout comme votre nom DNS public, votre nom d'hôte système et votre invite shell.

**Important**  
Ces informations s’appliquent à Amazon Linux. Pour obtenir des informations sur d’autres distributions, consultez leur documentation spécifique.

## Modifier le nom d’hôte du système
<a name="set-hostname-system"></a>

Si vous avez un nom DNS public enregistré pour l’adresse IP de votre instance (comme `webserver.mydomain.com`), vous pouvez régler le nom d’hôte du système pour que votre instance s’identifie comme une partie de ce domaine. Cela modifie également l'invite du shell afin qu'elle affiche la première partie de ce nom au lieu du nom d'hôte fourni par AWS (par exemple,`ip-12-34-56-78`). Si vous n’avez pas de nom DNS public enregistré, vous pouvez toujours changer le nom d’hôte, mais le processus est un peu différent.

Pour que la mise à jour de votre nom d’hôte persiste, vous devez vérifier que le paramètre cloud-init `preserve_hostname` est défini sur `true`. Vous pouvez exécuter la commande suivante afin de modifier ou d’ajouter ce paramètre :

```
sudo vi /etc/cloud/cloud.cfg
```

Si le paramètre `preserve_hostname` n’est pas répertorié, ajoutez la ligne de texte suivante à la fin du fichier : 

```
preserve_hostname: true
```

**Pour remplacer le nom d’hôte du système par un nom DNS public**

Suivez cette procédure si vous avez déjà un nom DNS public enregistré.

1. 
   + Pour AL2 : utilisez la **hostnamectl** commande pour définir votre nom d'hôte afin qu'il reflète le nom de domaine complet (tel que**webserver.mydomain.com**).

     ```
     [ec2-user ~]$ sudo hostnamectl set-hostname webserver.mydomain.com
     ```
   + Pour Amazon Linux AMI : Sur votre instance, ouvrez le fichier de configuration `/etc/sysconfig/network` dans votre éditeur de texte et modifiez l’entrée `HOSTNAME` pour refléter le nom de domaine complet (comme **webserver.mydomain.com**).

     ```
     HOSTNAME=webserver.mydomain.com
     ```

1. Redémarrez l’instance pour récupérer le nouveau nom d’hôte.

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

   Vous pouvez également redémarrer à l’aide de la console Amazon EC2 (sur la page **Instances**, sélectionnez l’instance et choisissez **État de l’instance**, **Redémarrer l’instance**).

1. Connectez-vous à votre instance et vérifiez que le nom d’hôte a été mis à jour. Votre invite devrait indiquer le nouveau no d’hôte (jusqu’au premier « . ») et la commande **hostname** doit afficher le nom de domaine complet.

   ```
   [ec2-user@webserver ~]$ hostname
   webserver.mydomain.com
   ```

**Pour remplacer le nom d’hôte du système sans nom DNS public**

1. 
   + Pour AL2 : utilisez la **hostnamectl** commande pour définir votre nom d'hôte afin qu'il reflète le nom d'hôte du système souhaité (par exemple). **webserver**

     ```
     [ec2-user ~]$ sudo hostnamectl set-hostname webserver.localdomain
     ```
   + Pour Amazon Linux AMI : Sur votre instance, ouvrez le fichier de configuration `/etc/sysconfig/network` dans votre éditeur de texte préféré et modifiez l’entrée `HOSTNAME` pour refléter le nom d’hôte du système souhaité (comme **webserver**).

     ```
     HOSTNAME=webserver.localdomain
     ```

1. Ouvrez le fichier `/etc/hosts` dans votre éditeur de texte préféré et modifiez l’entrée commençant par **127.0.0.1** pour correspondre à l’exemple ci-dessous, en remplaçant votre propre nom d’hôte.

   ```
   127.0.0.1 webserver.localdomain webserver localhost4 localhost4.localdomain4
   ```

1. Redémarrez l’instance pour récupérer le nouveau nom d’hôte.

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

   Vous pouvez également redémarrer à l’aide de la console Amazon EC2 (sur la page **Instances**, sélectionnez l’instance et choisissez **État de l’instance**, **Redémarrer l’instance**).

1. Connectez-vous à votre instance et vérifiez que le nom d’hôte a été mis à jour. Votre invite devrait indiquer le nouveau no d’hôte (jusqu’au premier « . ») et la commande **hostname** doit afficher le nom de domaine complet.

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

Vous pouvez également implémenter des solutions plus programmatiques, telles que la spécification des données utilisateur pour configurer votre instance. Si votre instance fait partie d’un groupe Auto Scaling, vous pouvez utiliser des hooks de cycle de vie pour définir les données utilisateur. Pour de plus amples informations, veuillez consulter les rubriques [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Exécution des commandes sur votre instance Linux lors de son lancement) et [Lifecycle hook for instance launch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-lifecyclehook.html#aws-resource-autoscaling-lifecyclehook--examples--Lifecycle_hook_for_instance_launch) (Hook de cycle de vie pour le lancement d’instance) dans le *Guide de l’utilisateur AWS CloudFormation *.

## Modifier l’invite shell sans affecter le nom d’hôte
<a name="set-hostname-shell"></a>

Si vous ne souhaitez pas modifier le nom d'hôte de votre instance, mais que vous souhaitez afficher un nom de système plus utile (tel que**webserver**) que le nom privé fourni par AWS (par exemple,`ip-12-34-56-78`), vous pouvez modifier les fichiers de configuration des invites du shell pour afficher le surnom de votre système au lieu du nom d'hôte.

**Pour remplacer l’invite shell par un pseudonyme d’hôte**

1. Créez un fichier dans `/etc/profile.d` qui définit la variable d’environnement appelée `NICKNAME` avec la valeur que vous souhaitez dans l’invite shell. Par exemple, pour définir le pseudonyme du système sur **webserver**, exécutez la commande suivante.

   ```
   [ec2-user ~]$ sudo sh -c 'echo "export NICKNAME=webserver" > /etc/profile.d/prompt.sh'
   ```

1. Ouvrez le fichier `/etc/bashrc` (Red Hat) ou `/etc/bash.bashrc` (Debian/Ubuntu) dans l’éditeur de texte de votre choix (par exemple, **vim** ou **nano**). Vous devez utiliser **sudo** avec la commande de l’éditeur, car `/etc/bashrc` et `/etc/bash.bashrc` appartiennent à `root`.

1. Modifiez le fichier et changez la variable d’invite shell (`PS1`) pour afficher votre pseudonyme au lieu du nom d’hôte. Recherchez la ligne suivante qui définit l’invite shell dans `/etc/bashrc` ou `/etc/bash.bashrc` (plusieurs lignes sont affichées ci-dessous pour illustrer le contexte ; recherchez la ligne qui commence par `[ "$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
   ```

   Modifiez `\h` (symbole de `hostname`) sur cette ligne en la valeur de la variable `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. (Facultatif) Pour définir le titre sur les fenêtres shell avec le nouveau pseudonyme, suivez les étapes suivantes.

   1. Créez un fichier nommé `/etc/sysconfig/bash-prompt-xterm`.

      ```
      [ec2-user ~]$ sudo touch /etc/sysconfig/bash-prompt-xterm
      ```

   1. Rendez le fichier exécutable avec la commande suivante.

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

   1. Ouvrez le fichier `/etc/sysconfig/bash-prompt-xterm` avec votre éditeur de texte préféré (comme **vim** ou **nano**). Vous devez utiliser **sudo** avec la commande de votre éditeur, car `/etc/sysconfig/bash-prompt-xterm` est détenu par `root`.

   1. Ajoutez la ligne suivante au fichier.

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

1. Déconnectez-vous puis reconnectez-vous pour récupérer la nouvelle valeur du pseudonyme.

## Modifier le nom d’hôte sur d’autres distributions Linux
<a name="set-hostname-other-linux"></a>

Les procédures de cette page sont destinées à une utilisation avec Amazon Linux uniquement. Pour plus d’informations sur les autres distributions Linux, consultez leur documentation spécifique et les articles suivants :
+ [Comment attribuer un nom d’hôte statique à une instance privée Amazon EC2 exécutant RHEL 7 ou Centos 7 ?](https://aws.amazon.com/premiumsupport/knowledge-center/linux-static-hostname-rhel7-centos7/)