Comment attribuer un nom d'hôte statique à une instance privée EC2 exécutant SLES ?

Date de la dernière mise à jour : 20/02/2020

J'ai modifié le nom d'hôte de mon instance privée Amazon Elastic Compute Cloud (Amazon EC2). Mais lorsque je redémarre ou que j'arrête, puis redémarre l'instance, le nouveau nom d'hôte revient au nom d'hôte précédemment attribué. Comment résoudre ce problème ?

Courte description

Les noms d'hôte d'instance EC2 sont dérivés de l'adresse IP qui est attribuée dynamiquement à l'instance au démarrage. Lorsque vous modifiez le nom d'hôte d'une instance privée EC2 Linux à l'aide de la commande hostname le nom d'hôte ne persiste pas si vous redémarrez, ou si vous arrêtez, puis redémarrez l'instance. Si vous souhaitez que le nouveau nom d'hôte persiste entre les arrêts et les démarrages de l'instance, ou redémarre, ajoutez le nouveau nom d'hôte aux fichiers de configuration appropriés sur votre instance EC2 Linux.

Solution

1.    Connectez-vous à votre instance Linux EC2 à l'aide de SSH. Pour plus d'informations, consultez Connexion à votre instance Linux à l'aide de SSH.

2.    Basculez vers l'utilisateur racine.

sudo su

3.    Utilisez l'interface YaST ou mettez à jour manuellement votre instance SLES Linux avec le nouveau nom d'hôte.

Mise à jour de l'interface YaST

1.    Exécutez la commande yast pour lancer l'interface YaST.

yast

2.    Accédez à Network Settings (Paramètres réseau).

SLES 11 :

Utilisez les touches Tab et directionnelles pour accéder à Network Devices (Appareils réseau), puis à Network Settings, puis appuyez sur Entrée.

SLES 12 et SLES 15 :

Utilisez les touches Tab et directionnelles pour accéder à System (Système), puis Network Settings, puis appuyez sur Entrée.

3.    Dans Network Settings, utilisez les touches directionnelles pour accéder à Hostname/DNS (Nom d'hôte/DNS) et utilisez la combinaison Tab et Maj+Tab pour parcourir les options disponibles.

4.    Définissez le nom d'hôte et le nom de domaine.

SLES 11 et SLES 12 :

Sélectionnez et définissez le nom d'hôte et le nom de domaine sur les valeurs préférées.

SLES 15 :

Sélectionnez et définissez le nom d'hôte sur les valeurs préférées.

5.    Définissez la valeur Change Hostname via DHCP (Modifier le nom d'hôte via DHCP) sur non ou effacez la valeur.

SLES 11 :

Accédez à Change Hostname via DHCP, puis appuyez sur la barre d'espace pour désactiver cette option.

SLES 12 et SLES 15 :

Vérifiez que l'option Set Hostname via DHCP (Définir le nom d'hôte via DHCP) est définie sur no.

6.    Utilisez la touche Tab pour accéder à [OK], puis appuyez sur Entrée pour accepter les modifications.

7.    Utilisez la touche Tab pour accéder à [Quit], puis appuyez sur Entrée pour quitter YaST.

8.    Utilisez l'éditeur vim pour mettre à jour le fichier /etc/cloud/cloud.cfg sur votre instance SLES Linux.

vim /etc/cloud/cloud.cfg

9.    Recherchez la chaîne preserve_hostname et modifiez le paramètre par défaut sur true afin que le nom d'hôte soit préservé entre les redémarrages.

preserve_hostname: true

10.    Enregistrez et quittez l'éditeur vim en appuyant sur Maj + : (deux-points) pour ouvrir une nouvelle zone de saisie de commande dans l'éditeur vim. Tapez wq, puis appuyez sur Entrée pour enregistrer les modifications et quitter vim.

11.    Redémarrez l'instance.

sudo reboot

12.    Connectez-vous à votre instance EC2, puis exécutez la commande Linux hostname sans aucun paramètre pour vérifier que le nom d'hôte modifié a été conservé.  

hostname

La commande doit renvoyer le nouveau nom d'hôte.

Mise à jour manuelle

1.    Utilisez la commande hostnamectl pour définir le nouveau nom d'hôte. Remplacez new-hostname par votre nom d'hôte.

SLES 11 :

hostname new-hostname

SLES 12 et SLES 15 :

hostnamectl set-hostname new-hostname

2.    Utilisez l'éditeur vim pour mettre à jour le fichier /etc/hosts avec le nouveau nom d'hôte.  

vim /etc/hosts

3.    Recherchez la chaîne localhost et ajoutez le nouveau nom d'hôte, en remplaçant new-hostname par votre nom d'hôte.

127.0.0.1 localhost new-hostname

4.    Enregistrez et quittez l'éditeur vim en appuyant sur Maj + : (deux-points) pour ouvrir une nouvelle zone de saisie de commande dans l'éditeur vim, tapez wq, puis appuyez sur Entrée pour enregistrer les modifications et quitter vim.

SLES 11 (étape supplémentaire pour cette version du système d'exploitation uniquement)

Utilisez l'éditeur vim pour mettre à jour le fichier /etc/HOSTNAME avec le nouveau nom d'hôte.

vim /etc/HOSTNAME

Recherchez la chaîne de nom d'hôte actuelle et remplacez-la par le nouveau nom d'hôte.

Appuyez sur Maj + : (deux-points) pour ouvrir une nouvelle zone de saisie de commande dans l'éditeur vim, tapez wq, puis appuyez sur Entrée pour enregistrer les modifications et quitter vim.

5.    Utilisez l'éditeur vim pour mettre à jour le fichier /etc/cloud/cloud.cfg sur votre instance SLES Linux.  

vim /etc/cloud/cloud.cfg

6.    Recherchez la chaîne preserve_hostname et modifiez le paramètre par défaut sur true afin que le nom d'hôte soit préservé entre les redémarrages.

preserve_hostname: true

7.    Enregistrez et quittez l'éditeur vim en appuyant sur Maj + : (deux-points) pour ouvrir une nouvelle zone de saisie de commande dans l'éditeur vim. Tapez wq, puis appuyez sur Entrée pour enregistrer les modifications et quitter vim.

8.    Redémarrez l'instance.

sudo reboot

9.    Connectez-vous à votre instance EC2, puis exécutez la commande Linux hostname sans aucun paramètre pour vérifier que le nom d'hôte modifié a été conservé.  

hostname

La commande renvoie le nouveau nom d'hôte.