Cloud-Hosted Hostname Solution
Last modified: December 7, 2023
Overview
To configure VPS deployments, many cloud hosting providers use the dhclient
script, which includes the configuration of the instance’s hostname.
The dhclient
script may not preserve the locally-configured hostname, so hosting providers use scripts to work around this issue. For example, the Google Cloud Platform™ service uses the google_set_hostname
script.
The workaround scripts may interfere with WHM’s Change Hostname feature (WHM » Home » Networking Setup » Change Hostname), which causes hostname configuration issues and a locked cPanel & WHM license.
The solution
To resolve this issue, you must create a dhclient
exit hook script to set the hostname properly.
Create the zzz-set-hostname
file with the following contents in the /etc/dhcp/dhclient-exit-hooks.d/
directory, where hostname.example.com
represents your server’s new hostname:
#!/bin/sh
hostname hostname.example.com
/scripts/fixetchosts
You can also create the file with the following command, where hostname.example.com
represents your server’s new hostname:
mkdir -p /etc/dhcp/dhclient-exit-hooks.d/ && echo -ne '#!/bin/sh\nhostname hostname.example.com\n/scripts/fixetchosts\n' > /etc/dhcp/dhclient-exit-hooks.d/zzz-set-hostname && chmod +x /etc/dhcp/dhclient-exit-hooks.d/zzz-set-hostname
Make certain that you set the zzz-set-hostname
file with 0755 permissions. If you don’t perform this action, the script won’t run.