I''m just starting out with puppet. I''ve taken the training, but even with that, I''m finding the learning curve rather steep. My problem right now is that it seems to be ignoring modulepath in /etc/puppet/puppet.conf. Here''s my /etc/puppet/puppet.conf on the master, logsplitter: ------------------------ [main] # The Puppet log directory. # The default value is ''$vardir/log''. logdir = /var/log/puppet # Where Puppet PID files are kept. # The default value is ''$vardir/run''. rundir = /var/run/puppet # Where SSL certificates are kept. # The default value is ''$confdir/ssl''. ssldir = $vardir/ssl [agent] # The file in which puppetd stores a list of the classes # associated with the retrieved configuratiion. Can be loaded in # the separate ``puppet`` executable using the ``--loadclasses`` # option. # The default value is ''$confdir/classes.txt''. classfile = $vardir/classes.txt # Where puppetd caches the local configuration. An # extension indicating the cache format is added automatically. # The default value is ''$confdir/localconfig''. localconfig = $vardir/localconfig [production] manifest = /etc/puppet/production/site.pp modulepath = /etc/puppet/production/modules [development] manifest = /etc/puppet/development/site.pp modulepath = /etc/puppet/development/modules [test] manifest = /etc/puppet/test/site.pp modulepath = /etc/puppet/test/modules -------------------------------- On lapin: -----------------/etc/puppet/puppet.conf----- [main] # The Puppet log directory. # The default value is ''$vardir/log''. logdir = /var/log/puppet # Where Puppet PID files are kept. # The default value is ''$vardir/run''. rundir = /var/run/puppet # Where SSL certificates are kept. # The default value is ''$confdir/ssl''. ssldir = $vardir/ssl [agent] # The file in which puppetd stores a list of the classes # associated with the retrieved configuratiion. Can be loaded in # the separate ``puppet`` executable using the ``--loadclasses`` # option. # The default value is ''$confdir/classes.txt''. classfile = $vardir/classes.txt # Where puppetd caches the local configuration. An # extension indicating the cache format is added automatically. # The default value is ''$confdir/localconfig''. localconfig = $vardir/localconfig environment = production --------------------------------------------- On the master: ------------/etc/puppet/production/site.pp---------- node ''lapin.tripadvisor.com'' { include site::server } ------------------------------------------- ------------/etc/puppet/production/modules/site/manifest/init.pp-------------- class site::server { Package[''emacs''] { ensure => latest, } } ----------------------- On lapin.tripadvisor.com, I get this... # puppetd --server logsplitter --test --verbose err: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class site::server at /etc/puppet/production/site.pp:2 on node lapin.tripadvisor. This seems to show that it''s finding the production manifest properly, but it''s not using the modulepath from puppet.conf. I know it''s something simple, but what am I doing wrong? I''m using Puppet 2.6.1 Lezz Giles -- 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 Leslie, On Fri, Sep 17, 2010 at 7:30 AM, Leslie Giles <lezzgiles@gmail.com> wrote:> I''m just starting out with puppet. I''ve taken the training, but even with > that, I''m finding the learning curve rather steep. >it is a lot to learn, if you have any additional feedback of how we could improve things, I would be more than happy to hear it.> My problem right now is that it seems to be ignoring modulepath in > /etc/puppet/puppet.conf. > > Here''s my /etc/puppet/puppet.conf on the master, logsplitter: > > ------------------------ > [main] > # The Puppet log directory. > # The default value is ''$vardir/log''. > logdir = /var/log/puppet > > # Where Puppet PID files are kept. > # The default value is ''$vardir/run''. > rundir = /var/run/puppet > > # Where SSL certificates are kept. > # The default value is ''$confdir/ssl''. > ssldir = $vardir/ssl > > [agent] > # The file in which puppetd stores a list of the classes > # associated with the retrieved configuratiion. Can be loaded in > # the separate ``puppet`` executable using the ``--loadclasses`` > # option. > # The default value is ''$confdir/classes.txt''. > classfile = $vardir/classes.txt > > # Where puppetd caches the local configuration. An > # extension indicating the cache format is added automatically. > # The default value is ''$confdir/localconfig''. > localconfig = $vardir/localconfig >[production]> manifest = /etc/puppet/production/site.pp > modulepath = /etc/puppet/production/modules > [development] > manifest = /etc/puppet/development/site.pp > modulepath = /etc/puppet/development/modules > [test] > manifest = /etc/puppet/test/site.pp > modulepath = /etc/puppet/test/modules > -------------------------------- > > On lapin: > -----------------/etc/puppet/puppet.conf----- > [main] > # The Puppet log directory. > # The default value is ''$vardir/log''. > logdir = /var/log/puppet > > # Where Puppet PID files are kept. > # The default value is ''$vardir/run''. > rundir = /var/run/puppet > > # Where SSL certificates are kept. > # The default value is ''$confdir/ssl''. > ssldir = $vardir/ssl > > [agent] > # The file in which puppetd stores a list of the classes > # associated with the retrieved configuratiion. Can be loaded in > # the separate ``puppet`` executable using the ``--loadclasses`` > # option. > # The default value is ''$confdir/classes.txt''. > classfile = $vardir/classes.txt > > # Where puppetd caches the local configuration. An > # extension indicating the cache format is added automatically. > # The default value is ''$confdir/localconfig''. > localconfig = $vardir/localconfig > > environment = production >---------------------------------------------> > On the master: > ------------/etc/puppet/production/site.pp---------- > node ''lapin.tripadvisor.com'' { > include site::server > } > ------------------------------------------- > > ------------/etc/puppet/production/modules/site/manifest/init.pp-------------- > >class site::server {> Package[''emacs''] { > ensure => latest, > } > } > ----------------------- > > On lapin.tripadvisor.com, I get this... > > # puppetd --server logsplitter --test --verbose > err: Could not retrieve catalog from remote server: Error 400 on SERVER: > Could not find class site::server at /etc/puppet/production/site.pp:2 on > node lapin.tripadvisor. > > This seems to show that it''s finding the production manifest properly, but > it''s not using the modulepath from puppet.conf. I know it''s something > simple, but what am I doing wrong? I''m using Puppet 2.6.1 >The directory should be manifests, not manifest Lezz Giles> > -- > 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<puppet-users%2Bunsubscribe@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. >-- 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.
Thanks - that was it. I knew it was something silly. I may have missed it, but I think there is one tutorial that would be good to add - there''s plenty of detail about setting up the basic configuration with a master and agents, and there''s plenty of details about the language, however it would be good to have a tutorial that takes the user from an environment with a working master/agent setup, to a real environment. In particular it would include - separate environments for production, testing and development - an example of how to structure site.pp to support multiple nodes in different sets (e.g. some engineering boxes, some db servers) using classes - examples of how to structure services and other resources using classes - examples of what goes into the tests directory I''m sure this information is spread around the documentation, but I''m lazy - I want to be able to follow a series of simple instructions and end up with a working environment that is close enough to what my final production environment is going to look like, so all I need to do is add my customizations to an existing framework, rather than spend my time working out what my framework should look like. In particular the module structure is a vitally important part of the framework, but it seems to be underdocumented (a search on the on-line Puppet documentation for ''module structure'' gives one result that is not relevant). I do have another newbie question, and I''ll send that in a separate mail... Lezz On Fri, Sep 17, 2010 at 12:21 PM, Dan Bode <dan@puppetlabs.com> wrote:> Hi Leslie, > > On Fri, Sep 17, 2010 at 7:30 AM, Leslie Giles <lezzgiles@gmail.com> wrote: > >> I''m just starting out with puppet. I''ve taken the training, but even with >> that, I''m finding the learning curve rather steep. >> > > it is a lot to learn, if you have any additional feedback of how we could > improve things, I would be more than happy to hear it. > > > >> My problem right now is that it seems to be ignoring modulepath in >> /etc/puppet/puppet.conf. >> >> Here''s my /etc/puppet/puppet.conf on the master, logsplitter: >> >> ------------------------ >> [main] >> # The Puppet log directory. >> # The default value is ''$vardir/log''. >> logdir = /var/log/puppet >> >> # Where Puppet PID files are kept. >> # The default value is ''$vardir/run''. >> rundir = /var/run/puppet >> >> # Where SSL certificates are kept. >> # The default value is ''$confdir/ssl''. >> ssldir = $vardir/ssl >> >> [agent] >> # The file in which puppetd stores a list of the classes >> # associated with the retrieved configuratiion. Can be loaded in >> # the separate ``puppet`` executable using the ``--loadclasses`` >> # option. >> # The default value is ''$confdir/classes.txt''. >> classfile = $vardir/classes.txt >> >> # Where puppetd caches the local configuration. An >> # extension indicating the cache format is added automatically. >> # The default value is ''$confdir/localconfig''. >> localconfig = $vardir/localconfig >> > [production] >> manifest = /etc/puppet/production/site.pp >> modulepath = /etc/puppet/production/modules >> [development] >> manifest = /etc/puppet/development/site.pp >> modulepath = /etc/puppet/development/modules >> [test] >> manifest = /etc/puppet/test/site.pp >> modulepath = /etc/puppet/test/modules >> -------------------------------- >> >> On lapin: >> -----------------/etc/puppet/puppet.conf----- >> [main] >> # The Puppet log directory. >> # The default value is ''$vardir/log''. >> logdir = /var/log/puppet >> >> # Where Puppet PID files are kept. >> # The default value is ''$vardir/run''. >> rundir = /var/run/puppet >> >> # Where SSL certificates are kept. >> # The default value is ''$confdir/ssl''. >> ssldir = $vardir/ssl >> >> [agent] >> # The file in which puppetd stores a list of the classes >> # associated with the retrieved configuratiion. Can be loaded in >> # the separate ``puppet`` executable using the ``--loadclasses`` >> # option. >> # The default value is ''$confdir/classes.txt''. >> classfile = $vardir/classes.txt >> >> # Where puppetd caches the local configuration. An >> # extension indicating the cache format is added automatically. >> # The default value is ''$confdir/localconfig''. >> localconfig = $vardir/localconfig >> >> environment = production >> > --------------------------------------------- >> >> On the master: >> ------------/etc/puppet/production/site.pp---------- >> node ''lapin.tripadvisor.com'' { >> include site::server >> } >> ------------------------------------------- >> >> ------------/etc/puppet/production/modules/site/manifest/init.pp-------------- >> >> > class site::server { >> Package[''emacs''] { >> ensure => latest, >> } >> } >> ----------------------- >> >> On lapin.tripadvisor.com, I get this... >> >> # puppetd --server logsplitter --test --verbose >> err: Could not retrieve catalog from remote server: Error 400 on SERVER: >> Could not find class site::server at /etc/puppet/production/site.pp:2 on >> node lapin.tripadvisor. >> >> This seems to show that it''s finding the production manifest properly, but >> it''s not using the modulepath from puppet.conf. I know it''s something >> simple, but what am I doing wrong? I''m using Puppet 2.6.1 >> > > The directory should be manifests, not manifest > > Lezz Giles >> >> -- >> 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<puppet-users%2Bunsubscribe@googlegroups.com> >> . >> For more options, visit this group at >> http://groups.google.com/group/puppet-users?hl=en. >> > > -- > 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<puppet-users%2Bunsubscribe@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. >-- 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.