Hi, I exposed few days ago this situation on the IRC, but unfortunately I haven''t found a way to solve it yet. I run the Puppet Master with multiple environments, and everything is working good but a couple of nodes that are causing me some troubles. These nodes are pointing to my production environment and I need to point them back to development to grab some changes I made. I usually follow these steps on the clients once I''ve tested in my own environment: 1. Stop puppet daemon. 2. Test the new config pointing to development environment. 3. Run puppetd pointing to development. 4. Verify change. 5. Start Puppet. This is a test I did with a similar node: Testing pointing to *development*: [app03 ~]# /usr/sbin/puppetd --test -vt --*environment*=*development* --snip-- notice: Finished catalog run in 30.42 seconds [app03 ~]# grep -m2 -P "/development/|/production/" /var/lib/puppet/localconfig.yaml file: /opt/puppet/*development*/site.pp file: /opt/puppet/*development*/modules/ntp/manifests/init.pp Testing now pointing to *production*: [app03 ~]# /usr/sbin/puppetd --test -vt --*environment*=*production* --snip-- notice: Finished catalog run in 30.55 seconds [eapp03 ~]# grep -m2 -P "/development/|/production/" /var/lib/puppet/localconfig.yaml file: /opt/puppet/*production*/site.pp file: /opt/puppet/*production*/classes/puppet.pp When doing the same on the node I see the strange behavior this is what I get: [app01 ~]# /usr/sbin/puppetd --test -vt --environment=*development* --snip-- [app01 ~]# grep -m2 -P "/development/|/production/" /var/lib/puppet/localconfig.yaml file: /opt/puppet/*production*/classes/yumrepos.pp file: /opt/puppet/*production*/classes/yumrepos.pp I''ve tried: - Removing the cache in the server ($vardir/yaml/{node,facts}/app01.example.com.yaml) and puppetca --clean app01.example.com - Restarted the server(using passenger). - Removed the client $vardir/* - Reinstalled puppet client. All of them with the *same result.* The nodes with these issues are being hosted with a third party hosting company, don''t think there is any relationship with this as communications are made between the client/server, but seems like I can''t find any other. Any suggestion is appreciated, Thanks for reading this. This is what I use: PuppetMaster 0.24.8 Puppetclients 0.24.8 passenger (2.2.4) puppet.conf: ---snippet--- environments = production,testing,development manifest = /opt/puppet/production/site.pp modulepath = /opt/puppet/production/modules [production] manifest = /opt/puppet/production/site.pp modulepath = /opt/puppet/production/modules [testing] manifest = /opt/puppet/testing/site.pp modulepath = /opt/puppet/testing/modules [development] manifest = /opt/puppet/development/site.pp modulepath = /opt/puppet/development/modules ---snippet--- -- Tony -- 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.
Rob McBroom
2010-Mar-18 01:00 UTC
Re: [Puppet Users] Puppet Client using wrong environment.
How is the environment determined when you don’t specify one? On my systems, it seems that the `--environment` option is completely ignored. I imagine this is because the external information (from LDAP in my case) always takes precedence. -- Rob McBroom <http://www.skurfer.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.
When no environment is defined it uses production, per my notes: environments = production,testing,development manifest = /opt/puppet/production/site.pp modulepath = /opt/puppet/production/modules This is part of [main]. On Wed, Mar 17, 2010 at 5:00 PM, Rob McBroom <mailinglist0@skurfer.com>wrote:> How is the environment determined when you don’t specify one? On my > systems, it seems that the `--environment` option is completely ignored. I > imagine this is because the external information (from LDAP in my case) > always takes precedence. > > -- > Rob McBroom > <http://www.skurfer.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<puppet-users%2Bunsubscribe@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/puppet-users?hl=en. > >-- Tony -- 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.
Finally found the issue I never looked into the /etc/puppet directory(my bad), there was the issue, a strange one although but here is what happened, in there were two files(wish I knew why there were that second if we use puppet 0.24.8): puppet.conf puppetd.conf Same content, nothing different, I don''t declare the environment in there as I use it in /etc/sysconfig/puppet [app02 ~]$ grep environment /etc/puppet/puppet.conf /etc/puppet/puppetd.conf [app02 ~]$ diff /etc/puppet/puppet.conf /etc/puppet/puppetd.conf [app02 ~]# /usr/sbin/puppetd -t --environment=*development* info: Loading fact drac info: Loading fact rhelver info: Loading fact sserial info: Retrieving plugins info: Loading fact drac info: Loading fact rhelver info: Loading fact sserial info: mount[localhost]: Mounted / info: mount[modules]: Mounted info: mount[plugins]: Mounted info: Caching catalog at /var/lib/puppet/localconfig.yaml notice: Starting catalog run info: Loading fact drac info: Loading fact rhelver info: Loading fact sserial info: Sent transaction report in 1.47 seconds notice: Finished catalog run in 16.85 seconds [app02 ~]# grep -m2 -P "development|production" /var/lib/puppet/localconfig.yaml file: /opt/puppet/*production*/classes/yumrepos.pp file: /opt/puppet/*production*/classes/yumrepos.pp Fixing: *[app02 ~]# rm /etc/puppet/puppetd.conf* *rm: remove regular file `/etc/puppet/puppetd.conf''? y* [app02 ~]# /usr/sbin/puppetd -t --environment=*development* info: Loading fact drac info: Loading fact rhelver info: Loading fact sserial info: Retrieving plugins info: Loading fact drac info: Loading fact rhelver info: Loading fact sserial info: mount[localhost]: Mounted / info: mount[modules]: Mounted info: mount[plugins]: Mounted info: Caching catalog at /var/lib/puppet/localconfig.yaml notice: Starting catalog run info: Loading fact drac info: Loading fact rhelver info: Loading fact sserial notice: //Node[app02.example.com]/common::ldap/Sudo::Config[standard]/Package[sudo-ldap]/ensure: removed notice: //Node[app02.example.com]/common::ldap/Sudo::Config[standard]/Package[sudo]/ensure: created info: Sent transaction report in 0.37 seconds notice: Finished catalog run in 18.09 seconds [app02 ~]# grep -m2 -P "development|production" /var/lib/puppet/localconfig.yaml file: /opt/puppet/*development*/site.pp file: /opt/puppet/*development*/classes/common.pp So what is doing puppetd is reading both files and for some reason ignoring the --environment flag via command line or the flag in the /etc/sysconfig/puppet when bringing up the daemon with the /etc/init.d/puppet script. Doing a strace I see both files are being opened with puppetd: open("/etc/puppet/puppetd.conf", O_RDONLY) = 3 open("/etc/puppet/puppet.conf", O_RDONLY) = 4 I assume it attempts to read puppetd.conf as it was the old config file, but should it ignore the environment flag as it''s doing it? Thanks On Thu, Mar 18, 2010 at 10:24 AM, Tony G. <tonysk8@gmail.com> wrote:> When no environment is defined it uses production, per my notes: > > > environments = production,testing,development > manifest = /opt/puppet/production/site.pp > modulepath = /opt/puppet/production/modules > > This is part of [main]. > > > > On Wed, Mar 17, 2010 at 5:00 PM, Rob McBroom <mailinglist0@skurfer.com>wrote: > >> How is the environment determined when you don’t specify one? On my >> systems, it seems that the `--environment` option is completely ignored. I >> imagine this is because the external information (from LDAP in my case) >> always takes precedence. >> >> -- >> Rob McBroom >> <http://www.skurfer.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<puppet-users%2Bunsubscribe@googlegroups.com> >> . >> For more options, visit this group at >> http://groups.google.com/group/puppet-users?hl=en. >> >> > > > -- > Tony >-- Tony -- 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.