I installed chef-client on a Linux node, and it seems to have successfully connected to my chef server. However, when I do: chef node list, it appears as "localhost".

Why doesn't chef pick up the proper name of the node? If I ask for more details, I see:

$ chef node show localhost
node Name:   localhost
Environment: _default
FQDN:        localhost
IP:          192.168.1.5
Run List:    
Roles:       
Recipes:     
Platform:    ubuntu 11.10

It has a proper domain name set up. For example, if I do: hostname, it returns "mynodename", not "localhost".

How is chef determining the name of the node? And why does it have the proper name showing in FQDN?

EDIT: In response to cjc below, here's some of the output from ohai | grep host:

(Note: this node is running on EC2)

"fqdn": "localhost",
"hostname": "mynodename",
"public_hostname": "ec2-...-.amazonaws.com",
"local_hostname": "ip-...ec2.internal",
"hostname": "ip-...ec2.internal",

Also, hostname -s is giving the expected output:

$ hostname -s
mynodename
link|improve this question

73% accept rate
feedback

3 Answers

The reason seems to be that ohai is running hostname --fqdn, which does give "localhost".

The root cause of the problem seems to be that I set the hostname as "mynodename" instead of "mynodename.example.com". If I do:

sudo hostname mynodename.example.com

Then it does the right thing when I do: hostname --fqdn

link|improve this answer
feedback

On Amazon AMI instances based on RHEL 5 and 6. In that case, look at:

/etc/sysconfig/network

I suspect the is configured as such with:

HOSTNAME=localhost
DOMAINNAME=localhost

In that case, make the correction with:

HOSTNAME=mynodename
DOMAINNAME=mynodename.example.com

On Debian-type Linux instances (such as Ubuntu), you would look at the following file for the hostname:

/etc/hostname

And make the change there.

link|improve this answer
This was an Ubuntu instance. – Lorin Hochstein Jan 24 at 19:54
My mistake. Updated answer. – Rilindo Jan 24 at 19:58
feedback

chef-client uses ohai when setting up the node. What do you get when you run ohai |grep host ?

Glancing through the ohai source in lib/ohai/plugins, for the linux provider, I see that it basically runs "hostname -s", so that's a bit mysterious, given your results.

Could the hostname have been set after chef-client ran?

link|improve this answer
No, hostname was definitely set before chef-client ran. Node was up and running with hostname set before chef-client was installed. – Lorin Hochstein Jan 24 at 18:11
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.