Hi> I''m using the puppet:/// protocol with the triple slash as described > in the advanced puppet recipe because I want to keep all my config > files on the puppet server that serves the puppet nodes and such: > http://reductivelabs.com/trac/puppet/wiki/AdvancedPuppetRecipe > > In terms of connecting to the fileserver to describe the file and diff > the checksums, there are no problems and it will connect to the server > that the node is getting its configuration from. It even shows the > correct diff that will be applied to the file if there are changes. > However, when it comes time to actually retrieve the file, the puppet > client seems to want the file from the server "puppet", instead of > the /etc/puppet/puppet.conf-specified server. It is as if I had > written "puppet://puppet/module/myfile.conf" - but the problem only > applies in terms of file retrieval, not for diffing the file. > > My current workaround is to just change /etc/hosts so that puppet > points to my puppet server, but doing this makes my clusters less > portable, and I''m pretty sure the point of the puppet:/// protocol was > to avoid this problem. > > From what I''ve searched online and in the group, someone had a similar > problem and workarounds at (http://osdir.com/ml/sysutils.puppet.user/ > 2006-09/msg00279.html), but I believe that was because he was using > "puppet://puppet/module/file", with only 2 slashes. This is also not > a certificate/signing problem, which came up frequently when i > searched for the error "could not find server puppet".imho the tripple slashes just mean: puppet://puppet/ So you might want to do: puppet://$server/ I agree that it is confusing if you can set a server in the config. So it might be worth to do a feature request for that? However then I''d like to propose that you could additionally set fileserver variable in puppet.conf as it would then be easier to distribute the load. And we all could now use the rather simple Puppet:/// So the schmea could be the following: - take fileserver from config if set - take server from config if set and fileserver not set - take puppet if both are not set cheers pete --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Peter Meier wrote:> imho the tripple slashes just mean: puppet://puppet/ > > So you might want to do: puppet://$server/I know the first statement isn''t correct, since I use triple slashes all the time, and my server''s name isn''t puppet. The second statement should work regardless. I do have both server and ca_server set in my puppet.conf, however (for Debian and Ubuntu). They may not both be required, since my Solaris clients only have server set. -- Mike Renfro / R&D Engineer, Center for Manufacturing Research, 931 372-3601 / Tennessee Technological University -- renfro@tntech.edu --~--~---------~--~----~------------~-------~--~----~ 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 Tue, May 26, 2009 at 6:31 AM, Mike Renfro <renfro@tntech.edu> wrote:> > Peter Meier wrote: > >> imho the tripple slashes just mean: puppet://puppet/ >> >> So you might want to do: puppet://$server/ > > I know the first statement isn''t correct, since I use triple slashes all > the time, and my server''s name isn''t puppet. The second statement should > work regardless.puppet:/// means puppet://$this_server_name> > I do have both server and ca_server set in my puppet.conf, however (for > Debian and Ubuntu). They may not both be required, since my Solaris > clients only have server set. > > -- > Mike Renfro / R&D Engineer, Center for Manufacturing Research, > 931 372-3601 / Tennessee Technological University -- renfro@tntech.edu > > > >-- Nigel Kersten nigelk@google.com System Administrator Google, Inc. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Hi there, Thanks for the responses so far; the docs say "Instead of specifying the server name explicitly using the / tells Puppet to look for the file on the Puppet master currently managing the node.". The puppet master managing the node is specified by the "server" config in /etc/ puppet.conf (which I''ve set under [main] - also tried setting it under [puppetd] with no differences), so therefore I think what I set as "server" should also be where puppet looks for the files. In the below debug output, I set the server to "puppet.dev.clarencetso.com", printed out some debug statements to show the host and port of the XMLRPC client that is making each call. As you can see, it will use puppet.dev.clarencetso.com for every single fileserver call, but when it calls puppetbucket.addfile, all of a sudden it is using "puppet" instead. I''m still trying to dive deeper into the code (im not sure where puppet:/// is parsed) to see if I can figure it out, just wanted to show this output in case anyone had any ideas. debug: Server puppet.dev.clarencetso.com Port 8140 debug: Calling fileserver.describe debug: Server puppet.dev.clarencetso.com Port 8140 debug: Calling fileserver.retrieve debug: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ File[/etc/profile]/source: Executing ''diff /etc/profile /tmp/puppet- diffing.20857.0'' 1c1 < #a /etc/profile: system-wide .profile file for the Bourne shell (sh (1)) ---> # /etc/profile: system-wide .profile file for the Bourne shell (sh(1))debug: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ File[/etc/profile]: Changing source debug: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ File[/etc/profile]: 1 change(s) debug: Server puppet Port 8140 debug: Calling puppetbucket.addfile err: Could not find server : getaddrinfo: Name or service not known err: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ File[/etc/profile]/source: change from {md5} 20e84001a04b41107eca371b85d05d59 to puppet:///clarencetso/profile failed: Could not find server puppet debug: Server puppet.dev.clarencetso.com Port 8140 debug: Calling fileserver.list Thanks a bunch, Clarence On May 26, 11:43 am, Nigel Kersten <nig...@google.com> wrote:> On Tue, May 26, 2009 at 6:31 AM, Mike Renfro <ren...@tntech.edu> wrote: > > > Peter Meier wrote: > > >> imho the tripple slashes just mean: puppet://puppet/ > > >> So you might want to do: puppet://$server/ > > > I know the first statement isn''t correct, since I use triple slashes all > > the time, and my server''s name isn''t puppet. The second statement should > > work regardless. > > puppet:/// means puppet://$this_server_name > > > > > I do have both server and ca_server set in my puppet.conf, however (for > > Debian and Ubuntu). They may not both be required, since my Solaris > > clients only have server set. > > > -- > > Mike Renfro / R&D Engineer, Center for Manufacturing Research, > > 931 372-3601 / Tennessee Technological University -- ren...@tntech.edu > > -- > Nigel Kersten > nig...@google.com > System Administrator > Google, Inc.--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Hm, it looks like it''s not just "puppet:///" - when i specify puppet://puppet.dev.clarencetso.com, the puppetbucket.addfile xmlrpc call still ends up trying to look for "server puppet" (I''m on the newest puppet version btw) On May 27, 2:49 am, Clarence Tso <clarence...@gmail.com> wrote:> Hi there, > > Thanks for the responses so far; the docs say "Instead of specifying > the server name explicitly using the / tells Puppet to look for the > file on the Puppet master currently managing the node.". The puppet > master managing the node is specified by the "server" config in /etc/ > puppet.conf (which I''ve set under [main] - also tried setting it under > [puppetd] with no differences), so therefore I think what I set as > "server" should also be where puppet looks for the files. In the > below debug output, I set the server to "puppet.dev.clarencetso.com", > printed out some debug statements to show the host and port of the > XMLRPC client that is making each call. As you can see, it will use > puppet.dev.clarencetso.com for every single fileserver call, but when > it calls puppetbucket.addfile, all of a sudden it is using "puppet" > instead. I''m still trying to dive deeper into the code (im not sure > where puppet:/// is parsed) to see if I can figure it out, just wanted > to show this output in case anyone had any ideas. > > debug: Server puppet.dev.clarencetso.com Port 8140 > debug: Calling fileserver.describe > debug: Server puppet.dev.clarencetso.com Port 8140 > debug: Calling fileserver.retrieve > debug: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ > File[/etc/profile]/source: Executing ''diff /etc/profile /tmp/puppet- > diffing.20857.0'' > 1c1 > < #a /etc/profile: system-wide .profile file for the Bourne shell (sh > (1)) > ---> # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) > > debug: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ > File[/etc/profile]: Changing source > debug: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ > File[/etc/profile]: 1 change(s) > debug: Server puppet Port 8140 > debug: Calling puppetbucket.addfile > err: Could not find server : getaddrinfo: Name or service not known > err: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ > File[/etc/profile]/source: change from {md5} > 20e84001a04b41107eca371b85d05d59 to puppet:///clarencetso/profile > failed: Could not find server puppet > debug: Server puppet.dev.clarencetso.com Port 8140 > debug: Calling fileserver.list > > Thanks a bunch, > Clarence > > On May 26, 11:43 am, Nigel Kersten <nig...@google.com> wrote: > > > On Tue, May 26, 2009 at 6:31 AM, Mike Renfro <ren...@tntech.edu> wrote: > > > > Peter Meier wrote: > > > >> imho the tripple slashes just mean: puppet://puppet/ > > > >> So you might want to do: puppet://$server/ > > > > I know the first statement isn''t correct, since I use triple slashes all > > > the time, and my server''s name isn''t puppet. The second statement should > > > work regardless. > > > puppet:/// means puppet://$this_server_name > > > > I do have both server and ca_server set in my puppet.conf, however (for > > > Debian and Ubuntu). They may not both be required, since my Solaris > > > clients only have server set. > > > > -- > > > Mike Renfro / R&D Engineer, Center for Manufacturing Research, > > > 931 372-3601 / Tennessee Technological University -- ren...@tntech.edu > > > -- > > Nigel Kersten > > nig...@google.com > > System Administrator > > Google, Inc.--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
OK, looks like when you use "puppet://puppet.something.com/file", puppetbucket.addfile ends up parsing that as just "puppet" - I tried changing it to something like "puppet://random.something.com/file" and then puppetbucket.addfile looks at random.something.com instead. Looks like naming puppet masters "puppet.x.y" is a bad idea? I thought maybe it was the same issue with the triple slash protocol, so I tried renaming my puppet master to deployer.dev.clarencetso.com and resigning all the certs, etc. Unfortunately, it is the same problem where everything works great except for puppetbucket.addfile, which for some reason wants to use puppet:8140. What I do know is that there is no uri2obj(source) call happening before this function call, but that''s really it. Not sure what''s going on... On May 27, 3:06 am, Clarence Tso <clarence...@gmail.com> wrote:> Hm, it looks like it''s not just "puppet:///" - when i specify > puppet://puppet.dev.clarencetso.com, the puppetbucket.addfile xmlrpc > call still ends up trying to look for "server puppet" > > (I''m on the newest puppet version btw) > > On May 27, 2:49 am, Clarence Tso <clarence...@gmail.com> wrote: > > > Hi there, > > > Thanks for the responses so far; the docs say "Instead of specifying > > the server name explicitly using the / tells Puppet to look for the > > file on the Puppet master currently managing the node.". The puppet > > master managing the node is specified by the "server" config in /etc/ > > puppet.conf (which I''ve set under [main] - also tried setting it under > > [puppetd] with no differences), so therefore I think what I set as > > "server" should also be where puppet looks for the files. In the > > below debug output, I set the server to "puppet.dev.clarencetso.com", > > printed out some debug statements to show the host and port of the > > XMLRPC client that is making each call. As you can see, it will use > > puppet.dev.clarencetso.com for every single fileserver call, but when > > it calls puppetbucket.addfile, all of a sudden it is using "puppet" > > instead. I''m still trying to dive deeper into the code (im not sure > > where puppet:/// is parsed) to see if I can figure it out, just wanted > > to show this output in case anyone had any ideas. > > > debug: Server puppet.dev.clarencetso.com Port 8140 > > debug: Calling fileserver.describe > > debug: Server puppet.dev.clarencetso.com Port 8140 > > debug: Calling fileserver.retrieve > > debug: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ > > File[/etc/profile]/source: Executing ''diff /etc/profile /tmp/puppet- > > diffing.20857.0'' > > 1c1 > > < #a /etc/profile: system-wide .profile file for the Bourne shell (sh > > (1)) > > ---> # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) > > > debug: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ > > File[/etc/profile]: Changing source > > debug: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ > > File[/etc/profile]: 1 change(s) > > debug: Server puppet Port 8140 > > debug: Calling puppetbucket.addfile > > err: Could not find server : getaddrinfo: Name or service not known > > err: //Node[ec2-174-129-188-171]/test_11_a/test_11/clarencetso::base/ > > File[/etc/profile]/source: change from {md5} > > 20e84001a04b41107eca371b85d05d59 to puppet:///clarencetso/profile > > failed: Could not find server puppet > > debug: Server puppet.dev.clarencetso.com Port 8140 > > debug: Calling fileserver.list > > > Thanks a bunch, > > Clarence > > > On May 26, 11:43 am, Nigel Kersten <nig...@google.com> wrote: > > > > On Tue, May 26, 2009 at 6:31 AM, Mike Renfro <ren...@tntech.edu> wrote: > > > > > Peter Meier wrote: > > > > >> imho the tripple slashes just mean: puppet://puppet/ > > > > >> So you might want to do: puppet://$server/ > > > > > I know the first statement isn''t correct, since I use triple slashes all > > > > the time, and my server''s name isn''t puppet. The second statement should > > > > work regardless. > > > > puppet:/// means puppet://$this_server_name > > > > > I do have both server and ca_server set in my puppet.conf, however (for > > > > Debian and Ubuntu). They may not both be required, since my Solaris > > > > clients only have server set. > > > > > -- > > > > Mike Renfro / R&D Engineer, Center for Manufacturing Research, > > > > 931 372-3601 / Tennessee Technological University -- ren...@tntech.edu > > > > -- > > > Nigel Kersten > > > nig...@google.com > > > System Administrator > > > Google, Inc.--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Hi> OK, looks like when you use "puppet://puppet.something.com/file", > puppetbucket.addfile ends up parsing that as just "puppet" - I tried > changing it to something like "puppet://random.something.com/file" and > then puppetbucket.addfile looks at random.something.com instead. > Looks like naming puppet masters "puppet.x.y" is a bad idea? > > I thought maybe it was the same issue with the triple slash protocol, > so I tried renaming my puppet master to deployer.dev.clarencetso.com > and resigning all the certs, etc. Unfortunately, it is the same > problem where everything works great except for puppetbucket.addfile, > which for some reason wants to use puppet:8140. What I do know is > that there is no uri2obj(source) call happening before this function > call, but that''s really it. > > Not sure what''s going on...the filebucket has its own server option, you have to define. Like that you can backup to different hosts. http://reductivelabs.com/trac/puppet/wiki/TypeReference#filebucket so you should do: # Define the bucket filebucket { main: server => $server } # Specify it as the default target File { backup => main } cheers pete --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Hi>> Peter Meier wrote: >> >>> imho the tripple slashes just mean: puppet://puppet/ >>> >>> So you might want to do: puppet://$server/ >> >> I know the first statement isn''t correct, since I use triple slashes all >> the time, and my server''s name isn''t puppet. The second statement should >> work regardless. > > puppet:/// means puppet://$this_server_nameoh yeah I forgot this doc part. thanks. cheers pete --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Got it. This was the heart of the issue - I had set the filebucket backup as "puppet" when i followed the AdvancedPuppetRecipe. Guess that''s what happens when you set a config without knowing what it does. Now that I realize what a filebucket is, this makes total sense. Thanks a bunch for the help, Clarence On May 27, 4:46 am, Peter Meier <peter.me...@immerda.ch> wrote:> Hi > > >> Peter Meier wrote: > > >>> imho the tripple slashes just mean: puppet://puppet/ > > >>> So you might want to do: puppet://$server/ > > >> I know the first statement isn''t correct, since I use triple slashes all > >> the time, and my server''s name isn''t puppet. The second statement should > >> work regardless. > > > puppet:/// means puppet://$this_server_name > > oh yeah I forgot this doc part. thanks. > > cheers pete--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---