Modifier le nom d’hôte de votre instance Amazon Linux - Amazon Elastic Compute Cloud

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 Amazon Linux

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 Types de noms d’hôtes des instances Amazon EC2.

Le nom DNS privé Amazon EC2 classique d’une instance EC2 configurée pour l’utilisation de l’appellation basée sur l’adresse IP avec une adresse IPv4 ressemble à ip-12-34-56-78.us-west-2.compute.internal. Le nom se compose du domaine interne, du service (dans ce cas, compute), de la région et d’une forme d’adresse IPv4 privée. 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 relancez votre instance Amazon EC2 (à moins que vous n’utilisiez une adresse IP Elastic), l’adresse IPv4 publique change, au même titre que le nom DNS public, le nom d’hôte du système et l’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

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é.

    • Pour Amazon Linux 2 : Utilisez la commande hostnamectl afin de définir votre nom d’hôte pour refléter le nom de domaine complet (comme 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).

  2. 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
    • Pour Amazon Linux 2 : Utilisez la commande hostnamectl afin de définir votre nom d’hôte pour refléter le nom d’hôte du système souhaité (comme 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
  2. 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).

  3. 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 (Exécution des commandes sur votre instance Linux lors de son lancement) et 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

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 quewebserver) 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'
  2. 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.

  3. 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
  4. (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
    2. Rendez le fichier exécutable avec la commande suivante.

      [ec2-user ~]$ sudo chmod +x /etc/sysconfig/bash-prompt-xterm
    3. 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.

    4. Ajoutez la ligne suivante au fichier.

      echo -ne "\033]0;${USER}@${NICKNAME}:${PWD/#$HOME/~}\007"
  5. 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

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 :