Puppet: System Administration Automated

Support

Ticket #1178 (closed defect: fixed)

Opened 9 months ago

Last modified 8 months ago

Inconsistent node names

Reported by: marthag Assigned to: jamtur01
Priority: highest Milestone: 0.24.5
Component: unknown Version: 0.24.4
Severity: blocker Keywords:
Cc: Triage Stage: Ready for checkin
Attached Patches: Tests Complexity: Unknown

Description

Client facts are written to yaml/facts/hostname.yaml, but puppetmaster attempts to read them from yaml/facts/fqdn.yaml. This causes the facts never to be updated and new nodes to fail. This started happening when I changed node_name to facter.

Both client and master are Debian Etch, puppet 0.24.4.

This is related to tickets #1147 and #1168.

There is a workaround, which is to link or copy hostname.yaml to fqdn.yaml.

Change History

04/09/08 06:56:45 changed by luke

  • owner changed from community to luke.
  • status changed from new to assigned.

Closed #1147, since this is the real problem.

04/10/08 22:29:33 changed by luke

  • stage changed from Unreviewed to Accepted.

04/14/08 22:45:44 changed by luke

  • stage changed from Accepted to Needs more info.

Can someone who's experiencing this problem please ping me on IRC? I need more information, since I can't seem to figure out how it would happen.

04/21/08 14:30:52 changed by marthag

  • stage changed from Needs more info to Accepted.

04/24/08 07:25:30 changed by luke

  • component changed from library to unknown.

04/25/08 01:33:55 changed by luke

When this ticket is fixed, it should also fix #792.

04/26/08 12:24:59 changed by RNHurt

I upgraded my puppetmaster from 24.? to 24.4 and now weird things are happening to my node names and I think it might relate to this ticket. Let me explain.

All of my remote machines share a cert (built by a client called "xx") and I use the "certname=blah" in the clients puppet.conf file to force them to use the same cert (which I renamed). Several of my templates use the "hostname" variable to set things on the client (ie. DHCP3.conf). I also use copious amounts of notice() calls in my classes to debug things. Everybody was happy and working fine. Then I upgraded to puppetmaster 24.4 using Debian backports.

Now every time puppet runs on a client it thinks it's name is "xx" and it proceeds to redeploy all my files. Instead of the real hostname being inserted into the DCHP3.conf file it's stuffing in "xx" and the puppetmaster syslog is reporting that every client that connects is named "xx". I ran facter on the clients and it is reporting the correct information (hostname, domain, etc.) but somehow puppetmaster is not using it.

If I remove the "certname=blah" from the clients puppet.conf file and restart the clients it all works again (after I sign all their certs). Can someone tell me what I'm doing wrong? Should I be approaching this from a different direction? Or is this truly a bug?

05/13/08 00:06:41 changed by luke

  • milestone set to 0.24.5.

05/16/08 06:20:35 changed by luke

  • priority changed from normal to highest.

(in reply to: ↑ description ) 05/20/08 21:58:24 changed by do

Replying to marthag:

Client facts are written to yaml/facts/hostname.yaml, but puppetmaster attempts to read them from yaml/facts/fqdn.yaml. This causes the facts never to be updated and new nodes to fail. This started happening when I changed node_name to facter. Both client and master are Debian Etch, puppet 0.24.4. This is related to tickets #1147 and #1168. There is a workaround, which is to link or copy hostname.yaml to fqdn.yaml.

as reported in #1230 by me, this results in facts (sometimes) not being initialised when puppetd runs. The strange thing is now, that on my puppetmasters I do not have hostname.yaml, but fqdn.yaml only! versions are both master and clien 0.24.4. OSes are: Debian (master and clients) and Darwin.

05/21/08 23:19:39 changed by do

  • severity changed from normal to blocker.

here is a small update: I have removed all $vardir/yaml/facts/*yaml

the yamls are recreated with "fqdn.yam". those facts contain almost all facts. for example: "processor" is not set in all those yamls. this is a puppet-shipped fact. also my custom facts are not set. this is really strange... what can I do to provide more information? I really need some facts that are not in those files, thus not known by the puppetmaster.

05/21/08 23:36:35 changed by do

more infos:

- we do not rn puppetd as a service on our clients. it is run from a script by a cronjob with "nice -n 12 puppetd -t" in these cases the facts mentioned in my previous comment are not set - if I run puppet on the command line as "puppetd -vt" those facts are set!

05/27/08 00:50:56 changed by luke

  • owner changed from luke to jamtur01.
  • status changed from assigned to new.
  • stage changed from Accepted to Ready for checkin.
  • patch changed from None to Tests.

Okay, I think I've fixed this in [02411f5]. Everyone having this problem, please test with this new code running on an example master.

05/27/08 00:51:36 changed by luke

Oh; I've pushed the code to my tickets/1178 branch in my personal repo.

05/27/08 04:14:49 changed by jamtur01

  • status changed from new to closed.
  • resolution set to fixed.

Pushed to 0.24.x stable.