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
Warning:

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.

Additional Documentation