Unlike CentOS/RHEL 6, manually appending “HOSTNAME=xxxxx” into file /etc/sysconfig/network and restarting system will not work on CentOS/RHEL 7, in order to change/set the hostname. There 4 ways to change the hostname in CentOS/RHEL 7 :
1. use hostname control utility: hostnamectl
2. use NetworkManager command line tool: nmcli
3. use NetworkManager text user interface tool : nmtui
4. edit /etc/hostname file directly (a reboot afterwards is required)
hostname types
We can configure 3 hostname types is CentOS/RHEL 7 :
Hostname Type | Description |
---|---|
Static | Assigned by the system admin |
Dynamic | Assigned by DHCP or mDNS server at runtime |
Pretty | Assigned by the system admin. Its can be used as Description like “Oracle DB server” |
Out of these 3, only static hostname is mandatory. Other 2 are optional.
Method 1 : hostnamectl
To get the current hostname of the system :
# hostnamectl status Static hostname: localhost.localdomain Icon name: computer Chassis: n/a Machine ID: 55cc1c57c7f24ed0b0d352648024cea6 Boot ID: a12ec8e04e6b4534841d14dc8425e38c Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-123.el7.x86_64 Architecture: x86_64
To set new hostname (geeklab) for the machine :
# hostnamectl set-hostname geeklab ## static # hostnamectl set-hostname "Geeks LAB" ## pretty
Re-login and verify the new hostname :
# hostnamectl Static hostname: geekslab Pretty hostname: Geeks LAB Icon name: computer Chassis: n/a Machine ID: 55cc1c57c7f24ed0b0d352648024cea6 Boot ID: a12ec8e04e6b4534841d14dc8425e38c Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-123.el7.x86_64 Architecture: x86_64
Method 2 : nmcli
To view the current hostname :
# nmcli general hostname localhost.localdomain
To change the hostname to geeklab :
# nmcli general hostname geeklab
We need to restart the systemd-hostnamed service for the changes to take effect :
# service systemd-hostnamed restart
Re-login and erify the hostname change :
# hostname geeklab
Method 3 : nmtui
We can also change the hostname using the nmtui tool :
nmtui
Select the option to “set the hostname” and hit enter
Set the hostname
Confirm the hostname change
Restart the systemd-hostnamed service for the changes to take effect.
# service systemd-hostnamed restart
Re-login and verify the hostname change.
# hostnamectl Static hostname: geeklab Icon name: computer Chassis: n/a Machine ID: 55cc1c57c7f24ed0b0d352648024cea6 Boot ID: a12ec8e04e6b4534841d14dc8425e38c Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-123.el7.x86_64 Architecture: x86_64
Method 4 : Edit /etc/hostname
This method requires a reboot of the system. View the current content of the file /etc/hostname.
# cat /etc/hostname localhost.localdomain
To change the hostname to “geeklab”, replace the content of the /etc/hostname file with “geeklab”
# echo "geeklab" > /etc/hostname # cat /etc/hostname geeklab
Restart the system and verify.
# shutdown -r now
# hostname geeklab