Les changements de RHEL 7 avec NetworkManager (et nmcli)
Le moins qu’on puisse dire de RedHat c’est qu’ils ont quand même changé pas mal de choses avec la version 7 !
Entre XFS en FS par défaut (juste après avoir introduit ext4), la gestion du firewall avec firewalld, l’abandon de SysV pour systemd, les améliorations de SELinux, … Il y a de quoi s’y perdre ! Alors, quand j’ai monté ma première VM et que j’ai galéré à changer le hostname et le FQDN proprement, je me suis dis « trop c’est trop! » ;-).
Voici un petit récap’ de quelques commandes pour vous permettre de gagner du temps plutôt que passer par l’interface NetworkManager, pas toujours extraordinaire… (surtout nmcli, la version CLI de l’utilitaire de NetworkManager et dont les commandlets ont été enrichis depuis la RHEL 6!)
Via hostnamectl
Afficher le hostname du serveur dans ces différentes formes : static (nom court), pretty (avec des caractères spéciaux) et « transcient » (???)
hostnamectl status
Commande pour effectuer des modifications sur le hostname (avec les options --pretty, --static, --transient)
hostnamectl set-hostname monhostname
Via nmcli
Comme je le disais en introduction, nmcli est l’utilitaire en ligne de commandes qui permet de modifier les paramètres réseau sur les serveurs qui utilisent Network Manager.
Pour expliquer un peu pourquoi des fois en arguments je met con ou connection, c’est parce que toutes les commandes peuvent être abréviées autant que vous le souhaitez tant que la sous-commande appelée n’est pas ambiguë. Du coup, pour s’économiser 5 caractères parce qu’on est particulièrement fainéant, on peut mettre « g » au lieu de « global« . Mais rien ne vous y oblige.
Afficher le hostname
# nmcli g hostname
server.example.com
Modifier le FQDN (change le hostname et ajoute domain dans /etc/resolv.conf)
# nmcli g hostname desktop.example.com
Afficher le status des cartes réseau
# nmcli dev status
On dispose de deux types d’objets : les périphériques (sous-commande device) et les connexions (sous-commande connection) qui leur sont associées. Elles peuvent ne pas avoir le même nom mais et ne représentent pas tout à fait la même chose. C’est pourquoi il y a bien deux commandes distinctes :
# nmcli con show net-eth0
# nmcli dev show eth0
Désactiver la connexion automatique pour une connexion donnée
# nmcli con mod net-eth0 connection.autoconnect no
Pour modifier des paramètres de connexion
# nmcli con mod net-eth0 ipv4.addresses 192.168.2.10/24
# nmcli con mod net-eth0 ipv4.gateway 192.168.2.1
# nmcli con mod net-eth0 ipv4.method manual
Pour activer une connexion
# nmcli con up net-eth0
Procédure pour ajouter un serveur DNS avec persistance au reboot (mais nécessite une déconnexion/reconnexion de l’interface via GUI ou systemctl restart network ou ifdown+ifup)
# nmcli con mod net-eth0 +ipv4.dns 8.8.8.8
# nmcli con up net-eth0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
Le fichier resolv.conf a été mis à jour
# more /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
Note :
- On ajout un serveur DNS avec +ipv4.dns, et on le retire avec -ipv4.dns
Source
J’ai gagné beaucoup de temps grâce à certdepot.net qui donne la plupart des commandes expliquées ici