Avant de commencer, essayez d'exécuter hostname
et hostname --fqdn
et prenez note des réponses.
Vous pouvez modifier /etc/hostname
et définir un nom d'hôte, qui sera conservé après le redémarrage. Vous pouvez forcer le nom d'hôte à être "rechargé" en utilisant la commande hostname -F /etc/hostname
pour lire cette valeur dans le nom d'hôte. L'invite bash changera après que vous vous soyez déconnecté et connecté.
avertissement / note :
Oui, c'est bien d'avoir le nom d'hôte dans l'invite bash avec quelque chose de plus utile que ip-123-123-123-123
mais j'ai décidé de laisser le mien (du moins pour l'instant) parce qu'il semble que beaucoup de choses comptent vraiment sur le fait que le nom d'hôte des instances ec2 soit défini de manière standard. Après avoir édité /etc/hostname
et en changeant le nom d'hôte en webserver
beaucoup de services semblent échouer parce que le nom d'hôte ne se résout pas, et apache ne démarre pas. Ensuite, j'ai modifié /etc/hosts
et ajouté dans
127.0.0.1 webserver
comme deuxième ligne. Apache a alors démarré mais s'est plaint de ne pas pouvoir trouver le FQDN. J'ai confirmé que l'exécution de hostname --fqdn
ne fonctionnait plus.
Ensuite, j'ai consulté man hostname
et j'ai appris que si l'on peut régler le hostname
il apparaît que le FQDN
est ce qui est renvoyé par une recherche DNS.
LE FQDN
Vous ne pouvez pas modifier le FQDN (tel que renvoyé par hostname --fqdn) ou le nom de domaine DNS (tel que renvoyé par dnsdomainname) avec cette commande. Le FQDN du système est le nom que le resolver(3) renvoie pour le nom d'hôte.
Techniquement : Le FQDN est le nom que getaddrinfo(3) renvoie pour le nom d'hôte renvoyé par gethostname(2). Le nom de domaine DNS est la partie après le premier point.
Par conséquent, la façon dont vous pouvez le modifier dépend de la configuration (généralement dans /etc/host.conf). Habituellement (si le fichier hosts est analysé avant DNS ou NIS), vous pouvez le modifier dans /etc/hosts.
Je pense qu'il pourrait être possible de configurer le système / de tromper le système pour qu'il renvoie le FQDN, quelque chose comme ip-123-123-123-123.ec2.internal
même si le nom d'hôte est webserver
mais à ce stade, il m'a semblé qu'il y avait plus de problèmes que cela n'en valait la peine, et que pour moi, avoir une invite bash plus agréable pourrait causer beaucoup de problèmes de logiciels et de configuration sur la route, alors j'ai décidé d'abandonner.
J'ai aussi appris que beaucoup d'instances amazon ec2 utilisent quelque chose appelé cloud-init :
cloud-init est le paquet Ubuntu qui gère l'initialisation précoce d'une instance de nuage. Il est installé dans les images Ubuntu Cloud et également dans les images Ubuntu officielles disponibles sur EC2.
Certaines des choses qu'il configure sont :
- définir une locale par défaut
- paramétrage du nom d'hôte
- générer des clés privées ssh
- ajout de clés ssh au fichier .ssh/authorized_keys de l'utilisateur pour qu'il puisse se connecter
- mise en place de points de montage éphémères
Le comportement de cloud-init peut être configuré via les données utilisateur. Les données utilisateur peuvent être fournies par l'utilisateur au moment du lancement de l'instance. Ceci est fait via l'argument --user-data ou --user-data-file de ec2-run-instances.
J'ai aussi trouvé ceci qui explique comment le nom d'hôte est configuré avec cloud-init :
Sur les instances EBS, un arrêt et un démarrage ultérieur se traduiraient par une adresse IP différente.
Dans le cas où l'utilisateur n'a pas modifié /etc/hostname par rapport à sa valeur d'origine (déterminée par le 'local-hostname' des métadonnées), cloud-init définit à nouveau le nom d'hôte et met à jour /etc/hostname.
Dans le cas où l'utilisateur a modifié /etc/hostname, celui-ci restera géré par l'utilisateur.
En outre, si le fichier /etc/cloud/cloud.cfg contient la valeur 'preserve_hostname' définie sur True, le fichier /etc/hostname ne sera jamais modifié.
Il est intéressant de noter que si vous ne changez pas le nom d'hôte, le paquet cloud-init le mettra à jour pour vous.
Si quelqu'un d'autre a une solution de contournement ou peut résoudre certains des problèmes mentionnés et aider à rassurer que rien ne sera cassé sur les instances ec2 à cause du changement du nom d'hôte, je serais heureux de l'entendre.
0 votes
Pour le configurer, vous devrez probablement spécifier le système que vous utilisez. Voir aussi : Quelles sont les ramifications de la définition du nom d'hôte ? .