0

I followed this thread while writing my cloud-init script.

I've tested and I have this in one part of my boothook script:

echo "HOSTNAME=$HOSTNAME" >> /etc/environment
echo "127.0.1.1 $HOSTNAME" >> /etc/hosts
echo "$HOSTNAME" > /etc/hostname
echo "$HOSTNAME" > /proc/sys/kernel/hostname
hostnamectl set-hostname $HOSTNAME

When I login to my system for the first time:

$ echo $HOSTNAME
aaa.bbbb.domain.org

$ cat /etc/hosts
127.0.1.1  aaa.bbbb.domain.org

$ cat /etc/environment
HOSTNAME=aaa.bbbb.domain.org

But for some reason I can't understand:

$ cat /etc/hostname
aaa

$ cat /proc/sys/kernel/hostname
aaa

$ hostname
aaa

Not sure why! Any clues?

1
  • If I run hostnamectl set-hostname $HOSTNAME manually the moment I log in, it works fine. I tried moving it to a user-script that runs later around rc.local and it didn't help.
    – phpguru
    Oct 17, 2015 at 7:32

2 Answers 2

0

I actually discovered after a lot of tinkering and researching that what I am seeing is the intended behavior, although it is different from what I am used to on CentOS/RHEL systems.

To summarize this from here:

CentOS & RHEL deployment guide say the hostname should be the FQDN; Debian specifies the hostname should NOT be the FQDN.

The kernel maintains the system hostname. This file should contain only the system hostname, not a fully qualified domain name.

I'm fine with it this way (sure makes shell prompts shorter!) I just wanted to make sure I wasn't doing something wrong.

-2

you must edit /etc/hosts and add hostname like this:

127.0.0.1    aaa.bbbb.domain.org aaa.bbbb
1
  • Why? OP already added an entry for their domain to point to the loopback interface to. Oct 17, 2015 at 12:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .