Could someone explain what the expected behavior of puppet is when trying to mix external and internal nodes? The docs suggest you can have both, but when I set node_terminus = exec, my internal (node file) definitions don''t seem to get picked up at all. -- Eric --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
On Sep 26, 2008, at 8:27 AM, Eric Moore wrote:> Could someone explain what the expected behavior of puppet is when > trying to mix external and internal nodes? The docs suggest you can > have both, but when I set node_terminus = exec, my internal (node > file) definitions don''t seem to get picked up at all.Both should get used, and it consistently works for me. This only started working around 0.24, though. -- The time to repair the roof is when the sun is shining. -- John F. Kennedy --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Luke Kanies <luke@madstop.com> writes:> On Sep 26, 2008, at 8:27 AM, Eric Moore wrote: > >> Could someone explain what the expected behavior of puppet is when >> trying to mix external and internal nodes? The docs suggest you can >> have both, but when I set node_terminus = exec, my internal (node >> file) definitions don''t seem to get picked up at all. > > > Both should get used, and it consistently works for me. > > This only started working around 0.24, though.So if the external node classification tool doesn''t print anything, or returns a non-zero status, it should fall back to the internal nodes? Or does it check the internal nodes first, then the external tool? Right now my internal nodes are all using the short hostname as the node name, and that works fine with the default node_terminus, but is failing with node_terminus = exec What''s the actual sequence? My guess as to what it would be is something like: 1) check if external node classifier has anything for fqdn 2) check if external node classifier has anything for short hostname 3) check for internal node with same name as fqdn 4) check for internal node with short hostname That right? does it behave differently with no output and a 0 return code, or a non-zero return code? Is this documented anywhere? -- Eric --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
On Sep 26, 2008, at 3:35 PM, Eric Moore wrote:> > Luke Kanies <luke@madstop.com> writes: > >> On Sep 26, 2008, at 8:27 AM, Eric Moore wrote: >> >>> Could someone explain what the expected behavior of puppet is when >>> trying to mix external and internal nodes? The docs suggest you can >>> have both, but when I set node_terminus = exec, my internal (node >>> file) definitions don''t seem to get picked up at all. >> >> >> Both should get used, and it consistently works for me. >> >> This only started working around 0.24, though. > > So if the external node classification tool doesn''t print anything, or > returns a non-zero status, it should fall back to the internal nodes?No, that''s considered a failure. If you''re using external nodes, the external tool is expected to produce information. If you don''t want this behaviour, then provide support for a default configuration like the ldap node support does.> > Or does it check the internal nodes first, then the external tool?External then internal.> > Right now my internal nodes are all using the short hostname as the > node name, and that works fine with the default node_terminus, but is > failing with node_terminus = exec > > What''s the actual sequence? > > My guess as to what it would be is something like: > > 1) check if external node classifier has anything for fqdn > 2) check if external node classifier has anything for short hostname > 3) check for internal node with same name as fqdn > 4) check for internal node with short hostname > > That right? > > does it behave differently with no output and a 0 return code, or a > non-zero return code?The external node tool is only ever asked for the certificate name of the host, which is normally the fqdn. If you want your tool to support the short name, then it''s basically up to you to do that work -- I didn''t want to enforce behaviour on others'' tools. If your tool produces no data, it''s a failure.> > Is this documented anywhere?Apparently not? -- One of the Ten Commandments for Technicians: (7) Work thou not on energized equipment, for if thou dost, thy fellow workers will surely buy beers for thy widow and console her in other ways. --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Luke Kanies <luke@madstop.com> writes:> On Sep 26, 2008, at 3:35 PM, Eric Moore wrote: > >> >> Luke Kanies <luke@madstop.com> writes: >> >>> On Sep 26, 2008, at 8:27 AM, Eric Moore wrote: >>> >>>> Could someone explain what the expected behavior of puppet is when >>>> trying to mix external and internal nodes? The docs suggest you can >>>> have both, but when I set node_terminus = exec, my internal (node >>>> file) definitions don''t seem to get picked up at all. >>> >>> >>> Both should get used, and it consistently works for me. >>> >>> This only started working around 0.24, though. >> >> So if the external node classification tool doesn''t print anything, or >> returns a non-zero status, it should fall back to the internal nodes? > > No, that''s considered a failure. If you''re using external nodes, the > external tool is expected to produce information. If you don''t want > this behaviour, then provide support for a default configuration like > the ldap node support does.When does the internal node definition get used, i.e. under what circumstances? What do the internal nodes do in combination with the external tool, and under what circumstances?> The external node tool is only ever asked for the certificate name of > the host, which is normally the fqdn. If you want your tool to > support the short name, then it''s basically up to you to do that work > -- I didn''t want to enforce behaviour on others'' tools.Fair enough :)> If your tool produces no data, it''s a failure. > >> >> Is this documented anywhere? > > Apparently not? > > -- > One of the Ten Commandments for Technicians: > (7) Work thou not on energized equipment, for if thou dost, thy > fellow workers will surely buy beers for thy widow and > console her in other ways. > --------------------------------------------------------------------- > Luke Kanies | http://reductivelabs.com | http://madstop.com > > > >-- Eric --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
On Sep 26, 2008, at 4:11 PM, Eric Moore wrote:> When does the internal node definition get used, i.e. under what > circumstances? What do the internal nodes do in combination with the > external tool, and under what circumstances?The internal and external node systems are essentially parallel ways of configuring nodes. If you have any nodes defined in the language, then Puppet will similarly fail if a given client doesn''t match an internal node definition. And the two systems are entirely orthogonal -- they can do similar work, but they work with entirely separate mechanisms and they neither conflict nor work together. Yes, it''s confusing, but the previous model -- where you couldn''t use them together -- was apparently even more confusing. It''s pretty easy, really: If you use a given node system, every client must have an entry in that node system. You should probably stick to just one of them. -- There is nothing worse than aggressive stupidity. -- Johann Wolfgang von Goethe --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Luke Kanies <luke@madstop.com> writes:> On Sep 26, 2008, at 4:11 PM, Eric Moore wrote: > >> When does the internal node definition get used, i.e. under what >> circumstances? What do the internal nodes do in combination with the >> external tool, and under what circumstances? > > > The internal and external node systems are essentially parallel ways > of configuring nodes. If you have any nodes defined in the language, > then Puppet will similarly fail if a given client doesn''t match an > internal node definition. > > And the two systems are entirely orthogonal -- they can do similar > work, but they work with entirely separate mechanisms and they neither > conflict nor work together.So if there''s information in the external and internal systems... Which one gets used? Or?> Yes, it''s confusing, but the previous model -- where you couldn''t use > them together -- was apparently even more confusing. > > It''s pretty easy, really: If you use a given node system, every > client must have an entry in that node system. You should probably > stick to just one of them.Well, we''re trying to switch from one to the other, and was hoping to not have to fully populate the external tool all at once and use it everywhere. -- Eric --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
On Sep 27, 2008, at 3:01 PM, Eric Moore wrote:> > Luke Kanies <luke@madstop.com> writes: > >> On Sep 26, 2008, at 4:11 PM, Eric Moore wrote: >> >>> When does the internal node definition get used, i.e. under what >>> circumstances? What do the internal nodes do in combination with >>> the >>> external tool, and under what circumstances? >> >> >> The internal and external node systems are essentially parallel ways >> of configuring nodes. If you have any nodes defined in the language, >> then Puppet will similarly fail if a given client doesn''t match an >> internal node definition. >> >> And the two systems are entirely orthogonal -- they can do similar >> work, but they work with entirely separate mechanisms and they >> neither >> conflict nor work together. > > So if there''s information in the external and internal systems... > Which one gets used? Or?Both.> >> Yes, it''s confusing, but the previous model -- where you couldn''t use >> them together -- was apparently even more confusing. >> >> It''s pretty easy, really: If you use a given node system, every >> client must have an entry in that node system. You should probably >> stick to just one of them. > > Well, we''re trying to switch from one to the other, and was hoping to > not have to fully populate the external tool all at once and use it > everywhere.Then add support for a default node. -- Reality is that which, when you stop believing in it, doesn''t go away. -- Philip K. Dick, "How to Build a Universe" --------------------------------------------------------------------- Luke Kanies | http://reductivelabs.com | http://madstop.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---