Hostname updating problem with CentOS 7 RHEL 7  in AWS EC2

In CentOS 7 and RHEL 7 some times , we have faced hostname updating issue, i had got same issue in AWS EC2  where DHCP configures on CentOS 7, when i attempted a few time in different ways to set hostname with hostname file (/etc/hostname )  and through hostnamectl command , but after reboot hostname get same as earlier because DHCP  overwrite the hostname on reboot .

I got solution after spending some of hours and the cloud-init was the reason behind this issue. cloud-init is an organization consolidated with most EC2 AMIs , including AMI Linux and CentOS .

I have found two method , which have solved this issue.


You need to edit “/etc/cloud/cloud.cfg ”  and comment out modules that set the hostname .The accompanying modules can be remarked out utilizing #.

#vim /etc/cloud/cloud.cfg
# - set_hostname
# - update_hostname

Now change your hostname thorough hostnamectl or edit the hostname file /etc/hostname like below.

#hostnamectl set-hostname


After that reboot the server.

# systemctl reboot


You can override hostname name with your preferred hostname with below steps.
(1) Create a file in like 99_anyname.cfg in “/etc/cloud/cloud.cfg.d/” and write like below content.

hostname: server1
fqdn :

P.S : Here server1 and are hostname and fqdn.

(2) Set the permission and if selinux is enabled or in enforcing then set selinix context like below.

#chown root: /etc/cloud/cloud.cfg.d/99_anyname.cfg
#chmod 644 /etc/cloud/cloud.cfg.d/99_anyname.cfg

If selinux in enforcing mode then execute below command and check correct file name.

#chcon system_u:object_r:etc_t:s0 /etc/cloud/cloud.cfg.d/99_anyname.cfg

(3) Reboot the server and after reboot you check now hostname .

By Sachin G

I am a professional freelance contributor and founder of tech transit. Love to write and lover of education, culture, and community. I have been using it, setting, supporting, and maintaining it since 2009.Linux rocks! Sachin G Follow me on LinkedIn and x formerly twitter