[Puppet Users] Re: Announce: Puppet Server 2.2.0 available!
This was the missing information for me. Looking again on the auth.conf page, there is one link to that page, but it's down at the bottom of the allow-header-cert-info section. The writeup on the old auth.conf seems much more clear on how to use it: https://docs.puppetlabs.com/puppet/latest/reference/config_file_auth.html. On Saturday, November 21, 2015 at 9:19:54 AM UTC-8, Jeremy Barlow wrote: > > > ... > > If you were looking for even more detailed information on each of the > settings in the new rule format, you could also look here: > https://github.com/puppetlabs/trapperkeeper-authorization/blob/master/doc/authorization-config.md > . > > ... > > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/3f74f27c-d5a4-4dec-980e-7453ed402898%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: Announce: Puppet Server 2.2.0 available!
As I didn't see it in the documentation there, is there any documentation on migrating settings from the old format and file to the new one? On Thursday, November 19, 2015 at 5:44:01 PM UTC-8, Jeremy Barlow wrote: > > Puppet Server 2.2.0 is now available. > > This is a feature release which, based on contributions from Brice > Figureau, introduces a new Clojure-based auth.conf for Puppet Server. This > initiative was previously described in the "RFC 22: HTTP Authorization > Framework" thread here: > https://groups.google.com/forum/#!topic/puppet-dev/I4GVsA46C5g > > For more information on the new Clojure-based auth.conf, see: > http://docs.puppetlabs.com/puppetserver/2.2/config_file_auth.html > > Big shout-outs to Brice and to those who provided feedback through the RFC > process to make this feature a reality. > > This release also contains a fix for the following memory leak issue: > >- SERVER-1006 - jruby instances flushed by max-requests-per-instance >do not get unregistered from pool > > See the complete release notes for details about these changes: > https://docs.puppetlabs.com/puppetserver/2.2/release_notes.html > > For a list of all changes in this release, check out the JIRA page: > https://tickets.puppetlabs.com/browse/SERVER/fixforversion/14343 > > EOF > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/151dc0c2-aa02-42a2-af43-3c19cb08fee2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: Anyone successfully use mcollective shell plugin with RHEL 5 & 6?
I'm in a similar situation. I haven't tried it yet, but it might work with the new AIO packages, since they vendor a newer ruby version, 2.1.something, IIRC. On Tuesday, September 22, 2015 at 7:54:39 AM UTC-7, kbrede wrote: > > > The title pretty much says it all. I mostly manage RHEL 5 & 6 boxes that > come with ruby 1.8.7. The mcollective shell plugin requires ruby 1.9. > > SCL might work for the RHEL 6 systems but not 5. Building everything from > source would work but certainly not ideal. I took a stab at managing ruby > with rbenv yesterday and didn't manage to get the shell plugin to work. > > Any thoughts appreciated. > > Thanks, > > -- > Kent Brede > > > > > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/5d6cbdf2-e1a8-43fa-a942-afc9c49c3fbc%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: how were your puppet 3-4 upgrades?
Hmm, perhaps it's that I didn't upgrade puppetdb-terminus before trying to install puppetdb-termini then? I saved this from that time, and I not that the current version of puppetdb-terminus is 3: Transaction Check Error: file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/face/storeconfigs.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/face/node/status.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/puppetdb.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/facts/puppetdb.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/node/puppetdb.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/resource/puppetdb.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/reports/puppetdb.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/puppetdb.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/puppetdb/blacklist.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/puppetdb/char_encoding.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/puppetdb/command.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch file /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/puppetdb/config.rb from install of puppetdb-termini-3.0.1-1.el6.noarch conflicts with file from package puppetdb-terminus-2.3.6-1.el6.noarch On Wednesday, August 26, 2015 at 9:56:43 PM UTC-7, Michael Stanhke wrote: On Wed, Aug 26, 2015 at 9:54 PM, Michael Stahnke sta...@puppetlabs.com javascript: wrote: On Wed, Aug 26, 2015 at 10:56 AM, Ellison Marks gty...@gmail.com javascript: wrote: We ran into a couple issues, all on centos6. Several package conflicts. Had to remove the puppetlabs-release package to get the puppetlabs-release-pc1 package to install. New puppetserver package didn't obsolete the old puppet-server package, had to uninstall puppet-server package first. puppetdb-termini package doesn't appear to obsolete puppetdb-terminus package. These might have been fixed in the meantime. The terminus package gets pulled along for the ride on upgrades (for RPMs) and really just depends on the termini package. This was a work around to allow people to still freshly install puppetdb-2.3.z if they so desired. Basically, due to some crazy rules in the way rpm does obsoletes, we had to keep the package around. It's not hurting anything and is pretty much just an entry in the rpmdb at this point. Just to be clear here, this was intentional for two reasons. 1. You can use puppetserver with the 3 series as well. 2. It was designed to be an opt-in (intentional choice not happening by accident; however puppet-server vs puppetserver is not helping make that extremely obvious :/ ) If you're using mcollective-puppet, mcollective-puppet-agent can't find puppet at new path, needed to add plugin.puppet.command = /opt/puppetlabs/bin/puppet agent to the server.cfg on all mcollective servers. The puppetdb upgrade was fairly painless. Though, the fact that they dropped the v2 and v3 apis and completely altered the v4 api, as compared to the v4-experimental api, so that essentially no existing tools could work with the new puppetdb seems pretty boneheaded. What's the point of having an api if you drop it out the window? Other than that, there were a few differences between the future parser in 3.8 and the actual implementation in 4, but nothing to difficult to fix. On Monday, August 24, 2015 at 1:00:30 PM UTC-7, Christopher Wood wrote: I am not seeing a large amount of blog entries complaining about
[Puppet Users] Re: how were your puppet 3-4 upgrades?
We ran into a couple issues, all on centos6. Several package conflicts. Had to remove the puppetlabs-release package to get the puppetlabs-release-pc1 package to install. New puppetserver package didn't obsolete the old puppet-server package, had to uninstall puppet-server package first. puppetdb-termini package doesn't appear to obsolete puppetdb-terminus package. These might have been fixed in the meantime. If you're using mcollective-puppet, mcollective-puppet-agent can't find puppet at new path, needed to add plugin.puppet.command = /opt/puppetlabs/bin/puppet agent to the server.cfg on all mcollective servers. The puppetdb upgrade was fairly painless. Though, the fact that they dropped the v2 and v3 apis and completely altered the v4 api, as compared to the v4-experimental api, so that essentially no existing tools could work with the new puppetdb seems pretty boneheaded. What's the point of having an api if you drop it out the window? Other than that, there were a few differences between the future parser in 3.8 and the actual implementation in 4, but nothing to difficult to fix. On Monday, August 24, 2015 at 1:00:30 PM UTC-7, Christopher Wood wrote: I am not seeing a large amount of blog entries complaining about this upgrade, how has that gone for you? Is there anything you found particularly painful? Would you have done anything different in retrospect? I'm staring down a 3.7.2 - 4.2.1 upgrade and after reading a number of docs the back-of-the-envelope optimal upgrade path is as follows. If any of you have commentary I am quite interested, otherwise I will try it and see what happens. I feel like this might be more time-consuming work but less brainpower effort than just yanking everything to 4.2. 1) rpms up to puppet 3.8 PostgreSQL 8.4 to 9.4 PuppetDB 2.2.2 to 2.3.7 (puppetdb-terminus from 2.2.2 to 2.3.7) Puppet 3.7.2 to 3.8.2 2) enable the future parser 3) replace puppet 3.8.2, passenger 5 with puppetserver 1.1.1 4) replace puppetserver 1.1.1 with puppetserver 2.1.1 5) upgrade PuppetDB from 2.3.7 to 3.0.2 6) use the puppetlabs-puppet_agent forge module to upgrade agents to 4.2.1 My reading: https://docs.puppetlabs.com/puppet/latest/reference/ https://docs.puppetlabs.com/puppet/4.2/reference/upgrade_major_pre.html https://docs.puppetlabs.com/puppet/4.2/reference/upgrade_major_server.html https://docs.puppetlabs.com/puppet/4.2/reference/upgrade_major_agent.html https://docs.puppetlabs.com/puppet/4.2/reference/upgrade_major_post.html https://forge.puppetlabs.com/puppetlabs/puppet_agent https://docs.puppetlabs.com/puppetdb/2.3/upgrade.html http://docs.puppetlabs.com/puppetdb/3.0/upgrade.html http://www.postgresql.org/docs/9.4/static/upgrading.html (Although I may dump/restore the data via puppetdb since that's the actual api to the data, we do not log in via PostgreSQL.) -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/b21eff5b-49b4-4e98-8385-7850a96d0fa0%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: hiera - data retrieved once or everytime a lookup is required
In general, every time a hiera* function is called, the backend's lookup function will be called. Any caching decisions are performed by the backend code. In the case of this http-backend, I see a few parameters relating to caching, specifically cache_timeout and cache_clean interval, so I'm guessing it performs some caching. On Thursday, August 20, 2015 at 10:03:57 AM UTC-7, Andrew Hibbert wrote: Hi, I'm looking into hiera particularly the http backend ( https://github.com/crayfishx/hiera-http). I'm wandering when using hiera if a single lookup is done at the start of the puppet run or if everytime a value needs to be looked up the file is accesed or in this case the http api queried? Thanks -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/eb8cf232-bbae-4ab5-a718-c685a6eb9fdb%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: Puppet4, Hiera3, and environments
As far as I'm aware, in the default setup, there is no top level hieradata. as the comment says, the default datadir is /etc/puppetlabs/code/environments/%{environment}/hieradata So each environment will have it's own hieradata directory with it's own common.yaml. /etc/puppetlabs/code/hieradata will never be looked in. I can see some possible ways to accomplish your goal. The braindead one is to just link common.yaml into each environment's hieradata. A slightly more interesting approach would look like this: --- :backends: - yaml :hierarchy: - %{::environment}/%{::trusted.certname} # or however you want files organized under the environments - common :yaml: # datadir is empty here, so hiera uses its defaults: # - /etc/puppetlabs/code/environments/%{environment}/hieradata on *nix # - %CommonAppData%\PuppetLabs\code\environments\%{environment}\hieradata on Windows # When specifying a datadir, make sure the directory exists. :datadir: /etc/puppetlabs/code/hieradata Then your hieradata folder would look like this: /etc/puppetlabs/code/hieradata/ common.yaml production/ node1.example.com node2.example.com staging/ node3.example.com dev/ node4.example.com On Thursday, July 23, 2015 at 2:23:34 PM UTC-7, Stack Kororā wrote: Greetings, I need help; I have been going in circles for too long now and I am sure it is something silly that I over looked. I am attempting to use environments with a new server build for Puppet 4 (never could get it working under the Puppet 3 series; but I never put /that/ much effort into it either). I have a lot of servers that I really don't want to manage by hand or manually set anything per server. I would much rather have the agent contact the puppet server to find out what group it should be in. Yes, there is documentation on this but I can't get it to work and almost all of my internet sleuthing has returned results for the old way of doing things which doesn't appear to be working with Puppet 4 and Hiera 3. Any help would be much appreciated. My objective: Have a top-level hiera source that tells agents which environment to use for that host. Have hiera data in the environments provide further details (ntp servers and what not) for configuring the host. From my understanding of this[1] it should work. I also found several online blog examples doing something similar but using the old puppet3 way of doing things. [1] https://docs.puppetlabs.com/guides/external_nodes.html Everything in the production environment works all the time with Hiera. No other environment works with Hiera calls. I have found it easier to test for the ntp configuration because unless the system and environment are production, testing for the environment just gives 'nil' which doesn't tell me squat about what is wrong. At least asking for the ntp gives me errors to look at. :-) First, lets look at my top level hiera. Pretty default. You can see that I attempted to force the location for the yaml, but that didn't work either and I don't want _all_ the servers in the top level anyway. $ cat /etc/puppetlabs/code/hiera.yaml --- :backends: - yaml :hierarchy: - nodes/%{::trusted.certname} - common :yaml: # datadir is empty here, so hiera uses its defaults: # - /etc/puppetlabs/code/environments/%{environment}/hieradata on *nix # - %CommonAppData%\PuppetLabs\code\environments\%{environment}\hieradata on Windows # - /etc/puppetlabs/code/hieradata # When specifying a datadir, make sure the directory exists. :datadir: Now, lets look at the common file for the production environment. $ cat /etc/puppetlabs/code/environments/production/hieradata/common.yaml --- ntp::servers: - 192.168.109.2 - 192.168.109.3 environment: 'production' $ puppet apply --certname=puppetmaster01.me.fqdn -e notice(hiera('ntp::servers')) Notice: Scope(Class[main]): [192.168.109.2, 192.168.109.3] Notice: Compiled catalog for puppetmaster01.me.fqdn in environment production in 0.43 seconds Notice: Applied catalog in 0.09 seconds Great! Hiera is working! Now lets move that common file to the top level so that we can specify which environment to use (again testing with ntp so we get more than just 'nil' back). $ mv /etc/puppetlabs/code/environments/production/hieradata/common.yaml /etc/puppetlabs/code/hieradata/common.yaml $ puppet apply --certname=puppetmaster01.me.fqdn -e notice(hiera('ntp::servers')) Error: Evaluation Error: Error while evaluating a Function Call, Could not find data item ntp::servers in any Hiera data file and no default supplied at line 1:8 on node puppetmaster01.me.fqdn I found a blog that said the puppetserver has to be restarted after every yaml change (I think that is /way/ off base as that hasn't been quite my experience) but even doing a restart doesn't change the outcome. Where I am stuck: * I can't get any host to work with any environment
[Puppet Users] Re: Puppet4, Hiera3, and environments
Ah, sorry, forgot the .yaml part of the filenames. hieradata would actually look like this: /etc/puppetlabs/code/hieradata/ common.yaml production/ node1.example.com.yaml node2.example.com.yaml staging/ node3.example.com.yaml dev/ node4.example.com.yaml -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/5f1750a8-f26d-4606-bce5-21c4fb5789af%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: Puppet4, Hiera3, and environments
No, the environment variable is set in the puppet.conf of every host. I'm not even sure what the effect would be of trying to define environment in hiera. Please see: https://docs.puppetlabs.com/puppet/latest/reference/environments_assigning.html On Thursday, July 23, 2015 at 3:21:27 PM UTC-7, Stack Kororā wrote: Greetings, Thanks for the suggestions. I stepped out for a bit, but will try it as soon as I get back. On 07/23/2015 05:15 PM, Ellison Marks wrote: As far as I'm aware, in the default setup, there is no top level hieradata. as the comment says, the default datadir is /etc/puppetlabs/code/environments/%{environment}/hieradata So each environment will have it's own hieradata directory with it's own common.yaml. /etc/puppetlabs/code/hieradata will never be looked in. OK. I guess I miss understood that. I thought I would be able to define different types of environments which would be populated by that %{environment} variable. Thus, I thought there was something in the top level to tell the nodes which %{environment} variable (and subsequently which hieradata directory) to use. I can see some possible ways to accomplish your goal. The braindead one is to just link common.yaml into each environment's hieradata. So every host would be essentially defined in every common.yaml?? Doesn't that seem a little weird? A slightly more interesting approach would look like this: --- :backends: - yaml :hierarchy: - %{::environment}/%{::trusted.certname} # or however you want files organized under the environments - common :yaml: # datadir is empty here, so hiera uses its defaults: # - /etc/puppetlabs/code/environments/%{environment}/hieradata on *nix # - %CommonAppData%\PuppetLabs\code\environments\%{environment}\hieradata on Windows # When specifying a datadir, make sure the directory exists. :datadir: /etc/puppetlabs/code/hieradata Then your hieradata folder would look like this: /etc/puppetlabs/code/hieradata/ common.yaml production/ node1.example.com node2.example.com staging/ node3.example.com dev/ node4.example.com I will gladly give this a try as soon as I get a chance. Thanks!! -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/89be8506-e94e-48da-a0df-1dce4f3cf962%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Status of activemq
So, I'm going through the dance of upgrading to puppet 4.2 from 3.8 on CentOS 6, and I've run into a few things that brought up some questions. During the install, I ran into a number of collisions and incompatibilities between pc1 and the existing packages, but pertinent to this issue, I had to uninstall the old puppetlabs-release package in favor of the pc1 release package, as they were both claiming ownership of the signing key. It's mostly worked out, however, now I'm at the point where I'm working on migrating mcollective. Aside from some hiccups with involving incompatibilities with the new facter, I've got things talking to each other. Now though, I'm wondering about activemq. I've still got the version I had installed from the puppetlabs-deps repo, and it's working, I'm just not sure where I'm supposed to get updates at this point. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/16492e87-eb64-45a1-9dc5-6d861560fafd%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: Puppet rendered system unusable because of following a dependency tree removing an RPM
Could you please post the resource definitions that caused this? I ask because the yum provider should not do this with ensure = 'absent' but will with ensure = 'purged' while with the rpm provider, if you're forcing it for some reason, you could probably pass uninstall_option = '--nodeps' On Monday, December 1, 2014 2:11:31 PM UTC-8, Clay Stuckey wrote: I wrote two manifests for RHEL systems. One removed syslog. The other installed rsyslog. The syslog removal followed a tragic dependency tree removing RPMs such as coreutils, rpm, yum and pam. Once the servers rebooted, they were left in an unusable state. I had to boot in rescue mode, manually install files to get RPM going and reinstall about 300 RPMs that were removed. Is there some way to blacklist the removal of certain critical RPMs that might be found in a dependency tree? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/6a65be92-3410-4fd2-9d7a-d3191c320de7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: PuppetDB 2.2 and pg_trgm extension
As a note, I installed from the postgres yum repositories, as the version in stock centos 6 was getting too old. I had to install the -contrib package to get that extension. On Wednesday, October 1, 2014 7:11:17 AM UTC-7, Ken Barber wrote: I tried the same thing and got the error below. Any ideas? puppetdb=# create extension pg_trgm; ERROR: could not open extension control file /usr/share/postgresql/9.3/extension/pg_trgm.control: No such file or directory Seems odd, pg_trgm should be shipped with PostgreSQL. Maybe its a bug in that package or pg_trgm is shipped separately? I can probably take a look here. What distro and distro release is this exactly? Is this the PG shipped with the distro or is it from PGDG upstream? ken. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/1c86ca76-59e1-4b0e-85f7-503ce18a4a21%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Re: PuppetDB 2.2 and pg_trgm extension
If you're using ubuntu, It would probably just be sudo apt-get install postgresql-contrib You might need to restart postgres after that, not sure. On Wednesday, October 1, 2014 2:10:40 PM UTC-7, Taylor Leese wrote: Ken - I'm using Ubuntu 14 and I installed PuppetDB via https://forge.puppetlabs.com/puppetlabs/puppetdb. I also should have noted that I got this error while upgrading from PuppetDB 2.1 to 2.2. Postgres is version 9.3.5 if I remember correctly. Admittedly, I'm not very familiar with Postgres. Ellison - How would I go about installing this contrib package to see if that helps? - Taylor On Wednesday, October 1, 2014 10:39:07 AM UTC-7, Ellison Marks wrote: As a note, I installed from the postgres yum repositories, as the version in stock centos 6 was getting too old. I had to install the -contrib package to get that extension. On Wednesday, October 1, 2014 7:11:17 AM UTC-7, Ken Barber wrote: I tried the same thing and got the error below. Any ideas? puppetdb=# create extension pg_trgm; ERROR: could not open extension control file /usr/share/postgresql/9.3/extension/pg_trgm.control: No such file or directory Seems odd, pg_trgm should be shipped with PostgreSQL. Maybe its a bug in that package or pg_trgm is shipped separately? I can probably take a look here. What distro and distro release is this exactly? Is this the PG shipped with the distro or is it from PGDG upstream? ken. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/d4c48b05-badf-4891-8193-acdf6507767d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: If else statement if file exists
There are some parameters to the exec type that you could use, such as creates, onlyif and unless. However, the pseudocode you have above has the execs in your initial if block being run every time puppet runs, it seems. Is that really what you want? On Monday, August 18, 2014 2:45:23 PM UTC-7, Eugene Sapozhnikov wrote: I am trying to figure out a way to use a if statement to run multiple sets of commands depending if one file exists, but I am unable to find any good documented ways of doing this. Basic rough layout of what i would like to achieve is this: Any help on getting the correct syntax for the if statement would be appreciated if file /volumes/vol1 exists { *exec { generate_loopback_tor: command = /sbin/losetup /dev/loop6 /volumes/tor, unless = /sbin/losetup -a| /bin/grep \/volumes/tor\, } * *exec { generate_encrypt_tor:command = /sbin/cryptsetup create tor ,unless = /usr/bin/test -e /dev/mapper/tor, }exec { generate_mount_tor: command = /bin/mount /dev/mapper/tor /usr/local/tor, unless = /bin/mount | /bin/grep \/usr/local/tor\, } }* else { exec { generate_empty_file_tor: command = /bin/dd of=/volumes/tor bs=256M count=0 seek=1, unless = /usr/bin/test -e /volumes/tor, } exec { generate_loopback_tor: command = /sbin/losetup /dev/loop6 /volumes/tor, unless = /sbin/losetup -a| /bin/grep \/volumes/tor\, } exec { generate_encrypt_tor: command = /bin/echo \XX\ | /sbin/cryptsetup create tor /dev/loop6 -, unless = /usr/bin/test -e /dev/mapper/tor, } exec { generate_zero_tor: command = /bin/dd if=/dev/zero of=/dev/mapper/tor count=512 bs=1024, unless = /sbin/fdisk -lu | /bin/grep \/dev/mapper/tor\, } exec { generate_mkfs_tor: command = /sbin/mke2fs -j -O dir_index /dev/mapper/tor , onlyif = /sbin/parted -l | /bin/grep \Error: /dev/mapper/tor: unrecognised disk label\, } exec { generate_mount_tor: command = /bin/mount /dev/mapper/tor /usr/local/tor, unless = /bin/mount | /bin/grep \/usr/local/tor\, } } -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/9f468d9c-cf7d-4ea6-96bc-1e4c1b6ee155%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: Puppet Dashboard HTTP Basic Authentication Issues
Where it has the IP address 192.168.240.110 and the comment # your puppet master's IP, you are meant to replace the give IP address with the IP address that your puppet master will be using to submit reports. On Thursday, July 31, 2014 9:28:20 AM UTC-7, Stella wrote: Hi, I am trying to configure Puppet (3.6.2) Dashboard (1.2.23) with HTTP Basic Authentication. I followed this document's Security section: http://docs.puppetlabs.com/dashboard/manual/1.2/configuring.html Basically, in Dashboard’s vhost configuration, I added those lines: Location / Order allow,deny Allow from 192.168.240.110 # your puppet master's IP Satisfy any AuthName Puppet Dashboard AuthType Basic AuthUserFile /etc/httpd/webaccess Require valid-user /Location Then I also created a user/password combination: htpasswd -c /etc/httpd/webaccess myusername Restart httpd service and Web access to the interface works fine. It prompts me for username/password. However, when I ran puppet agent --test, it failed. Puppet cannot get nodes from the dashboard. Questions: 1. I googled and found this issue: https://projects.puppetlabs.com/issues/4890. It points to another two issues. Should I follow those two issues to fix my problem? issue #7173 -- Puppet cannot submit reports to dashboard. Modify puppet/lib/puppet/reports/http.rb to properly parse usernames and passwords out of the reporturl configuration option. issue #5126 -- Puppet cannot get nodes from the dashboard. Modify the external node script to properly parse usernames and passwords out of its URL 2. In the document, it has a notice Notice that you need to leave an access exception for your puppet master. Although it’s possible to configure Puppet to use a password when connecting to Dashboard (by adding a username and password to Puppet’s reporturl and the URL used by the external_nodes script), this currently requires patching Puppet’s http report handler; see issue 7173 for more details. I am a little confused here. you need to leave an access exception for your puppet master, does this refer to those two lines in the vhost config: Order allow,deny Allow from 192.168.240.110 # your puppet master's IP If yes, does that mean if I have those two lines to leave an access exception for puppet master, I don't need to apply those two patches? But now with those two lines, I still can't get puppet agent to get node from dashboard. Maybe I should go ahead and apply those two patches? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/b9c50c8c-fe2b-4c8c-947b-a2a0c08f6485%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Each loop issue
That error means that the @server_roles variable is holding nil, as nil does not have an each method to call. Perhaps the new parser is evaluating things differently and not setting that variable. On Tuesday, July 1, 2014 5:25:15 PM UTC-7, martin...@gmail.com wrote: Henrik, Tristan, thanks for your replies! I've added parser = future on both master and agent, inside [main], and also I'm still using --parser future, just in case. You both were right, and I'd use notify instead of notice in that snippet. I think that parser option is working now, but it's breaking a template that was working until now. So here I go again for your help, as I don't think that the parser should be doing this. Here is the output of the new error: *Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed to parse template sudo/sudoers.erb:* * Filepath: /etc/puppet/environments/integration/modules/sudo/templates/sudoers.erb* * Line: 42* * Detail: undefined method `each' for nil:NilClass* * on node test01* Here is the line 42 of the template file: snip... DEPLOY ALL = NOPASSWD: /usr/bin/service apache2 restart DEPLOY ALL = NOPASSWD: /usr/bin/service php5-fpm restart *% @server_roles.each do |role| -% == line 42* % if role == testuser % DEPLOY ALL = NOPASSWD: /usr/bin/service tomcat7 restart DEPLOY ALL = NOPASSWD: /usr/bin/service tomcat7 start DEPLOY ALL = NOPASSWD: /usr/bin/service tomcat7 stop % end % ...snip I've tried with each @server_roles too, but still broken. May be enabling the extra features of the parser, puppet tries to do something else with the word each, but I'm totally lost here. Is this behavior expected? Is there any way that I can debug any deeper on this? Again, thanks in advance for any help. Cheers, Martin El martes, 1 de julio de 2014 12:27:16 UTC-3, Henrik Lindberg escribió: On 2014-30-06 23:58, martin...@gmail.com wrote: Hi Puppet users! I'm having an issue with each loop on puppet, and I just can't figure out what am I doing wrong, so any help will be much appreciated. Here is my test.pp example: class mytestclass { $stuff = [1, 2, 3] each($stuff) |$x| { notice { $x: } You probably meant notify { $x: } notice is a logging function, and you can do notice $x } } For this snippet to work, you must also do include mytestclass outside the scope of that class, otherwise nothing happens. And here is the output when trying to apply it: /Error: Could not parse for environment production: Could not match |$x| at /tmp/test.pp:10/ Sounds like --parser future is not in effect. I've parser = future inside my puppet.conf, ruby-rgen is installed in both client and server. I'm also running it with --parser future on the client, but no joy. I've been playing with variants like $stuff.each, using hashes, and a few more desperate ideas. OS: Ubuntu 12.04 Puppet: 3.5.1-1puppetlabs1 ruby-rgen: 0.6.5-1puppetlabs1 I'm clearly missing something, but can't find what. As another poster suggested, maybe you have the parser=future setting in the wrong section. Hope the above helps - henrik -- Visit my Blog Puppet on the Edge http://puppet-on-the-edge.blogspot.se/ -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/6e72c1a9-e6d9-4f88-92e9-9fb4d1624e53%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] what is actually undefined method 'include?' for nil:NilClass on node error?
It's weird, but it looks like the hostname isn't being defined, or isn't being sent properly. See info: Expiring the node cache of With just a blank afterwards. Does running facter on the affected node show anything unusual? On Friday, May 30, 2014 3:18:58 PM UTC-7, Sans wrote: On Friday, May 30, 2014 11:13:51 PM UTC+1, Henrik Lindberg wrote: Ok, then webrick is not the cause of your problem. Run with --trace set to get a ruby stack trace. That will help to find what is causing the problem. - henrik Yes, that was the output from --trace and that's why I where I'm a bit stuck as it's not saying that much. -San -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/a95808c8-e9e5-4018-be67-74abb79759f4%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: Puppet 3.6.0... and scaling?
Hey, I think I remember another thread that mentioned that there were some performance issues with directory environments. Basically, the next 3.6 release will add a caching option that mostly alleviated the problem for the OP from that thread. https://groups.google.com/forum/#!topic/puppet-users/wzy8NPWauu4 On Thursday, May 22, 2014 9:59:25 AM UTC-7, Tristan Smith wrote: After much hacking to get directory environments settled and the manifest directory in place, I rolled Puppet 3.6 to our puppetmasters last night. One of our puppetmasters has nearabouts 1000 clients, runs passenger under apache 2.2 (ruby 1.8.7, sadly, thanks CentOS), and normally doesn't really notice puppet running - basically peaks out at 20% CPU usage. Under 3.6, even doubling the passenger worker count, it couldn't keep up with the load - I started running out of apache procs due to workers stuck in waiting mode and they were all just hanging waiting for a passenger worker to free up. CPU usage on the system capped out. Strace -c on the passenger workers had them spending 30% of their time in clone() and 60% in wait4(), fwiw. I'm going to be digging to figure out what in hell changed to cause this, but has anyone else experienced a significant change in performance under 3.6? --Triss -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/5fea7228-4800-4b88-8e99-766636b43df7%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: Puppet 3.6.0... and scaling?
Ah, whoops. Shame on *me* for not remembering what version they were talking about in that thread. On Thursday, May 22, 2014 12:21:37 PM UTC-7, Daniele Sluijters wrote: The environment caching is already there, use the environment_timeout setting. Mine is set to unlimited and I reload at deploy time by touching tmp/restart.txt. This so far seems to work really well. On Thursday, 22 May 2014 19:26:47 UTC+2, Tristan Smith wrote: Dang. That does look an awful lot like my issue. I am in fact using directory environments (mostly because of the screaming deprecation warnings telling me I was a bad man if I didn't). :/ Shame on me for using a .0 release. On Thursday, May 22, 2014 10:17:24 AM UTC-7, Ellison Marks wrote: Hey, I think I remember another thread that mentioned that there were some performance issues with directory environments. Basically, the next 3.6 release will add a caching option that mostly alleviated the problem for the OP from that thread. https://groups.google.com/forum/#!topic/puppet-users/wzy8NPWauu4 On Thursday, May 22, 2014 9:59:25 AM UTC-7, Tristan Smith wrote: After much hacking to get directory environments settled and the manifest directory in place, I rolled Puppet 3.6 to our puppetmasters last night. One of our puppetmasters has nearabouts 1000 clients, runs passenger under apache 2.2 (ruby 1.8.7, sadly, thanks CentOS), and normally doesn't really notice puppet running - basically peaks out at 20% CPU usage. Under 3.6, even doubling the passenger worker count, it couldn't keep up with the load - I started running out of apache procs due to workers stuck in waiting mode and they were all just hanging waiting for a passenger worker to free up. CPU usage on the system capped out. Strace -c on the passenger workers had them spending 30% of their time in clone() and 60% in wait4(), fwiw. I'm going to be digging to figure out what in hell changed to cause this, but has anyone else experienced a significant change in performance under 3.6? --Triss -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/1cec9580-c97f-4ed1-8d08-7f94fe3e9cba%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [Puppet Users] Enumerating Puppet Arrays
Potentially easier, you could use prefix($scripts, '/path/'), which comes from puppetlabs-stdlib to put the path on all members of the array. Then just pass the now prefixed array to the defined type described above. This avoids storing the script names externally, which may or may not be desirable. If the scripts you want in cron might change now and then, then the external lookup is the better way. On Wednesday, April 2, 2014 4:07:04 PM UTC-7, Christopher Wood wrote: Check out defined types. For a faked together example: define make_it_so::make_one_thing_so { cron { $title: command = /path/$title, user= 'deploy', hour= '*/4', minute = '0', } } http://docs.puppetlabs.com/learning/definedtypes.html Then add a data structure which you will presumably retrieve from hiera: $scripts = { 'a.rb' = {}, 'b.rb' = {}, } http://docs.puppetlabs.com/hiera/1/ Then use create_resources to make as many of these as you need, without putting arrays or hashes in your puppet code ($scripts here will be automatically looked up via hiera): class make_it_so ( $scripts = {} ) { create_resources('make_it_so::make_one_thing_so', $scripts) } http://docs.puppetlabs.com/references/latest/function.html#createresources On Wed, Apr 02, 2014 at 03:03:42PM -0700, Joaquin Menchaca wrote: Is there a way to do something like this: class make_it_so { $scripts = [a.rb, b.rb] cron { $scripts: command = /path/$scripts, user= 'deploy', hour= '*/4', minute = '0', } } The attribute usage of the array will just take the entire array concatenated together. :'( I would like to have each resource declaration have a correspond to a matching element of the array I would like the attribute with $scripts to match to the iteration of the resource declaration $scripts. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to [1]puppet-users...@googlegroups.com javascript:. To view this discussion on the web visit [2] https://groups.google.com/d/msgid/puppet-users/6db6cb93-e9c4-4a42-91e7-36aa7583b5e1%40googlegroups.com. For more options, visit [3]https://groups.google.com/d/optout. References Visible links 1. mailto:puppet-users+unsubscr...@googlegroups.com javascript: 2. https://groups.google.com/d/msgid/puppet-users/6db6cb93-e9c4-4a42-91e7-36aa7583b5e1%40googlegroups.com?utm_medium=emailutm_source=footer 3. https://groups.google.com/d/optout -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/d3cc21c1-05d9-4c58-8e5f-65e60254c391%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: hash of arrays to call a define
Normally, I'd say create_resources(), but that needs a hash of hashes, not a hash of arrays. Might I ask what the numbers represent, if they aren't present in the define? On Sunday, March 23, 2014 10:10:24 PM UTC-7, backg...@gmail.com wrote: Given this hash of arrays: $players = { 'joe' = [ '150', '200', ], 'janet' = '120', '240', ], } ... and given a define that's like this: profile::generate {$player: source = puppet:///modules/$module_name/$player } ... how do you call profile::generater without hardcoding 2 defines? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/e6143da3-1ac7-4380-8a31-6bb39cf9575f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[Puppet Users] Re: installing a package nmap on ubuntu
What version of ubuntu are you running. This type of thing crops up in the older/unsupported versions, IIRC. On Friday, October 18, 2013 12:30:37 AM UTC-7, kampy wrote: Hi, i am new to puppet please help me how to resolve this issue. below is my script class nmap { package { 'nmap': ensure = installed, } } include nmap below is the error it is failing err: /Stage[main]/Nmap/Package[nmap]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install nmap' returned 100: Reading package lists... Building dependency tree... Reading state information... The following NEW packages will be installed: nmap 0 upgraded, 1 newly installed, 0 to remove and 159 not upgraded. Need to get 1643 kB of archives. After this operation, 6913 kB of additional disk space will be used. WARNING: The following packages cannot be authenticated! nmap E: There are problems and -y was used without --force-yes notice: Finished catalog run in 1.16 seconds please help in understanding what i am missing here to install this package Thanks in advance Regards, kampy -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: [mcollective] mc does not discover any nodes
To get the agent, you need to install mcollective-service-agent as well, not just mcollective-service-common. Don't forget to restart the mcollective daemon after installing. On Thursday, October 10, 2013 2:34:07 AM UTC-7, Vincent Nawrocki wrote: Hi all ! I'm working on mcollective for a few days and I have a problem using agents. I'm on CentOS 6.4, using activeMQ 5.8.0 and mcollective 2.2.4. I Installed the service agent using yum on the client : yum install mcollective-service-common I can see it in the doc list using mco plugin doc. But now I want to use it and nodes never respond : -- [root@poste306 puppet]# mco ping poste306.s11.pfd time=161.65 ms poste302.s11.pfd time=163.25 ms poste304.s11.pfd time=166.48 ms ping statistics 3 replies max: 166.48 min: 161.65 avg: 163.79 [root@poste306 puppet]# mco rpc service status service=httpd Discovering hosts using the mc method for 2 second(s) 0 No request sent, we did not discover any nodes. --- I don't see what's wrong. No input in the mcollective.log file. Nothing on both servers and client sides. I appreciate any help or hint about this issue. Regards, Vincent. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: pypuppetdb 0.0.4 / puppetboard 0.0.2
Just upgraded, looks awesome! On Tuesday, October 15, 2013 12:07:19 AM UTC-7, Daniele Sluijters wrote: Hello everyone, It's been way to long since the release but I finally had some time to sort a few things out and release updates to both pypuppetdb and Puppetboard. For those of you who have no idea what this is about: * pypuppetdb is a library to work with the PuppetDB API in Python; * Puppetboard is meant as a replacement to Puppet Dashboard leveraging PuppetDB through pypuppetdb as its datasource. New is PuppetDB 1.5 (API v3) compatibility. None of the new features of API v3 have been implemented yet, that's going to be the goal for the coming weeks but everything that used to be possible with API v2 + Experimental is now available over API v3. Because PuppetDB 1.5 dropped the /experimental endpoints those have been removed from pypuppetdb too, even for older versions of PuppetDB. Puppetboard has gained a metrics tab and facts now have pretty pie-charts as well as an assorted set of small fixes and improvement across the board. Once pypuppetdb has gained support for all the new features in API v3 there are going to be some significant changes to Puppetboard, both in its capabilities and the UI. For those of you who will be at Puppet Camp London in November, I'm hoping I'll be able to show you at least some of that. As usual you can get the code from: * pypuppetdb: https://github.com/nedap/pypuppetdb or `pip install pypuppetdb` * puppetboard: https://github.com/nedap/puppetboard -- Daniele Sluijters -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: install certificate - unless not working
Might have something to do with the pipe? According to the docs, the windows provider directly executes the binary. The pipe might be a function of the shell... You might try using the alternate syntax they suggest and execute your command through cmd.exe. http://docs.puppetlabs.com/references/latest/type.html#exec-providers On Thursday, October 3, 2013 8:04:17 AM UTC-7, Armindo Silva wrote: Hi I am installing the OpenVPN's certificate if it is not present with the following exec: exec { 'OvpnCert': command = 'certutil.exe -addstore TrustedPublisher c:\installers\OpenVPN_Cert.cer', require = File[ 'c:/eufinity/installers/'], unless = 'certutil.exe -verifystore TrustedPublisher | findstr OpenVPN', } Even when *certutil.exe -verifystore TrustedPublisher | findstr OpenVPN*returns 0 ( *echo %errorlevel%* after running the unless cmd: returns *0* when the OpenVPN is present and *1* otherwise), the exec always runs. What am I doing wrong? Thank you. Armindo -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: hiera oddities
Prefix doesn't return a string, it returns an array. I think this gets stringified in the error message, but it screws up the lookup. Try hiera($role_value[0]). On Friday, September 27, 2013 9:32:12 AM UTC-7, Tom Hanstra wrote: I'm having a real trouble getting hiera to work as expected. My current setup has a puppet master and an agent. On both I have the same /etc/hiera.yaml file linked into the /etc/puppet directory. I've also been able to confirm that hiera is seeing the right json files in /var/lib/hiera. What I'm seeing right now is that if I hard code a value (in my case a value called role_puptest1). In the class I'm working on, if I hardcode that value into the hiera lookup: $server_role = hiera('role_puptest1') then puppet agent runs just fine. However, if I build the value role_puptest1 from other information, for instance like this: $role_value = prefix([$hostname],'role_') $server_role = hiera($role_value) I get this error when running the puppet agent: Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find data item role_puptest1 in any Hiera data file and no default supplied at /etc/puppet/modules/server/iptables2/manifests/init.pp:9 on node puptest1.library.nd.edu Based on the error, it is parsing the role_value properly (still has role_puptest1), but it is not finding the value in the file. At the same time, command line hiera on both my agent and my master find the file properly: puptest1 800$ hiera role_puptest1 role_LOCKSS So, why is the generated value which comes up with the same string of data not finding the record in the hiera data file? I'm using hiera 1.2.1 and puppet 3.2.4 on RHEL 6. Thanks, Tom -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: hiera hash into multiple templates
Perhaps make it a defined type and use the create resources function. I can't really think of any other way to correctly scope the various parameters. You'd have to tweak your yaml slightly... --- #icecast type: vanilla icecast_clients: client1: cid: 999 cid_hostname: icecast1 cid_ipaddress: 192.168.254.12 password: WhatYoSay? port: 200 concurrency: 50 num_encoders: 2 client2: cid: 998 cid_hostname: icecast2 cid_ipaddress: 192.168.254.13 password: NoWay! port: 201 concurrency: 25 num_encoders: 3 define icecast_client($cid, $cid_hostname, $cid_ipaddress, $password, $port, $concurrency, num_encoders) { file { /home/icecast/${cid}.icecast.xml: ensure = file, content = template('icecast/icecast.xml.erb'), } } $icecast_clients = hiera('icecast_clients') create_resources(icecast_client, $icecast_clients) You could use hiera_hash if you wanted to merge multiple levels of your hierarchy. You could also use the cid in place of client1, client2, etc, then you could remove the $cid parameter in the defined type and just use $title. On Friday, September 27, 2013 11:52:09 AM UTC-7, Greg Coit wrote: Hi all, I've started testing with using Hiera for storing configs and I have a noobish question. Here's an example of my yaml file (/etc/puppet/hieradata/vertname.yaml): --- #icecast type: vanilla client1: cid: 999 cid_hostname: icecast1 cid_ipaddress: 192.168.254.12 password: WhatYoSay? port: 200 concurrency: 50 num_encoders: 2 client2: cid: 998 cid_hostname: icecast2 cid_ipaddress: 192.168.254.13 password: NoWay! port: 201 concurrency: 25 num_encoders: 3 Now, I'd like to be able to create a config file for each client: file { '/home/icecast/${cid}.icecast.xml': ensure = file content = template('icecast/icecast.xml.erb'), } The question is how do I put the above into a loop which iterates over the client arrays in the hiera file (each client config file should get a unique cid, cid_hostname, etc)? Thanks in advance!! Greg -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Vagrant+Puppet using RVM to install Apache2+Passenger fails
At a guess, you're simply including things in a specific order, which has no effect on the order that puppet will attempt to apply them. Try giving things an explicit order with before/after, require/subscribe, or -/~. On Monday, September 23, 2013 5:19:45 AM UTC-7, Christian wrote: Hi all, hope to be on the right place here.. I'm playing with Vagrant and Puppet for a small Apache2+Passenger Server above ubuntu-precise-32. I like to get this working for a small group of developers. I confess, I didn't read the whole documentation about puppet, but I've browsed the whole Internet twice! ...about this problem. I only want to get this small environment working at the moment, so I don't want to spend much time in reading and coding examples. Maybe some of you can help me a bit. The manifest is working so far, but the Installation of passenger fails with this error: notice: /Stage[main]/Rvm::Passenger::Apache::Ubuntu::Post/File[/etc/apache2/mods-enabled/passenger.load]/ensure: created err: /Stage[main]/Apache::Service/Service[httpd]: Failed to call refresh: Could not start Service[httpd]: Execution of '/etc/init.d/apache2 start' returned 1: at /tmp/vagrant-puppet/modules-0/apache/manifests/service.pp:28 notice: /Stage[main]/Install-rvm/Rvm_gem[ruby-1.9.3-p448@mygemset/ruby-hmac]/ensure: created notice: /Stage[main]/Postconfig/Exec[use-rubyver]/returns: executed successfully notice: /Stage[main]/Postconfig/Exec[gemset-use]/returns: executed successfully err: /Stage[main]/Postconfig/Exec[passenger-install-apache]/returns: change from notrun to 0 failed: rvm gemset use mygemset passenger-install-apache2-module --auto returned 1 instead of one of [0] at /tmp/vagrant-puppet/manifests/development.pp:62 The passenger-install-apache2-module command runs smoothly if I fire it in a shell on the vagrant box. I think thats the problem for the first error. Apache cannot start because of the missing module. The manifest I use is this: http://pastie.org/private/xcsmy8b6lwivymegeqcrrw Thanks in advance! Chris -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Puppet nodes unable to send report to Puppet Master running under Passenger
Anything showing up in your logs? On Friday, September 20, 2013 2:17:32 PM UTC-7, F. Y. wrote: Hello all, I recently switched to running puppet master using Passenger. However, I am seeing agents unable to send reports after a bunch of 'master' processes starting to accumulate and eat all the RAM and swap space. Error: Could not send report: Error 500 on SERVER: !DOCTYPE HTML PUBLIC -//IETF//DTD HTML 2.0//EN htmlhead title500 Internal Server Error/title /headbody h1Internal Server Error/h1 pThe server encountered an internal error or misconfiguration and was unable to complete your request./p pPlease contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error./p pMore information about this error may be available in the server error log./p hr addressApache/2.2.22 (Ubuntu) Server at puppetmaster.example.com Port 8140/address /body/html These are the 'master' processes launched: root@puppetmaster:/etc/puppet# ps aufx | grep master root 4352 0.0 0.0 6504 616 pts/1S+ 17:07 0:00 | \_ grep --color=auto master puppet2100 14.5 7.2 4703940 1793068 ? D15:06 17:34 master puppet2145 4.4 7.6 4434900 1893028 ? D15:08 5:17 master puppet2156 3.4 8.0 7484288 1986164 ? D15:08 4:08 master puppet2182 2.9 8.7 3612508 2169308 ? D15:08 3:29 master puppet2191 4.0 10.7 4893500 2661364 ? D15:08 4:49 master puppet2200 24.8 16.0 12025276 3953904 ?D15:08 29:39 master puppet3585 0.1 0.3 178984 81944 ?S16:08 0:06 master puppet3603 0.2 0.3 178892 88320 ?S16:08 0:07 master puppet3612 0.1 0.3 178196 84316 ?S16:08 0:03 master Puppet Master is running on Ubuntu 12.04, and is running Puppet 3.3.0. Can anyone please advise how to troubleshoot this? I am at my wit's end here. Thanks. F. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Facter value at Catalog compilation
Post the code for the custom fact? On Thursday, September 19, 2013 2:23:15 PM UTC-7, Frederiko Costa wrote: Hi, I've got a facter shipped with a custom module. This factor returns the version of a determined package. It returns nil if the package is not installed yet. When running for the first time, assuming the package is not installed, the facter will be still nil. When referring to that facter in the manifest - for example in a file resource - it fails, because it has been compiled with a nil value. When the package is already installed, it works great. Just out of curiosity, is there any workaround other than if/else statements? Thanks, -frederiko -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: /var/opt/lib/pe-puppet/reports/$hostname yaml files not recent
By default, reports are not stored on the individual nodes, but sent to the master. There are some situations where local files get created, mostly involving the node running standalone. Not sure if PE has different defaults, but normally you should find all reports on the master, in the directory specified by reportdir. http://docs.puppetlabs.com/references/latest/configuration.html#reports You should check all the report* parameters on that page for correctness in your environment. Details on the report formats is on this page. http://docs.puppetlabs.com/references/latest/report.html An option to 'reports' that is oddly not mentioned on that page is the puppetdb option, which is to store reports in puppetdb, and is described on this page. http://docs.puppetlabs.com/puppetdb/1.4/connect_puppet_master.html On Monday, September 16, 2013 9:10:05 AM UTC-7, root wrote: Still cannot figure out why I have such a variety of dates for the yaml files that exist in /var/opt/lib/pe-puppet/reports/`hostname` on each node. Each node is configured with report = true, and the reports are supposedly being sent to the Master. Not sure at all why sometimes I get a local yaml file, and sometimes I don't. Anyway, I'm using Puppet Enterprise, and my reading of the docs tells me the Master is storing the info from each run in PuppetDB. Anyone have any luck extracting info from PuppetDB? Again, what I'm looking for is what Puppet changed or wants to change on each node. Thanks. On Saturday, September 14, 2013 3:16:35 PM UTC-4, root wrote: Cross-posted from Puppet Enterprise Users: Is Puppet Enterprise (3.0) supposed to create a yaml file in /var/opt/lib/pe-puppet/reports/$hostname every time it runs? Because the files in this directory on all my nodes are not very consistent and they are not recent. If I do a puppet run on the node either through the Console or manually on the the node, it does not create a new yaml report file. My bigger need is to generate my own custom reports from Puppet runs. I thought these yaml files would be easier to parse than the log messages sent to syslog. The information I want to display is a summary of what Puppet found to change for particular class/modules. Thanks. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] The Foreman: Query facts from ENC PuppetDB?
There's a beta frontend for puppetdb floating around the list called puppetboard. It handles reports, as well as a few other things. It's pretty sweet, all things considered. https://groups.google.com/forum/#!searchin/puppet-users/puppetboard/puppet-users/PVbPY3z8uFI/5yFZgVIG5wEJ On Tuesday, August 27, 2013 10:45:55 PM UTC-7, Stephen Price wrote: Sorry, I meant I'm using Hiera as an ENC. I did see that PuppetDB has report storage, but without an easy way to use that data (short of creating my own interface utilizing queries to PuppetDB), it's not very useful yet. I figured Foreman would be a decent drop-in for reports. I got a suggestion from someone else to take a look at creating a custom facts terminus and have the master sending facts directly to both Foreman and PuppetDB, but that means designing my own REST interface. Kind of daunting. Thanks for the tip though. I'll poke around foreman-users for some ideas. On Tue, Aug 27, 2013 at 9:03 PM, Ken Barber k...@puppetlabs.comjavascript: wrote: I've been using PuppetDB as an ENC for a while, So PuppetDB is not an ENC, do you mean Foreman? but I haven't really utilized it for stored configs or anything. I was mostly interested in replacing Dashboard's reporting capabilities, but PuppetDB doesn't yet do anything (that I can see) with reports. So PuppetDB has experimental report storage: http://docs.puppetlabs.com/puppetdb/1.4/connect_puppet_master.html#edit-puppetconf So I'm currently looking into setting up a separate Foreman server. I saw the script mentioned in the manual that's meant to be run as a cron job on the master, which should push facts to the Foreman, but is there a way to do the reverse, and have the Foreman query the Master or PuppetDB directly for facts? So this is possibly not the correct forum to ask? If you don't get an answer, you might want to ask on foreman-users: https://groups.google.com/forum/#!forum/foreman-users ken. -- You received this message because you are subscribed to a topic in the Google Groups Puppet Users group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/puppet-users/I0KzcD3wl0s/unsubscribe. To unsubscribe from this group and all its topics, send an email to puppet-users...@googlegroups.com javascript:. To post to this group, send email to puppet...@googlegroups.comjavascript: . Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out. -- Stephen Price -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: passenger installation file passenger-install-apache2-module missing
I believe that script comes along when you use gem to install rack and passenger, as per the instructions: http://docs.puppetlabs.com/guides/passenger.html#install-rackpassenger I'm not sure what's contained in the package from the foreman repository. Perhaps it already contains a compiled .so file? As an aside, though it's not listed in the tutorial, I installed mod_passenger from the semi-official stealth monkeys repo, instruction here: http://www.modrails.com/documentation/Users%20guide%20Apache.html#_installing_or_upgrading_on_red_hat_fedora_centos_or_scientificlinux On Tuesday, August 27, 2013 9:13:09 AM UTC-7, Andreas Dvorak wrote: Dear all, I have installed yum install rubygem-passenger Installed: rubygem-passenger.x86_64 0:4.0.5-3.el6 Dependency Installed: rubygem-daemon_controller.noarch 0:1.1.4-3.el6 rubygem-fastthread.x86_64 0:1.0.7-1.el6 rubygem-rack.noarch 0:1.0.1-2.el6 rubygem-rake.noarch 0:0.8.7-2.1.el6 but the file passenger-install-apache2-module to create the mod_passenger.so is missing. The package comes from the foreman repository. Can somebody please help me? Best regards, Andreas -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] Using hiera lookups with defined types
Agreed, create resources is the way to create defined types using hiera data. As a note though, if you need to create a bunch of defined types without parameters, if, for example, you're only relying on the name parameter, you can pass an array of titles to a declaration. http://docs.puppetlabs.com/puppet/3/reference/lang_resources.html#array-of-titles yaml: --- logrotate_users: - alice - bob - carol pp: $logrotate_users = hiera_array('logrotate_users') cron_jobs::logrotate::users { $logrotate_users: } On Friday, August 23, 2013 10:17:05 PM UTC-7, mcd wrote: Well normally you would use hiera_hash() and create_resources() to do it, like this: # yaml data source --- cron_jobs::logrotate::users kenweiss: hour = 5 tomjones: hour = 3 # pp file --- class cron_jobs::logrotate ( $hour, $minute, $weekday ) { ... $user_cron_options = hiera_hash('cron_jobs::logrotate::users', false) if $user_cron_options{ create_resources('cron_jobs::logrotate::user_cron', $user_cron_options) } } One thing I don't know is how to do that for defined types that do not have any parameters. Unfortunately create_resources requires a hash for the second argument, so you have to use hiera_hash to pull in the data, so it has to be a hash in hiera. And I haven't figured out how to define an empty hash yet. Or transform an array into a hash that would work for create_resources. /shrug Chris On Fri, Aug 23, 2013 at 5:01 PM, Ken Weiss ken@ucop.edu javascript: wrote: Hi all, I am trying to use hiera and .yaml files to load parameters into my declared classes. For basic classes it works great. For example: class cron_jobs::logrotate ( $hour, $minute, $weekday ) {... node fqdn: test.my.com I declare the class for my node very simply: class {'cron_jobs::logrotate': } If I create a file in the default hiera data directory called test.my.com.yaml and include this: cron_jobs::logrotate::hour: 5 then sure enough, when I do a puppet apply the cron job is created to run at 5:00 AM. My problem is extending this to work with defined types. Let's say my defined type looks like this when I declare it: cron_jobs::logrotate::user_cron {'kenweiss' :} What do I put in my .yaml file in order to get Puppet to load the parameters automatically? I tried a couple of things... cron_jobs::logrotate::user_cron::kenweiss::hour 5 cron_jobs::logrotate::user_cron[kenweiss]::hour 5 Neither worked, and I can't think of any other reasonable syntax. Can anyone point me in the right direction? --Ken Weiss -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com javascript:. To post to this group, send email to puppet...@googlegroups.comjavascript: . Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Best practices for infrastructure
With hiera, you'll obviously need to sync your hiera data and hierarchy, along with your modules and whatever else, between your masters. For mcollective, There are ways to set up a network of brokers, both to distribute load and to make sure that if a site gets separated, mcollective will still work locally. http://docs.puppetlabs.com/mcollective/deploy/middleware/activemq.html#settings-for-networks-of-brokers. That entire page is actually pretty useful... On Friday, August 23, 2013 9:03:41 AM UTC-7, Paul Archer wrote: I'm new to puppet, fixin' to (in Texas parlance) setup a largish installation, and want to make sure I get things right the first time. I have a colo plus several satellite locations, with many more on the way. I'll be using open-source Puppet, as we have way too many nodes to manage (potentially 275+ at each site) to afford PE. I'm thinking about setting up a master in the colo with a slaved master at each site, following this document: http://docs.puppetlabs.com/guides/scaling_multiple_masters.html Each master will run passenger/apache. I'll have puppetDB running on the primary master at the colo (with an eye to moving it to a separate server if needed). I'll probably use Subversion (but maybe git) for synchronization of data among masters. I'd like to use mcollective and hiera, so those will probably get setup on the primary master. (Do I need them on each master?) One of our sites is a lab, so I'll be doing testing there.I'll need to setup some kind of dev/test/prod environment system. I'll be testing both dashboard and foreman, although I need to do automated bare-metal installs, so foreman will probably win out there. Each site also has around 100 nodes that break and get swapped out frequently, so (depending on what foreman can do for me in the installation process) I might need to be relatively lax about certificates to avoid revoking and regenerating them constantly. (We're talking 2-3 nodes a week getting pulled, worked on, and replaced or reimaged.) So that's where I am right now. Any thoughts, suggestions, tips, how-tos would be greatly appreciated. Paul -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Assigning a dynamic role to be used by hiera
you might want to explicitly top-scope role, ie. $::role = 'nameserver' Not sure if that will matter in this case, but I don't think it can hurt. As an aside, we set our role variable with facter.d on the nodes themselves, as we don't have hostnames that easily work out to roles. On Wednesday, August 21, 2013 10:20:56 AM UTC-7, JeremyCampbell wrote: I need to define data for roles so I add the 'role' dynamic data source. - %{::environment}/%{::clientcert} - %{::clientcert} - %{::environment} - %{::role} - common Our site.pp uses a hostname regex to classify nodes into roles e.g. node /^ns\d+$/ { include role::nameserver } Can we add the $role variable to the role class and hiera will use it? e.g. class role::nameserver { $role = 'nameserver' include base include bind include shorewall } Would this work? Is there a better pattern that doesn't involve having to define custom facts on the servers? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Confusion with puppetdb (storeconfig) and query database
Like, the postgresql database? First, I have to ask: why you want to go poking around in there? Anyway, assuming you set it up with user: puppetdb, databasename: puppetdb and the recommended potgresql settings, you can use the psql client, like so: psql -h 127.0.0.1 puppetdb puppetdb On Wednesday, August 21, 2013 2:14:21 PM UTC-7, mike wrote: Hello, I have configured puppet and puppetdb (storeconfig) with postgresql and the service run and the collecting are good for example: I can make query with the next command and responds ok . [.] [root@master]# curl -X GET -H 'Accept: application/json' http://127.0.0.1:8080/v2/facts --data-urlencode 'query=[=, name, operatingsystem]' [ { certname : master.example.com, name : operatingsystem, value : CentOS }, { certname : node1.example.com, name : operatingsystem, value : CentOS }, { certname : node2.example.com, name : operatingsystem, value : CentOS } ] [.] My confusion is ¿How I can connect to database from shell and view the database structure? Thanks. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: if defined not working when class is enlcosed within Class[ ]
So, I can't speak to the authors intentions, but I'll do my best to explain the behavior. As you guessed defined() behaves differently based on what is passed to it. If passed a resource reference, as it is in the module, it will check that that resource has been declared. if passed a string, it will treat it as a type/class name and make sure that the resource has been defined. So, as written, it's checking if a class by the name of supervisor::service has been declared, while the way you write it, it check if anything by the name of supervisor::service has been defined. The 'include supervisor' you noticed does nothing regarding this error, as the type in question is supervisor::service. If I had to guess, at one point in the past, supervisor::service was a class, while it is now a defined type, and the module you're working with hasn't updated or something. On Monday, August 19, 2013 8:33:09 AM UTC-7, Florian Gray Jones wrote: Hi, I am learning puppet using version 2.7.18 on a fresh ubuntu install. I am trying to test this module https://github.com/liamjbennett/puppet-sabnzbd/blob/master/manifests/init.ppbut I'm having trouble with the if defined(Class['supervisor::service']) section in that it doesn't get run even though the supervisor module is installed. If i put else{ notice(supervisor not defined?) } on the end then I see that notice msg in the 'puppet apply --debug' output. This supervisor module is downloaded/installed OK from Puppet Forge and if I either a) comment out the 'if defined' then it works as expected b) *change the if *defined(Class['supervisor::service']) to read if defined('supervisor::service') then it also works as expected. As you can see there is an include supervisor at top of the class which I'm guessing isn't being called in the order needed for the 'if defined' to work and the one without the Class[] must work because puppet auto loads the modules from the modulepath and checks if that namespace and module exist? This is all new to me so i could be very wrong but can anyone explain given that init.pp why the 'if defined' isn't working and what is the best way to achieve what the 'if defined' is there for and that's to see if the supervisor module is installed/loaded before entering the if statement and using the module? Many thanks for reading fLo -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: if defined not working when class is enlcosed within Class[ ]
Since in this case, it's checking that supervisor::service exists so it can declare one, I'd say checking for just 'supervisor::service' would be fine. You may want to stay around and see what other people think though, as I could be missing something. Looking at it again, the check to see if a class has been declared seems really odd... and testing it now that I have a second, it doesn't actually seem to work at all. I'm not sure how idiomatic that is, or was, but maybe someone else can shed some light on it. On Monday, August 19, 2013 8:32:39 PM UTC-7, Florian Gray Jones wrote: ok, that's great. Thanks for the help. The puppet-docs it says: *Modules are how Puppet finds the classes and types it can use* — it automatically loads any classhttp://docs.puppetlabs.com/puppet/2.7/reference/lang_classes.html or defined typehttp://docs.puppetlabs.com/puppet/2.7/reference/lang_defined_types.html stored in its modules. With this in mind, if *if *defined(Class[ ]) checks for classes.. and in my case 'supervisor::service' is as you mentioned not a class but a define. Is there an equivalent like if defined(Define[ ]) or is best practice to continue using if defined('supervisor::service') to just check for anything of that name. Thanks again fLo On Monday, 19 August 2013 23:33:09 UTC+8, Florian Gray Jones wrote: Hi, I am learning puppet using version 2.7.18 on a fresh ubuntu install. I am trying to test this module https://github.com/liamjbennett/puppet-sabnzbd/blob/master/manifests/init.ppbut I'm having trouble with the if defined(Class['supervisor::service']) section in that it doesn't get run even though the supervisor module is installed. If i put else{ notice(supervisor not defined?) } on the end then I see that notice msg in the 'puppet apply --debug' output. This supervisor module is downloaded/installed OK from Puppet Forge and if I either a) comment out the 'if defined' then it works as expected b) *change the if *defined(Class['supervisor::service']) to read if defined('supervisor::service') then it also works as expected. As you can see there is an include supervisor at top of the class which I'm guessing isn't being called in the order needed for the 'if defined' to work and the one without the Class[] must work because puppet auto loads the modules from the modulepath and checks if that namespace and module exist? This is all new to me so i could be very wrong but can anyone explain given that init.pp why the 'if defined' isn't working and what is the best way to achieve what the 'if defined' is there for and that's to see if the supervisor module is installed/loaded before entering the if statement and using the module? Many thanks for reading fLo -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Learningpuppet
Well, first, for a module, your pp files go *inside* the manifests folder. For init.pp, it should contain a human class, but there doesn't have to be anything in that class. The human::user defined type will do the heavy lifting, containing the user resource, a file or template for the bashrc, and one or more ssh_authorized_key resources. On Friday, August 16, 2013 10:44:02 AM UTC-7, ytmp123 wrote: Hi Ellison Marks: Thanks. But I don't get what I'm exactly expected to do in this exercise. Is this structure right?: - human - |- manifests - |- init.pp - |- user.pp 1. Does init.pp have to contain a class human, what shall this class do? 2. What does the type human::user (user.pp) to do? Please give me some hints. It would be a great help! -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: [pe-users] trouble installing open source puppet client
Generally yum will want all dependencies managed by itself, no? So even if you get it installed with gem, yum won't call the dependency satisfied... On Thursday, August 15, 2013 5:35:24 PM UTC-7, Stuart Cracraft wrote: Redirected - need help. Please review and give me your collective thoughts. Encountering headwinds when trying to install Open Source Puppet *client*. The Puppet master and its client work fine and I don't see a lot of differences to dig into. If you need more information than what I give in the logs and comments below, please let me know. Begin forwarded message: *From: *Stuart Cracraft smcra...@me.com javascript: *Date: *August 15, 2013 5:27:58 PM *To: *pe-u...@puppetlabs.com javascript: pe-u...@puppetlabs.comjavascript: *Subject: **[pe-users] trouble installing open source puppet client* Trouble installing the client with yum install puppet Getting an error with a dependency by rubygem-json on rubygems. Forbidden when trying to do a general rubygems update. gem list shows rake (10.1.0) and rubygems-update (2.0.6) as installed but gem update --system gives the above forbidden error. Proxy is open for this box for: *.puppetlabs.com gems.rubyforge.org *.rubygems.org have tried http_proxy and HTTP_PROXY set to both the proxy's ip with 8080 some-ip:8080 and as http://some-ip:8080 curl -x proxyserverip:8080 http://puppetlabs.com and curl -x proxyserverip:8080 Stuart Log: [root@ca-sna-bb01 rubygems-2.0.6]# yum install puppet Loaded plugins: product-id, rhnplugin, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. This system is receiving updates from RHN Classic or RHN Satellite. Setting up Install Process Resolving Dependencies -- Running transaction check --- Package puppet.noarch 0:3.2.4-1.el6 will be installed -- Processing Dependency: facter = 1.6.11 for package: puppet-3.2.4-1.el6.noarch -- Processing Dependency: hiera = 1.0.0 for package: puppet-3.2.4-1.el6.noarch -- Processing Dependency: ruby(selinux) for package: puppet-3.2.4-1.el6.noarch -- Running transaction check --- Package facter.i386 1:1.7.2-1.el6 will be installed --- Package hiera.noarch 0:1.2.1-1.el6 will be installed -- Processing Dependency: rubygem-json for package: hiera-1.2.1-1.el6.noarch --- Package libselinux-ruby.x86_64 0:2.0.94-5.3.el6_4.1 will be installed -- Running transaction check --- Package rubygem-json.x86_64 0:1.5.5-1.el6 will be installed -- Processing Dependency: rubygems for package: rubygem-json-1.5.5-1.el6.x86_64 -- Finished Dependency Resolution Error: Package: rubygem-json-1.5.5-1.el6.x86_64 (puppetlabs-deps) Requires: rubygems You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest [root@ca-sna-bb01 rubygems-2.0.6]# gem update --system ERROR: While executing gem ... (Net::HTTPServerException) 403 Forbidden [root@ca-sna-bb01 rubygems-2.0.6]# echo $http_proxy http://some-ip-here(1.2.3.4,etc.):8080 [root@ca-sna-bb01 rubygems-2.0.6]# echo $HTTP_PROXY [root@ca-sna-bb01 rubygems-2.0.6]# ruby setup.rb RubyGems 2.0.6 installed Installing ri documentation for rubygems-2.0.6 /usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block /usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block : : : -- RubyGems installed the following executables: /usr/bin/gem Ruby Interactive (ri) documentation was installed. ri is kind of like man pages for ruby libraries. You may access it like this: ri Classname ri Classname.class_method ri Classname#instance_method If you do not wish to install this documentation in the future, use the --no-document flag, or set it as the default in your ~/.gemrc file. See 'gem help env' for details. [root@ca-sna-bb01 rubygems-2.0.6]# -- You received this message because you are subscribed to the Google Groups Puppet Enterprise Users group. To unsubscribe from this group and stop receiving emails from it, send an email to pe-users+u...@puppetlabs.com javascript:. Visit this group at http://groups.google.com/a/puppetlabs.com/group/pe-users/. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Learningpuppet
I'm not sure where you're following the tutorial, but the version on the official puppetlabs site doesn't include the phrase site module. http://docs.puppetlabs.com/learning/definedtypes.html#exercises And for the bashrc file... You know normal stuff you'd have in a bashrc, aliases, path modifications, variable exports, whatevs. On Thursday, August 15, 2013 11:56:40 PM UTC-7, ytmp123 wrote: Hi guys, I'm having difficulties with this exercise: Try wrapping a user resource in a *human::user* type that automatically grabs that personʼs *.bashrc* file from your *site module* and *manages one or more ssh_authorized_key resources* for their account 1. What's a site module? 2. What am I expected to change in the .bashrc-file? Really thanks in advance! -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] hiera_include issues
So, I've run into a puzzling situation. I recently started playing around with the puppetlabs-apache module. Now, I generally use hiera_include to get all my classes, and it seemed logical that I should include the apache class at the webserver level of my hierarchy, and specific modules on a per-host basis. So, at my webserver level I have, say: --- classes: - apache - apache::mod::ssl - apache::mod::headers and on one of my nodes, I have: --- classes: - apache::mod::wsgi - apache::mod::perl - apache::mod::passenger When I try a puppet run, the mod_passenger include fails, claiming it can't find variables from apache::params. Now the weird part is, if i comment out passenger, it works fine, even though mod_wsgi has a very similar pp file, using many of the same variables. I sort of get the feeling that I'm at the mercy of the parser here somehow, as when I put all the classes together, like so: --- classes: - apache - apache::mod::ssl - apache::mod::headers - apache::mod::wsgi - apache::mod::perl - apache::mod::passenger It works fine. Any idea how I could work things all separate, like my first example? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Puppet: chaining and conditionals
perhaps something like this? node nodename1, nodename2, nodename3, nodename4 { class { class1: } if $fqdn == nodename2 { Class[class1] - class { class2: } - class{ class3 } } else { Class[class1] - class { class3: } } Class[class3] - class { class4: } } On Thursday, August 15, 2013 10:17:46 AM UTC-7, Sergey Arlashin wrote: Hi! I'm using the following way to define the order and assign classes to nodes: node nodename1, nodename2, nodename3, nodename4 { class { class1: } - class { class2: } - class { class3: } - class { class4: } } I'm fully delighted with it. But at the moment I need class2 to be executed only on nodename2. The following construction doesn't work node nodename1, nodename2, nodename3, nodename4 { class { class1: } - if $fqdn == nodename2 { class { class2: } - } class { class3: } - class { class4: } } And this construction breaks the order: node nodename1, nodename2, nodename3, nodename4 { class { class1: } if $fqdn == nodename2 { Class[class1] - class { class2: } } class { class3: } - class { class4: } } What do I do in a situation like this? Thanks in advance. Sergey. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Installing Puppet 3 client on a Raspberry Pi
There's nothing prebuilt in the official repo for the arm processor in the raspi, I'd guess. You're probably going to have to build from source, unless someone else has already made a package. On Thursday, August 15, 2013 8:36:47 AM UTC-7, Alastair Montgomery wrote: I'm trying to install the latest Puppet client on my Raspberry PI but I am getting the following errors; wget http://apt.puppetlabs.com/puppetlabs-release-wheezy.deb sudo dpkg -i puppetlabs-release-wheezy.deb sudo apt-get update W: Failed to fetch http://apt.puppetlabs.com/dists/wheezy/Release Unable to find expected entry 'main/binary-armhf/Packages' in Release file (Wrong sources.list entry or malformed file) Any idea on how to fix this? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Revert the puppet changes
There's not really an automated way of reverting puppet's changes, as far as I know. On the other hand, by default puppet stores reports in /var/lib/puppet/reports/(hostname) on the master, so you can find the report for the run you did (they're named by date, generally, eg. 201308122117.yaml), and read through it to find what changed (look for the line status: changed). On Tuesday, August 13, 2013 5:43:28 AM UTC-7, ravind...@gmail.com wrote: Dear Team, I have made the changes to one of the main environment through the command puppet agent --test When i ran this command there were several changes made to that environment. After checking i got to know that puppet was stopped for that environment as the team was implementing new changes. Now i have to revert those changes - very very critical for me. Please could you help and guide me on how to get back those changes. Thanks in advance -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: introducing puppetboard 0.0.1
So I finally got the time to get this going, and it is indeed, very cool. One hitch though: I grabbed the source from github, and most things seemed to work, but the overview page errored out. It seems that it was using python 3 syntax for it's format strings on line 86 and 88. 86: 'avg_resources_node': {:10.6f}.format(avg_resources_node['Value']), 87: 'mean_failed_commands': mean_failed_commands['MeanRate'], 88: 'mean_command_time': {:10.6f}.format(mean_command_time['MeanRate']), I added a 0 to the format specification and it worked fine 86: 'avg_resources_node': {0:10.6f}.format(avg_resources_node['Value']), 87: 'mean_failed_commands': mean_failed_commands['MeanRate'], 88: 'mean_command_time': {0:10.6f}.format(mean_command_time['MeanRate']), On Wednesday, August 7, 2013 5:47:23 AM UTC-7, Daniele Sluijters wrote: Hello everyone, It’s a lovely grey and rainy day here in the Dutch summer, as good a day as any to release a new little project. Its name is Puppetboard and has as aim to replace Puppet Dashboard’s reporting functionality. It does not nor will it include ENC features. It does all this without storing any data itself but querying PuppetDB instead. The whole thing is built in Python and relies on Flask and WTForms. The communication logic has been split of in its own library called pypuppetdb which makes heavy use of the requests library. The interface is powered by Twitter Bootstrap with the Flatly theme. Though I’ve pushed all the code out and made it public it’s all very young but it works fairly well. However, I’ve committed numerous barbarities in the code just to get things working and to figure out how to handle certain things. For the foreseeable time in the future I’ll be working on cleaning all this up and figuring out what I can do on my side and on PuppetDB’s side to make all this work a little better. Especially when it comes to dealing with big responses from PuppetDB... This is the first time I’m open sourcing a project so that too is all new to me. I’d welcome the feedback and if someone feels brave enough even commits on the projects but try and be gentle about it :-). I’ll also be at PuppetConf including the Developer Day so feel free to reach out to me in person. To the code: * puppetboard: https://github.com/nedap/puppetboard * pypuppetdb: https://github.com/nedap/pypuppetdb I realise that puppetboard doesn't have a test suite right now but it will soon. In order to do so I have to restructure a few things about it first. The installation documentation will improve with it. Pypuppetdb's test suite will be expanding the coming days once I'm done mocking the HTTP requests _query() makes and manage to get a decent and big enough set of test data to feed into PuppetDB. This will allow me to run integration tests and benchmark certain changes I have in mind. I’m hoping to be able to get a release out every month with improvements to both projects, perhaps even faster in the beginning but it remains to be seen how much time I’ll be able to spend on it. A special thanks goes out to Ken Barber for helping out with all things PuppetDB and coming up with a way to run PuppetDB on Travis so we can run integration tests. Hunter, thank you for being so interested in this project and pushing me to release it. — Daniele Sluijters Nedap | Steppingstone -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: introducing puppetboard 0.0.1
Er, excuse me, I misspoke. As it is it relies on having python 2.7+, not 3 for the formatting. Still, the Redhat family, by default, is still on 2.6. On Tuesday, August 13, 2013 12:13:17 PM UTC-7, Ellison Marks wrote: So I finally got the time to get this going, and it is indeed, very cool. One hitch though: I grabbed the source from github, and most things seemed to work, but the overview page errored out. It seems that it was using python 3 syntax for it's format strings on line 86 and 88. 86: 'avg_resources_node': {:10.6f}.format(avg_resources_node['Value']), 87: 'mean_failed_commands': mean_failed_commands['MeanRate'], 88: 'mean_command_time': {:10.6f}.format(mean_command_time['MeanRate']), I added a 0 to the format specification and it worked fine 86: 'avg_resources_node': {0:10.6f}.format(avg_resources_node['Value']), 87: 'mean_failed_commands': mean_failed_commands['MeanRate'], 88: 'mean_command_time': {0:10.6f}.format(mean_command_time['MeanRate']), On Wednesday, August 7, 2013 5:47:23 AM UTC-7, Daniele Sluijters wrote: Hello everyone, It’s a lovely grey and rainy day here in the Dutch summer, as good a day as any to release a new little project. Its name is Puppetboard and has as aim to replace Puppet Dashboard’s reporting functionality. It does not nor will it include ENC features. It does all this without storing any data itself but querying PuppetDB instead. The whole thing is built in Python and relies on Flask and WTForms. The communication logic has been split of in its own library called pypuppetdb which makes heavy use of the requests library. The interface is powered by Twitter Bootstrap with the Flatly theme. Though I’ve pushed all the code out and made it public it’s all very young but it works fairly well. However, I’ve committed numerous barbarities in the code just to get things working and to figure out how to handle certain things. For the foreseeable time in the future I’ll be working on cleaning all this up and figuring out what I can do on my side and on PuppetDB’s side to make all this work a little better. Especially when it comes to dealing with big responses from PuppetDB... This is the first time I’m open sourcing a project so that too is all new to me. I’d welcome the feedback and if someone feels brave enough even commits on the projects but try and be gentle about it :-). I’ll also be at PuppetConf including the Developer Day so feel free to reach out to me in person. To the code: * puppetboard: https://github.com/nedap/puppetboard * pypuppetdb: https://github.com/nedap/pypuppetdb I realise that puppetboard doesn't have a test suite right now but it will soon. In order to do so I have to restructure a few things about it first. The installation documentation will improve with it. Pypuppetdb's test suite will be expanding the coming days once I'm done mocking the HTTP requests _query() makes and manage to get a decent and big enough set of test data to feed into PuppetDB. This will allow me to run integration tests and benchmark certain changes I have in mind. I’m hoping to be able to get a release out every month with improvements to both projects, perhaps even faster in the beginning but it remains to be seen how much time I’ll be able to spend on it. A special thanks goes out to Ken Barber for helping out with all things PuppetDB and coming up with a way to run PuppetDB on Travis so we can run integration tests. Hunter, thank you for being so interested in this project and pushing me to release it. — Daniele Sluijters Nedap | Steppingstone -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] params pattern when writing modules
So, I've been looking into the params pattern for writing modules, ie. having a params.pp file that init.pp inherits from as a place to use custom logic to set variables, and it seems very useful. I do have one question that I'm hoping someone can answer. If, for example, I look at an example42 module, everything is in params.pp. On the other hand, looking at, say, puppetlabs modules, there's some mixing, with the case statements determining variable contents living in params.pp, but with straightforward string and boolean values stored between params.pp and the argument list in init.pp, with seemingly little logic dictating what goes where. Basically, what's people thoughts on the value of having every single variable defined in params.pp, vs only the complex, logicky ones, and also, in the case that I'm being dense, can someone explain the logic behind the puppetlabs modules. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] params pattern when writing modules
Ah, good to know. I'll file some tickets as I come across instances of this. On Tuesday, August 13, 2013 2:47:43 PM UTC-7, Ashley Penney wrote: As one of the two new maintainers of all Puppetlabs modules I can tell you for sure that our intent is to make sure everything in init.pp inherits out of params.pp instead of declaring them directly in the main class, and if you're kind enough and can throw a github issue up for any cases you notice where that's not true we can fix them. I never liked the params.pp pattern myself but there's no great solution to where do I store all my weird logic to make the rest of my classes simple. We're standardizing on keeping all params defined in params.pp and inheriting that in init.pp so that they can be overridden. I can't claim it's the best pattern, but we're at least going to strive for consistency. (For background, each puppetlabs module was written by a different person with their own views on this stuff and we had no unifying style guide or guidelines to work from. We're working on fixing these, but it takes time and we don't want to barge in rewriting everything and upsetting current users). On Tue, Aug 13, 2013 at 5:32 PM, Ellison Marks gty...@gmail.comjavascript: wrote: So, I've been looking into the params pattern for writing modules, ie. having a params.pp file that init.pp inherits from as a place to use custom logic to set variables, and it seems very useful. I do have one question that I'm hoping someone can answer. If, for example, I look at an example42 module, everything is in params.pp. On the other hand, looking at, say, puppetlabs modules, there's some mixing, with the case statements determining variable contents living in params.pp, but with straightforward string and boolean values stored between params.pp and the argument list in init.pp, with seemingly little logic dictating what goes where. Basically, what's people thoughts on the value of having every single variable defined in params.pp, vs only the complex, logicky ones, and also, in the case that I'm being dense, can someone explain the logic behind the puppetlabs modules. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com javascript:. To post to this group, send email to puppet...@googlegroups.comjavascript: . Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Will the puppetmaster compile a catalog if there are not changes?
The master won't recompile a catalog if there have been no changes on the master's side, I believe. It will always send a catalog, if possible, to the client, either a newly compiled one or an old one if it didn't need to recompile. On Thursday, August 8, 2013 1:09:32 PM UTC-7, rjl wrote: I have been asked a question for which I cannot seem to find an answer. When a client contacts my puppetmaster, will the puppet master compile a catalog if there have been not changes to that clients configuration? Or, will the puppetmaster just say 'there are no changes to your catalog so you need not do anything'? Thanks in advance rjl -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: node_aws installation problem
Honestly, it just sounds like your system is having trouble locating the guid gem. try this script: require 'guid' # generate a GUID g = Guid.new puts g puts g.to_s puts g.hexdigest puts g.raw.inspect puts g.raw.length # generate another GUID, should be different everytime g2 = Guid.new puts g == g2 # convert a hexstring into Guid object g3 = Guid.from_s(g.to_s) puts g3 puts g == g3 # convert a raw 16-byte string into Guid object g4 = Guid.from_raw(g.raw.inspect) puts g4 puts g == g4 Just some test functions for the gem. Run with ruby scriptname.rb. You should see some guids and hexy things and true or false values. If it errors out, either you didn't install the guid gem correctly or your ruby environment is slightly borked. If it does work, something else is going on. On Wednesday, August 7, 2013 5:27:38 AM UTC-7, Piotr Jasiulewicz wrote: It's somewhat disappointing that puppet labs expresses commercialism in such a nasty way, just breaking the free stuff and giving you an option to pay for it... will try on a different system and then switch to Chef. Cheers, Piotr W dniu czwartek, 25 lipca 2013 17:35:10 UTC+1 użytkownik Piotr Jasiulewicz napisał: Is puppet enterprise free also? Not sure I would get consent from my boss... it's a bit sad that the provisioning project looks totally neglected by puppet labs. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: introducing puppetboard 0.0.1
If it's something that means I can finally ditch puppet-dashboard's reporting functionality, I will be on that like jam on toast. Screenshots look very cool, I'll probably try to install it later this week. On Wednesday, August 7, 2013 5:47:23 AM UTC-7, Daniele Sluijters wrote: Hello everyone, It’s a lovely grey and rainy day here in the Dutch summer, as good a day as any to release a new little project. Its name is Puppetboard and has as aim to replace Puppet Dashboard’s reporting functionality. It does not nor will it include ENC features. It does all this without storing any data itself but querying PuppetDB instead. The whole thing is built in Python and relies on Flask and WTForms. The communication logic has been split of in its own library called pypuppetdb which makes heavy use of the requests library. The interface is powered by Twitter Bootstrap with the Flatly theme. Though I’ve pushed all the code out and made it public it’s all very young but it works fairly well. However, I’ve committed numerous barbarities in the code just to get things working and to figure out how to handle certain things. For the foreseeable time in the future I’ll be working on cleaning all this up and figuring out what I can do on my side and on PuppetDB’s side to make all this work a little better. Especially when it comes to dealing with big responses from PuppetDB... This is the first time I’m open sourcing a project so that too is all new to me. I’d welcome the feedback and if someone feels brave enough even commits on the projects but try and be gentle about it :-). I’ll also be at PuppetConf including the Developer Day so feel free to reach out to me in person. To the code: * puppetboard: https://github.com/nedap/puppetboard * pypuppetdb: https://github.com/nedap/pypuppetdb I realise that puppetboard doesn't have a test suite right now but it will soon. In order to do so I have to restructure a few things about it first. The installation documentation will improve with it. Pypuppetdb's test suite will be expanding the coming days once I'm done mocking the HTTP requests _query() makes and manage to get a decent and big enough set of test data to feed into PuppetDB. This will allow me to run integration tests and benchmark certain changes I have in mind. I’m hoping to be able to get a release out every month with improvements to both projects, perhaps even faster in the beginning but it remains to be seen how much time I’ll be able to spend on it. A special thanks goes out to Ken Barber for helping out with all things PuppetDB and coming up with a way to run PuppetDB on Travis so we can run integration tests. Hunter, thank you for being so interested in this project and pushing me to release it. — Daniele Sluijters Nedap | Steppingstone -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Node Classifications
http://docs.puppetlabs.com/puppet/3/reference/lang_node_definitions.html According to that, default only applies if nothing else matches. For your other question, how are you doing multiple manifests? With imports? On Wednesday, July 31, 2013 9:53:13 AM UTC-7, Worker Bee wrote: Hi Everyone, I am struggling a bit with the order of precedence of node classifications. When using .pp files to classify nodes, what happens if a node corresponds to two different manifests. For example, if I have .pp files that select nodes based on hostnames and I have another .pp file that selects hosts based in data center location, will both manifests be applied accordingly? Also, is the default manifest applied to ALL hosts, complimentary of any manifests that explicitly apply to the host? Or, is the default applied ONLY if no other manifests apply to that host? Thank you very much! Bee -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: dashboard displaying \n in report output
According to this thread: https://groups.google.com/forum/#!searchin/puppet-users/dashboard$20newline$20characters/puppet-users/u_Ul0wqRYxw/er8IuEompFoJ it was a problem with ruby 1.9.3. YMMV. On Monday, July 29, 2013 3:23:24 AM UTC-7, John Naggets wrote: Hello, I installed the puppet dasboard 1.2.23 on my puppet master and everything works so far fine but I noticed that my reports (URL: /reports/X, where X is a report number) displays many new line characters (\n) in its output. It looks like the newline char does not get stripped off correctly. Any ideas what could be the cause? Thanks and regards, John -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Heria, Facts, and Puppet
Not sure exactly, but in general you want common to be searched last, as hiera by default bails when it finds an answer, so your hierarchy in the conf file is backwards. You'd want the env_name fact above common. On Thursday, July 25, 2013 7:27:26 AM UTC-7, chengkai liang wrote: So something doesn't look right for me when running puppet apply -e 'include ...' for looking heria via facter fact. I have hiera configure as this, :backends: - yaml :hierarchy: - common - '%{env_name}' :yaml: :datadir: /var/lib/hiera/data and, a file envXX.yaml store in the datadir, and I can run *hiera xyz env_name=envXX* to get the the value of abc associate with xyz. Yet, if I export the value variable env_name by *export FACTER_env_name=*envXX, and run: *puppet apply -e 'include my_module * puppet will complaint that it can't find data store in envXX.yaml. From the debug output, debug: importing '/Users/cliang/.puppet/modules/puppet_flux2_config/manifests/init.pp' in environment production debug: Automatically imported puppet_flux2_config from puppet_flux2_config into production debug: hiera(): Hiera YAML backend starting debug: hiera(): Looking up host_header_url in YAML backend debug: hiera(): Looking for data source common Could not find data item host_header_url in any Hiera data file and no default supplied at /Users/cliang/.puppet/modules/puppet_flux2_config/manifests/init.pp:4 on node m-mba.local It seems that it stop looking right after common, while running with *hiera xyz env_name=envXX* *--debug *shows, DEBUG: Thu Jul 25 07:24:48 -0700 2013: Hiera YAML backend starting DEBUG: Thu Jul 25 07:24:48 -0700 2013: Looking up host_header_url in YAML backend DEBUG: Thu Jul 25 07:24:48 -0700 2013: Looking for data source common DEBUG: Thu Jul 25 07:24:48 -0700 2013: Looking for data source *envXX* DEBUG: Thu Jul 25 07:24:48 -0700 2013: Found xyz in *envXX* So why puppet apply won't look further into envXX.yaml file? Anybody can help on this? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: How do I set global noop?
How are you running puppet? If cron or mcollective, you can add a --noop flag to the command line somewhere. On Monday, July 22, 2013 4:29:24 PM UTC-7, Sam Morrison wrote: I'm trying to set a global noop but it doesn't seem possible, There are 2 bugs open about this which to me look pretty serious as the expected behaviour isn't the case. http://projects.puppetlabs.com/issues/21286 http://projects.puppetlabs.com/issues/6549 If anyone has a work around (that doesn't include modifying puppet.conf file) I would be very interested. Cheers, Sam -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Node not showing in the PE console
You should be using the enterprise installer on both the server and the nodes. On the nodes, you would only install the agent role. Just as a note, the problem you are running into is probably that the version of puppet from the Fedora repo is probably the latest, somewhere in the 3.2 area, while the version in PE 2.8.2 is older, probably 2.7.21. Pointing a newer client at an older server is generally a bad idea and will do weird things, like what you're seeing. On Friday, July 5, 2013 11:38:54 AM UTC-7, Greg Emanuel wrote: I have a Ubuntu 12.04 server running PE 2.8.2. I have a Fedora 18 node that I would like to manage. I installed the F18 node using a kickstart installation. During this install I enabled the puppetlabs repo and installed puppet from the puppetlabs repo. One of the post installation tasks executed the following command: puppet agent -t --server server name. Everything seemed to install ok. I did get a certificate request that I could see and Accept on the PE console. After accepting the cert, the node never shows up in the PE console. I have verified DNS and networking info multiple times and everything is in order. I am wondering if the puppet agent from the puppetlabs repo works with Puppet Enterprise. Or am I all wrong and should be using the Puppet Enterprise installer on the nodes? I would assume then the Red Hat installer would be used on a Fedora node? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Node not showing in the PE console
Ah, excuse me. I should have looked a bit harder before posting. Fedora is not an officially supported platform for PE, see http://projects.puppetlabs.com/issues/15701. The *nix installer is just for doing platform detection by the way. It's a universal installer that just contains sets for all supported platforms. For your fedora node, you'll need to try to get ahold of a package of puppet matching the version bundled with your version of enterprise. Might work then. On Monday, July 8, 2013 12:26:02 PM UTC-7, Greg Emanuel wrote: So for a Fedora node would I use the EL (RHEL, CentOS, Scientific Linux, Oracle Linux) 6 PE installer? There isn't an installer listed for Fedora. Or, would I use the *nix installer? On Monday, July 8, 2013 12:56:31 PM UTC-5, Ellison Marks wrote: You should be using the enterprise installer on both the server and the nodes. On the nodes, you would only install the agent role. Just as a note, the problem you are running into is probably that the version of puppet from the Fedora repo is probably the latest, somewhere in the 3.2 area, while the version in PE 2.8.2 is older, probably 2.7.21. Pointing a newer client at an older server is generally a bad idea and will do weird things, like what you're seeing. On Friday, July 5, 2013 11:38:54 AM UTC-7, Greg Emanuel wrote: I have a Ubuntu 12.04 server running PE 2.8.2. I have a Fedora 18 node that I would like to manage. I installed the F18 node using a kickstart installation. During this install I enabled the puppetlabs repo and installed puppet from the puppetlabs repo. One of the post installation tasks executed the following command: puppet agent -t --server server name. Everything seemed to install ok. I did get a certificate request that I could see and Accept on the PE console. After accepting the cert, the node never shows up in the PE console. I have verified DNS and networking info multiple times and everything is in order. I am wondering if the puppet agent from the puppetlabs repo works with Puppet Enterprise. Or am I all wrong and should be using the Puppet Enterprise installer on the nodes? I would assume then the Red Hat installer would be used on a Fedora node? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Puppet Tutorial: Learning - Manifests
Attempt 2 is on the right track. What OS are you on and what error messages in particular are you running into? On Monday, June 3, 2013 9:17:35 AM UTC-7, Alexandra Ferguson wrote: Fellow Puppet Users, I was assigned to learn how puppet works to integrate it into our department and I am trying to go through the tutorial. I am a beginner in IT work and am slowly starting to understand these processes. Right now I am stuck on the last part of the Manifests tutorial, found at the bottom of this page: http://docs.puppetlabs.com/learning/manifests.html. I am on the first exercise, where it instructs the user to write and apply a manifest to install tge Apache package (httpd), then make sure the Apache service (also httpd) is running. I feel as if I am on the right track, but after hours of googling and research, I was pulled in a few different directions. If anyone could explain this in as detailed and simple of a way possible to help me through this, it would be extremely appreciated. Attempt 1: # /root/learning-manifests/1.apache.pp package {‘httpd’: ensure = latest, } Service {httpd’: ensure = stopped, enable = false, } Attempt 2: # /root/learning-manifests/2.apache.pp package {‘apache’: ensure = present, } service {‘httpd’: ensure = running, } Attempt 3: # /root/learning-manfiests/3.apache.pp class {‘apache’: } -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Hiera Environment Wildcard
I don't think there's a wildcard match functionality for hiera like that. If you interpolate the environment variable in you hierarchy, it will try to match the result exactly. On the other hand, if all of you aw* environments need the same data, I'm inclined to ask what they're doing in different environments? On Wednesday, May 29, 2013 12:05:31 PM UTC-7, phundisk wrote: I am looking to use hiera in my environment but I cannot get past one thing. In our current puppet code we have some case statements based on environments. The case statements are like the following... 'production' { do this } /^aw/ { do this } # this is for all AWS stuff 'aws' { do this } # this is the production like environment of AWS otherenv { do this } default { do this } # other server that default here I would like hiera to do the following order, hostname, environment, common. I would also like to create one YAML file for all the AW* fîles rather than create one for awtest, awsandbox, awetc. Is there a way to do this in hiera that I am missing? Or will I need to re work some logic in my puppet code? _ This email and any files transmitted with it are confidential and intended solely for the addressee. If you received this email in error, please do not disclose the contents to anyone; kindly notify the sender by return email and delete this email and any attachments from your system. © 2011 Currensee Inc. is a member of the National Futures Association (NFA) Member ID 0403251 | Over the counter retail foreign currency (Forex) trading may involve significant risk of loss. It is not suitable for all investors and you should make sure you understand the risks involved before trading and seek independent advice if necessary. Performance, strategies and charts shown are not necessarily predictive of any particular result and past performance is no indication of future results. Investor returns may vary from Trade Leader returns based on slippage, fees, broker spreads, volatility or other market conditions. Currensee Inc | 54 Canal St 4th Floor | Boston, MA 02114 | +1.617.624.3824 -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: What data on the server can a compromized host read
Pretty much everything in puppet is secured with SSL certificates. If someone has root access to one of your client machines, they have that certificate. They can then retrieve anything that that node is allowed to retrieve, which is generally specified in auth.conf. By default, I think this includes their own catalog, their own node definition, all files served by the master process... a few other things. It shouldn't be able to get at your manifests directly, as those are compiled before being sent to the client, nor should it be able to get at hiera data on the master. On Thursday, May 30, 2013 1:24:27 PM UTC-7, Vladimir Brik wrote: Hello, I am trying to better understand the security impact a compromised host managed by puppet could have on our infrastructure. Suppose an attacker gained root on a machine called 'owned', and we have this in site.pp: node owned { file {'foo': content = 'puppet:///modules/module_name/foo', } } Will agent running on 'owned' be able to retrieve: - modulepath/module_name/files/bar - modulepath/module_name/manifests - hiera data (other than what it's supposed to have access to) Thanks very much, Vlad -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] Re: runinterval - is it seconds or minutes? Docs are incomplete!
Well, it's an open source project. If you feel the docs aren't clear enough, you can file a ticket or submit a pull request via git. http://docs.puppetlabs.com/contribute.html On Tuesday, May 28, 2013 1:42:40 PM UTC-7, Tim Schaefer wrote: Puppet docs are the last place I look not the first place, and that's my annoyance with the documentation. Clear, complete, unambiguous, working docs with real-world examples are what we need. It gets really annoying to have to download modules from forge and have to wade through code to see what is the correct approach is, especially when so many modules don't have documentation either. pe_accounts is a classic example of incomplete, confusing documentation. Some of it just makes no sense at all, especially since it has no authoritative examples that are complete enough to use. No docs on how to set up external data sources. Very annoying and ironic, since Puppet is supposed to save me time. Instead I find myself constantly hunting for examples. Anyway I did find the snippet of information at the top of the doc, where I would never expect to see it. Tim On Tue, May 28, 2013 at 12:58 PM, Matthew Kennedy mattke...@gmail.comjavascript: wrote: It is there, just where Eric said it was. No need to get upset. It might be helpful to mention where the time notation format can be found in the sections where it is used. Would preempt issues like this in the future. Matt On May 28, 2013 1:46 PM, Tim Schaefer asysar...@gmail.comjavascript: wrote: Item 175: runinterval How often puppet agent applies the client configuration; in seconds. Note that a runinterval of 0 means “run continuously” rather than “never run.” If you want puppet agent to never run, you should start it with the --no-client option. Can be specified as a duration. - *Default*: 30m So, do I put 15m? 900? 900s? There is nothing there that says anything you just said. None of what you said is in the runinterval documentation. This is the first I've ever seen it. You need to update your docs. And don't tell me to go over to forge, that's a lazy, inexcusable response. You can do better. I don't mind hacking but really when there is no where else to find this information you have a responsibility to document in a clear, unambiguous form. Thanks, Tim On Tue, May 28, 2013 at 12:07 PM, Eric Sorenson eric.s...@puppetlabs.com javascript: wrote: http://docs.puppetlabs.com/references/latest/configuration.html Top of the page, just under the headers: Settings that represent time intervals should be specified in duration format: an integer immediately followed by one of the units ‘y’ (years of 365 days), ‘d’ (days), ‘h’ (hours), ‘m’ (minutes), or ‘s’ (seconds). The unit cannot be combined with other units, and defaults to seconds when omitted. Examples are ‘3600’ which is equivalent to ‘1h’ (one hour), and ‘1825d’ which is equivalent to ‘5y’ (5 years). On Tuesday, May 28, 2013 7:07:34 AM UTC-7, Tim Schaefer wrote: OK so is it minutes or seconds for runinterval? And what's the correct format Please put an example in the docs! Do I use 15m for 15 minutes or is it 900 for 900 seconds? I hate ambiguity in documentation! Be precise! -- You received this message because you are subscribed to a topic in the Google Groups Puppet Users group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/puppet-users/fBC1VXt9nPA/unsubscribe?hl=en . To unsubscribe from this group and all its topics, send an email to puppet-users...@googlegroups.com javascript:. To post to this group, send email to puppet...@googlegroups.comjavascript: . Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out. -- Tim Schaefer iphone 650-839-3277 voip 650-646-9636 email asysar...@gmail.com javascript: web A System Architect http://www.asystemarchitect.com skype asystemarchitect -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com javascript:. To post to this group, send email to puppet...@googlegroups.comjavascript: . Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to a topic in the Google Groups Puppet Users group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/puppet-users/fBC1VXt9nPA/unsubscribe?hl=en . To unsubscribe from this group and all its topics, send an email to puppet-users...@googlegroups.com javascript:. To post to this group, send email to puppet...@googlegroups.comjavascript: .
[Puppet Users] Re: manifest for fusioninventory-agent
Could be that the status command isn't returning sane values. From the docs: http://docs.puppetlabs.com/references/latest/type.html#service hasstatusDeclare whether the service’s init script has a functional status command; defaults to true. This attribute’s default value changed in Puppet 2.7.0. The init script’s status command must return 0 if the service is running and a nonzero value otherwise. Ideally, these exit codes should conform to the LSB’s specificationhttp://refspecs.freestandards.org/LSB_3.1.1/LSB-Core-generic/LSB-Core-generic/iniscrptact.htmlfor init script status actions, but Puppet only considers the difference between 0 and nonzero to be relevant. If a service’s init script does not support any kind of status command, you should set hasstatus to false and either provide a specific command using the status attribute or expect that Puppet will look for the service name in the process table. Be aware that ‘virtual’ init scripts (like ‘network’ under Red Hat systems) will respond poorly to refresh events from other resources if you override the default behavior without providing a status command. Valid values are true, false. So you should manually check the return code of the status command from fusioninventory-agent's init script, to make sure it's conformant. If it's not, you'll have to set hasstatus to false and status to some reasonable command, as the docs mention. On Thursday, May 23, 2013 7:32:59 AM UTC-7, Stan wrote: Hi I create a manifest for fusioninventory-agent on my puppet server On my puppet client if i modify file /etc/sysconfig/fusioninventory-agent the file fusioninventory-agent replace by puppet server configuration (this is OK) But if i stop fusioninventory-agent on my puppet client, puppet server not start the service and i don't know why If you see an error in my configuration, say me regards class fusioninventory-agent::redhat { package { 'fusioninventory-agent': ensure = present, } file { '/etc/sysconfig/fusioninventory-agent': ensure = present, owner = 'root', group = 'root', mode = 0644, content = template(/etc/puppet/modules/fusioninventory-agent/templates/fusioninventory-agent.erb), require = Package[fusioninventory-agent], notify = Service[fusioninventory-agent] } service { 'fusioninventory-agent': ensure = running, hasstatus = true, hasrestart = true, enable = true, require = File['/etc/sysconfig/fusioninventory-agent'] } } -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: facter wrong report
I'm on 1.7.1, Facter finds xen fine. is_virtual = true virtual = xen odd part is I'm not sure the detection method has changed since 1.6. It just check if any of these paths exist: /proc/sys/xen, /sys/bus/xen, /proc/xen On Wednesday, May 22, 2013 1:06:02 AM UTC-7, Heriyanto wrote: Hi, I just check from my virtual machine: [root@host ~]# facter|grep virtual is_virtual = false virtual = physical My operating system is CentOS 6.4 running as domu, running under dom0 CentOS 5.9. I use facter-1.6.6-1.el6. Its bug? Thanks for any comment. Regards, Heriyanto -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: hiera malformed format string - %S
Tabs are not allowed as indentation in yaml. They are allowed as whitespace. http://www.yaml.org/spec/1.2/spec.html#id2775170 http://www.yaml.org/spec/1.2/spec.html#id2777534 On Monday, April 29, 2013 7:07:55 AM UTC-7, Luca Gioppo wrote: OK, solved!! The problem was the TAV character that notepad++ added to the hash. It seems that something in ruby does not like it (do not know ruby so...) If this is the correct behaviour there should be somewhere in the docs a warning for DO NOT USE TABS IN YAML file as it took quite asome time to find out. If is not a correct behaviour than is a bug :P Luca Il giorno lunedì 29 aprile 2013 15:15:05 UTC+2, Luca Gioppo ha scritto: I'm trying to use hiera. The common.yaml is greg: db_type: mysql db_host: %{::domain} db_name: odaigreg db_user: odaigreg db_password: odaigreg1 db_tag: greg_db is_remote: true and the command hiera -c /etc/puppet/environments/production/hiera.yaml greg environment=production confdir=/etc/puppet -d returns: DEBUG: Mon Apr 29 15:11:48 +0200 2013: Hiera YAML backend starting DEBUG: Mon Apr 29 15:11:48 +0200 2013: Looking up greg in YAML backend DEBUG: Mon Apr 29 15:11:48 +0200 2013: Looking for data source common /usr/lib/ruby/site_ruby/1.8/hiera/filecache.rb:35:in `%': malformed format string - %S (ArgumentError) from /usr/lib/ruby/site_ruby/1.8/hiera/filecache.rb:35:in `read' from /usr/lib/ruby/site_ruby/1.8/hiera/backend/yaml_backend.rb:22:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:68:in `datasources' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:66:in `map' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:66:in `datasources' from /usr/lib/ruby/site_ruby/1.8/hiera/backend/yaml_backend.rb:16:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:182:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:179:in `each' from /usr/lib/ruby/site_ruby/1.8/hiera/backend.rb:179:in `lookup' from /usr/lib/ruby/site_ruby/1.8/hiera.rb:64:in `lookup' from /usr/bin/hiera:220 The hiera.yaml is: :backends: yaml :yaml: :datadir: /etc/puppet/environments/production/hieradata :hierarchy: common :logger: console Any hints on something I missed? Thanks Luca -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Learning puppet: how to use a module?
From the puppet apply man page: When provided with a modulepath, via command line or config file, puppet apply can effectively mimic the catalog that would be served by puppet master with access to the same modules, although there are some subtle differences. When combined with scheduling and an automated system for pushing manifests, this can be used to implement a serverless Puppet site. http://docs.puppetlabs.com/man/apply.html So looks like you need to give it the path to where your modules are installed. This can be done with --modulepath=/path/to/module/dirctory on the command line or with the modulepath configuration setting in the agent section of your config file. On Sunday, April 28, 2013 2:40:01 AM UTC-7, Leonard Ehrenfried wrote: Hi, I'm currently learning puppet but I have come across something which I can't figure out from the docs. I have a rails app, which needs a few Ubuntu packages installed to work. Some of those come from a PPA, which is a non-standard repository, which needs to be added to the list of repos. I would like to automate this step, too. I have just one node where puppet needs to run, so I just have one file which I execute with `puppet apply`. I'm not using a puppetmaster. The pp file can be viewed here: https://github.com/lenniboy/jcheld/blob/master/puppet/jcheld.pp I have installed the puppetlabs-apt module and I can see that that was successful like this: $ puppet module list /home/lenni/.puppet/modules ├── puppetlabs-apt (v1.1.0) └── puppetlabs-stdlib (v4.0.2) Now, when I run puppet I get the following error: $ sudo puppet apply puppet/jcheld.pp Error: Could not find class apt for ip-10-59-51-209.eu-west-1.compute.internal on node ip-10-59-51-209.eu-west-1.compute.internal Error: Could not find class apt for ip-10-59-51-209.eu-west-1.compute.internal on node ip-10-59-51-209.eu-west-1.compute.internal I think it is likely that I'm not understanding something fundamentally about how modules are supposed to be used. Could someone help me out? Thanks Leonard -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Yum cannot see puppet-3.2.0-0.1rc1
Have you run yum clean all yet? If you haven't, you're cache might be outdated, and you wouldn't see the update. On Friday, April 19, 2013 7:50:12 AM UTC-7, Ygor wrote: RHEL 5, x86_64 The rpm is there -- https://yum.puppetlabs.com/el/5/devel/x86_64/puppet-3.2.0-0.1rc1.el5.noarch.rpm But yum cannot see it to pull it down. I can see puppet-server-3.2.0-0.1rc1.el5, and when I tried to install, it failed on missing dependency. “Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.” Bill Waterson (Calvin Hobbes) -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] Re: File resource without ensure
Perhaps it works differently when specifying the content/source of a file. I tried your example, but with content = 'foo' instead of mode = 640 and it created the file. On Sunday, April 14, 2013 8:55:07 AM UTC-7, Felix.Frank wrote: Hi, On 04/04/2013 05:08 PM, jcbollinger wrote: if I define a file resource without specifying an ensure parameter, it seems to behave like ensure = present was specified. Yes, that's the default. Uhm, are you sure? I would expect the following to be a noop, which seems to be the case: $ puppet apply -e 'file { /tmp/wth: mode = 640 }' notice: Finished catalog run in 0.05 seconds Puppet *will* change the file mode, if it's not 640, but will not mess with the resource's existence. A different behavior would be confusing, to me at least. Cheers, Felix -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: puppet module upgrade dilemma with Subversion
What OS are you on, and what package manager are you using to install/upgrade puppet? On Friday, April 12, 2013 5:55:52 AM UTC-7, Ygor wrote: I use Subversion to maintain the $confdir of my puppet-masters and I just discovered that when one does an upgrade, the entire tree is blown away and replaced -- all my .svn directories are gone. I see nothing in the documentation (man page and such) to address this. Suggestions ? “Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.” Bill Waterson (Calvin Hobbes) -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: example42 mcollective - setting version produces an error
The error you're getting indicates an incorrectly specified resource. Please post your manifest to make it easier to debug. On Wednesday, April 10, 2013 8:27:20 AM UTC-7, Larry Fast wrote: When I define the mcollective_version variable using hiera I get the following error. There is no indication where the problem has occurred. Error: Failed to apply catalog: You cannot specify more than one of content, source, target If I set this variable in code it pretents to work but I think its just ignoring the version rule. IE. when I set it to an invalid version number it still gets installed. hiera: mcollective_version: '2.2.3-1.el6' code: $mcollective_version = '22.2.3-1.el' -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] More Hiera and Environment questions
If you're running puppet as a service, have you restarted the service since adding that value? On Monday, April 8, 2013 10:40:45 AM UTC-7, Tony C wrote: Oops, I copied and pasted the wrong thing. hiera.yaml :yaml: :datadir: /etc/puppetlabs/hieradata/%{::environment} :hierarchy: - common - %{::application} On my agent puppet.conf, I have tried what you suggested already but it can't find the value in hiera. [agent] certname = xx server = xx report = true classfile = $vardir/classes.txt localconfig = $vardir/localconfig graph = true pluginsync = true environment = dev application = app_1 On Monday, April 8, 2013 10:33:26 AM UTC-7, Ygor wrote: http://docs.puppetlabs.com/guides/environment.html#on-the-agent-node I put it in the [agent] block of puppet.conf “Sometimes I think the surest sign that intelligent life exists elsewhere in the universe is that none of it has tried to contact us.” Bill Waterson (Calvin Hobbes) -- *From: *Tony C tonyj...@gmail.com *To: *puppet...@googlegroups.com *Sent: *Monday, April 8, 2013 1:28:37 PM *Subject: *[Puppet Users] More Hiera and Environment questions Hi everyone, I have a question that I can't seem to find a solution to. I am using hiera, and having a hard time understanding how to pass environments for dynamic look ups. For example, if my hiera.yaml looks like this: :hierarchy: - %{::environment} - common How / where do I pass the $environment variable that the host will know it's in a particular environment. I had something working before using an ENC, but I do not have an option of using an ENC this time around. Thanks! Tony -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com. To post to this group, send email to puppet...@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Announce: Hiera 1.2.0 Available
Since I can imagine a situation that I might want to use the deep merge functionality on some lookups but not on others, Is it currently possible to specify the type of merge to do in the hiera_hash call? If not, is that a planned feature? On a slightly related note, is the function documentation going to get an update soon? All three hiera functions are still listed as undocumented. They do have fairly complete documentation in http://docs.puppetlabs.com/hiera/1/index.html, so perhaps something could be borrowed from there. On Wednesday, April 3, 2013 5:39:05 PM UTC-7, Matthaus Litteken wrote: Hiera 1.2.0 is a feature release in the 1.x series with new features and bug fixes. Downloads are available at: * Source: https://downloads.puppetlabs.com/hiera/hiera-1.2.0.tar.gz RPMs are available at https://yum.puppetlabs.com/el or /fedora Rubygem available at http://rubygems.org/gems/hiera Debs are available at https://apt.puppetlabs.com Mac package is available at https://downloads.puppetlabs.com/mac/hiera-1.2.0.dmg Please report feedback via the Puppet Labs Redmine site, using a affected version of 1.2.0: http://projects.puppetlabs.com/projects/hiera/ Fixes targeted at the final of this version in our bug tracker: http://projects.puppetlabs.com/versions/332 ## Hiera 1.2.0 Release Notes ## # Features Add deep-merge feature to backend lookups - Config option :merge_behavior = :native|:deep|:deeper - Add optional requirement on deep_merge gem to support :deep and :deeper options - Update Yaml backend to use Backend.merge_answer - Update Json backend to use Backend.merge_answer (#16644) Add a generic file cache Add a general file cacher in Hiera::Filecache based on the work that was done in the YAML backend. Adjust the YAML and JSON backends to use this cache (#18718) Create logger to handle fallback Sometimes a logger has been configured, but is not suitable for being used. An example of this is when the puppet logger has been configured, but hiera is not being used inside puppet. This adds a FallbackLogger that will choose among the provided loggers for one that is suitable. # Bug Fixes (#17434) Detect loops in recursive lookup The recursive lookup functionality was vulnerable to infinite recursion when the values ended up referring to each other. This keeps track of the names that have been seen in order to stop a loop from occuring. The behavior for this was extracted to a class so that it didn't clutter the logic of variable interpolation. The extracted class also specifically pushes and pops on an internal array in order to limit the amount of garbage created during these operations. This modification should be safe so long a new Hiera::RecursiveLookup is used for every parse that is done and it doesn't get shared in any manner. (#17434) Support recursive interpolation The original code for interpolation had, hidden somewhere in its depths, supported recursive expansion of interpolations. This adds that support back in. = ## Hiera 1.2.0 Changelog ## = Andrew Parker (13): 26311b7 (#18718) Load logger classes eagerly 2520aa3 (#18718) Create logger to handle fallback 074f5c8 (#18718) Enable console fallback when logger not suitable 8db2949 (#18718) Implement suitablity check for puppet logger dc98e2d (#17434) Add YARD for #parse_string 06dcf8e (#17434) Clarify tests for #parse_string dc6c538 (#17434) Add tests to exclude unwanted lookups 3a2660d (#17434) Stronger assertion about how keys are looked up 4d85f92 (Maint) Describe desired behavior in backend specs 023001d (#17434) Simplify string interpolation 9a3f1fd (#17434) Simplify logic around looking up values 453b489 (#17434) Support recursive interpolation 9a62bfd (#17434) Detect loops in recursive lookup Jeff McCune (4): b2623d9 (maint) Add Travis CI Support fcecdbf (maint) Add Travis CI support to active branches 5262050 (maint) Add Ruby 2.0.0 to Travis build matrix d9db368 Add contributing document to Hiera Justen Walker (7): 4ac8372 Add deep-merge feature to backend lookups 3da83b2 Allow both symbols and strings when deciding behavior of merge_answer 950076b Fix undefined method `[]' for nil:NilClass error in yaml_backend_spec.rb b317d10 Add deep-merge feature to backend lookups 13b79ef Allow both symbols and strings when deciding behavior of merge_answer d84cd11 Fix undefined method `[]' for nil:NilClass error in yaml_backend_spec.rb a4bbc76 Fix #19792 - cryptic error when missing deep_merge gem Matthaus Owens (7):
[Puppet Users] Re: execution order not being honored with -
If your role class declares other classes you probably being bitten by http://projects.puppetlabs.com/issues/8040. That is, and classes declared in the role class are not confined by the dependency graph. It's something they're working on fixing, but in the meantime, the recomendation is to use the anchor pattern. http://projects.puppetlabs.com/projects/puppet/wiki/Anchor_Pattern. The achor resource type comes from the stdlib, IIRC. On Wednesday, March 27, 2013 11:07:04 AM UTC-7, blalor wrote: I'm using Puppet 3.1.1 in standalone mode. I'm running puppet apply like this: basedir=$( dirname $( readlink -f ${0} ) ) puppet apply \ --detailed-exitcodes \ --modulepath=${basedir}/modules \ --hiera_config=${basedir}/hiera.yaml \ ${basedir}/manifests/site.pp site.pp looks like this (verbatim): node default { include role::${::nibiru_app_name} if $nibiru_region != 'vagrant' { include dns_workarounds Class['dns_workarounds'] - Class[role::${::nibiru_app_name}] } } modules/dns_workarounds/manifests/init.pp is similar to this: class dns_workarounds { host {'b3-proj-dev-03.example.com': ip = '10.1.128.18'} host {'b3-proj-dev-04.example.com': ip = '10.1.128.19'} host {'b3-proj-dev-05.example.com': ip = '10.1.128.20'} } nibiru_app_name comes from facter. The dns_workarounds class is just a bunch of host resource definitions that I have to add before everything else runs, due to some wonky DNS. I'm able to get a successful Puppet run, but I'm finding that not all of the host resources defined in dns_workarounds are being processed before the role is processed. I see the following on stdout: Notice: /Stage[main]/Dns_workarounds/Host[b3-proj-dev-05.example.com]/ensure: created Notice: /Stage[main]/Role::Base/Package[python-pip]/ensure: ensure changed 'purged' to 'present' Notice: /Stage[main]/Dns_workarounds/Host[login.dev.example.com]/ensure: created So far I haven't had a problem with the puppet apply failing due to the out-of-order resource processing, but I'm sure it'll bite me eventually. Am I declaring the ordering correctly with - ? I also tried just using require dns_workarounds in the if block, but that's giving me the same result. Thanks, Brian -- Brian Lalor bla...@bravo5.org javascript: -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Reference first member of array in manifest
It's just normal subscript notation. $ntpd_servers[0] http://docs.puppetlabs.com/puppet/3/reference/lang_datatypes.html#arrays Just as a note, ntpd has an option, -g I believe, that's used to set the time and start the service all at once. I think it's a little preferred over ntpdate these days. Not sure what flavor of linux you're running, but on centos, that flag is default when run through he init script. It would probably be cleaner for you if you could use that flag and then just a service resource subscribed to the conf file. On Tuesday, March 26, 2013 6:01:44 AM UTC-7, Willem Bos wrote: Hi all, How do I reference the first member in the $ntpd_servers array in the code below. Any pointers to the official Puppet (or Ruby?) documentation would be much appreciated. class ntp { $ntpd_servers = [ 0.rhel.pool.ntp.org, 1.rhel.pool.ntp.org, 2.rhel.pool.ntp.org ] exec { set_clock: subscribe = File[/etc/ntp.conf], command = /sbin/service ntpd stop /sbin/ntpdate FIRST_MEMBER_OF_ARRAY /sbin/service ntpd start, refreshonly = true; } } Regards, Willem. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: composite tags broken
As far as I can tell, if a provided tag matches any tag in the resource, it will be applied. Since you provide woof and service, file { '/tmp/foo': is run because it is tagged woof, service { 'foo': is run because it is tagged woof and is a service, and file { '/tmp/bar': is run because it is a service. On Monday, March 25, 2013 5:35:30 AM UTC-7, Luke Bigum wrote: Hi all, I wanted to check I'm not doing anything wrong before I lodge a bug. I think composite tags should work according to this doc: http://docs.puppetlabs.com/puppet/3/reference/lang_tags.html#restricting-catalog-runs However I do not get the expected behaviour with my test using Puppet 3: $ puppet apply test.pp --noop --tags woof,service Notice: /Stage[main]//File[/tmp/foo]/ensure: current_value absent, should be present (noop) Notice: /Stage[main]//File[/tmp/bar]/ensure: current_value absent, should be present (noop) Notice: /Stage[main]//Service[foo]/ensure: current_value stopped, should be running (noop) For this catalog: file { '/tmp/foo': ensure = present, tag= [ 'woof', 'cow' ], } service { 'foo': ensure = running, tag= [ 'woof', 'cow' ], } file { '/tmp/bar': ensure = present, notify = Service['foo'], } It should only work on the service, not everything. Bug, yes? -Luke -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: puppet augeas with more than one array in a single key
Might be that last semicolon screwing things up. I think the parser might be expecting another resource after that. Doesn't exactly make sense, as you have a semicolon ending the line above, so if you commented that last line, it would be the same, but it's a thought. On Saturday, March 23, 2013 6:23:12 AM UTC-7, iamauser wrote: Anyone, Dude ! Sir ? NOTE : I am using Puppet-3.0.2.x. On Friday, March 22, 2013 1:48:55 PM UTC-5, iamauser wrote: I am trying to put together a set of puppet policies for grub/menu.lst. The serial::grubmenulst looks like this : define serial::grubmenulst ( $value ) { $key = $title $context = /files/boot/grub/menu.lst augeas { grubmenulst/${key}: context = $context, onlyif = get $key != '$value', changes = set $key '$value', } } It is implemented in the following way : $svar = ${serial_tty},${serial_speed}n8r serial::grubmenulst { terminal/console : value = ; title[1]/kernel/elevator : value = deadline; title[1]/kernel/console[1] : value = ${svar}; *### It Fails for this Line otherwise it works* } Puppet agent complains during the run (see below). Note that, the code works if I comment out the last line: title[1]/kernel/console[1] : value = ${svar}. My initial guess is that puppet-augeas is not able to parse more than one array values for a single key... (!?) Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type serial::grubmenulst at /etc/puppet/modules/serial/manifests/serial.pp:16 on node hostname Any suggestions ? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Cannot use relative URL's
The source parameter takes URIs. You can't just give it a system path. Make sure the file lives in a files directory in a module and is properly readable by puppet and use puppet://modules/(modulename)/(filename) in source. On Thursday, March 21, 2013 12:38:32 AM UTC-7, Dragos R wrote: Hi, I am running into this error: Running Puppet agent on demand ... Info: Retrieving plugin Info: Caching catalog for test-pc Error: Failed to apply catalog: Parameter source failed on File[c:/locale.reg]: Cannot use relative URLs '/etc/puppet/modules/a_locale' Why the source is not working as should ? $ ls -l /etc/puppet/modules/ -rw-r--r-- 1 root root 1898 Mar 20 15:44 a_locale site.pp case $operatingsystem { windows: { $fileName=c:/locale.reg} default: { fail([puppet] os not supported) } } file { $fileName: ensure = present, source = /etc/puppet/modules/a_locale, } -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: syntax problems trying to use Keith Burdis's erwbgy/system module without Hiera
And just to have an answer on the list as well, the syntax in the docs is correct. Though it might be class { system::ntp in your case. Not sure of the specifics of that module. http://docs.puppetlabs.com/puppet/3/reference/lang_classes.html#using-resource-like-declarations On Thursday, March 21, 2013 1:09:02 PM UTC-7, John Smith wrote: I'm trying to use Keith Burdis's excellent erwbgy/system module without Hiera, at least initially. http://forge.puppetlabs.com/erwbgy/system I cannot determine how call the modules. From what I can tell the documentation isn't quite correct (or I am reading it wrong). I'm trying to start with ntp because that's an easy to understand example. https://github.com/erwbgy/puppet-ntp The ntp documentation says snip Specify a list of time servers to use: class { 'ntp': servers = [ 'ntp1.domain.com', 'ntp2.domain.com' ], } endsnip If I enter it like this in my manifest, I get errors. I assume the correct syntax is something more like this snip system::ntp { 'name': servers = [ 'ntp1.domain.com', 'ntp2.domain.com' ], } endsnip but that syntax gets me this error Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type system::ntp at /etc/puppet/manifests/site.pp:36 on node Any help with this would be appreciated.. thanks! -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Windows agent got a 'puppet:///' file source error
Are the permissions ok on that file? That is, is it readable by the master? On Thursday, March 21, 2013 2:17:19 PM UTC-7, RAM wrote: Hi, I'm trying to run puppet agent from Windows Server 2008 R2, puppet version is 3.0.2. The puppet master is running on RHEL 5.8, version is 3.1.1 I'm running a simple task: downloading a file, TableauServer.exe, from the master. The manifest, /etc/puppet/modules/tableau/manifests/init.pp, is as follows: class tableau::install { file {'c:/temp.install': ensure = 'directory', } file { 'c:/temp.install/TableauServer.exe': ensure = 'present', require = File['c:/temp.install'], source = 'puppet:///modules/tableau/TableauServer.exe', } } class tableau { notify {'Module: tableau':} include tableau::install } At the agent site, I got the error: C:\Windows\system32puppet agent --test --trace Info: Retrieving plugin Info: Loading facts in C:/ProgramData/PuppetLabs/puppet/var/lib/facter/facter_dot_d.rb Info: Loading facts in C:/ProgramData/PuppetLabs/puppet/var/lib/facter/puppet_vardir.rb Info: Loading facts in C:/ProgramData/PuppetLabs/puppet/var/lib/facter/root_home.rb Info: Caching catalog for mnappmktxwin2 Info: Applying configuration version '1363898070' Notice: Module: tableau Notice: /Stage[main]/Tableau/Notify[Module: tableau]/message: defined 'message' as 'Module: tableau' Error: /Stage[main]/Tableau::Install/File[c:/temp.install/TableauServer.exe]: Could not evaluate: Co uld not retrieve information from environment production source(s) puppet:///modules/tableau/Tableau Server.exe C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/util/errors.rb:60:in `fail' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/type/file/source.rb:166:in `metadata' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/type/file/source.rb:112:in `copy_source_ values' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/type/file.rb:632:in `retrieve' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/type.rb:693:in `retrieve_resource' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/transaction/resource_harness.rb:32:in `p erform_changes' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/transaction/resource_harness.rb:133:in ` evaluate' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/transaction.rb:49:in `apply' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/transaction.rb:84:in `eval_resource' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/transaction.rb:104:in `evaluate' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/util.rb:344:in `thinmark' C:/Program Files (x86)/Puppet Labs/Puppet/sys/ruby/lib/ruby/1.8/benchmark.rb:308:in `realtime' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/util.rb:343:in `thinmark' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/transaction.rb:104:in `evaluate' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/transaction.rb:383:in `traverse' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/transaction.rb:99:in `evaluate' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/resource/catalog.rb:144:in `apply' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/configurer.rb:122:in `apply_catalog' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/util.rb:179:in `benchmark' C:/Program Files (x86)/Puppet Labs/Puppet/sys/ruby/lib/ruby/1.8/benchmark.rb:308:in `realtime' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/util.rb:178:in `benchmark' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/configurer.rb:121:in `apply_catalog' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/configurer.rb:179:in `run' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/agent.rb:45:in `run' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/agent/locker.rb:20:in `lock' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/agent.rb:45:in `run' C:/Program Files (x86)/Puppet Labs/Puppet/sys/ruby/lib/ruby/1.8/sync.rb:230:in `synchronize' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/agent.rb:45:in `run' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/agent.rb:119:in `with_client' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/agent.rb:42:in `run' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/agent.rb:84:in `run_in_fork' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/agent.rb:41:in `run' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/application.rb:175:in `call' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/application.rb:175:in `controlled_run' C:/Program Files (x86)/Puppet Labs/Puppet/puppet/lib/puppet/agent.rb:39:in `run' C:/Program Files (x86)/Puppet
[Puppet Users] Re: syntax problems trying to use Keith Burdis's erwbgy/system module without Hiera
On Thursday, March 21, 2013 2:10:20 PM UTC-7, John Smith wrote: On Thursday, March 21, 2013 1:58:10 PM UTC-7, Ellison Marks wrote: And just to have an answer on the list as well, the syntax in the docs is correct. Though it might be class { system::ntp in your case. Not sure of the specifics of that module. http://docs.puppetlabs.com/puppet/3/reference/lang_classes.html#using-resource-like-declarations I'm just trying to call his ntp module now and have removed system. I still can't make it work... Here's my code snip include ntp class ntp { 'ntp': This syntax is incorrect. Not class ntp { 'ntp'. Just class { 'ntp', like it says in the docs. If that's giving you an error, post it. servers = [ 'ntp1.domain.com', 'ntp2.domain.com' ], } endsnip and here's my error: Could not parse for environment dev: Syntax error at ':'; expected '}' at /etc/puppet/manifests/site.pp:35 on node -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Verbose debugging of template variable binding ?
If it's working using the declaration from your tests directory, but not from your master, then it stands to reason that either something is wrong with the way you're calling it on the master or something is wrong in your master setup that is causing a communication error. Could you post how you're calling it from your master? On Tuesday, March 19, 2013 6:29:12 AM UTC-7, Francis Pereira wrote: I seem to have made some error in my template but cant seem find a way to debug it except for removing (deleting) parts of the template file and figuring out where there is a mistake. On my puppetmaster with --debug I get the following error debug: template[/etc/puppet/manifests/lib/redis/templates/redis.conf.erb]: Bound template variables for /etc/puppet/manifests/lib/redis/templates/redis.conf.erb in 0.00 seconds On the client I get err: Could not retrieve catalog from remote server: No content type in http response; cannot parse. I am certain that there is something wrong in my template. How do I debug binding of template variables ? Is there a verbose mode that would tell me where the binding breaks ? The template is available at https://github.com/7terminals/puppet-redis/blob/master/templates/redis.conf.erband the full module is hosted at https://github.com/7terminals/puppet-redis/ Ironically, when running in standalone mode i.e puppet apply tests/ini.pp this module/template seems to work. ~Francis -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] Store configuration problem (mysql)
Pro Puppet wouldn't mention puppetdb, as it was written before puppetdb came out. As to your original question, if the puppetmaster service is running, that would probably inhibit you from starting a second one, as the PID file would already be in use. For the client not being able to connect, you need to make sure that the master is listening on the correct port and that your firewall isn't blocking on that port. On Tuesday, March 19, 2013 7:30:34 PM UTC-7, mike wrote: I don't have idea of mysql and backed becoming obsolete. My guide is the book: Pro Puppet, but within the section stored configuration speak about: mysql, postgres, sqlite and oracle and never puppetdb. (Thanks for this tips). Respect whether puppet master is running, yes is ok and the ports is 8140 is available . [……...] [root@puppet ~]# netstat -tlpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp0 0 0.0.0.0:33060.0.0.0:* LISTEN 8288/mysqld tcp0 0 0.0.0.0:81400.0.0.0:* LISTEN 15436/ruby tcp0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1120/sshd tcp0 0 :::22 :::* LISTEN 1120/sshd [root@puppet ~]# [root@puppet ~]# service puppetmaster status puppet (pid 15436) is running… [……...] Thanks!! El 19-03-2013, a las 22:13, 尹川 yinchu...@gmail.com javascript: escribió: backend -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: hiera_hash lookups for included classes?
The difference between array and hash resolution makes sense, from a certain perspective. As an array is fine with holding duplicate values, it just gets all the data and flattens it down, but since a hash needs unique keys, to return a fairly flat hash, it can only take one value for each key, and prefers the more specific. The string and array restriction is quite odd though, looking at it now... On Friday, March 15, 2013 8:28:56 AM UTC-7, jcbollinger wrote: On Thursday, March 14, 2013 3:39:41 PM UTC-5, Ellison Marks wrote: I'm pretty sure it does do merging, in the yaml backend at least. case resolution_type ... when :hash raise Exception, Hiera type mismatch: expected Hash and got #{new_answer.class} unless new_answer.kind_of? Hash answer ||= {} answer = new_answer.merge answer Never mind. I somehow got a totally wrong idea of what hiera_hash() does. I probably formed it by analogy with hiera_array(), but in fact they aren't very analogous in that hiera_array() gives you all the data in your hierarchy, whereas hiera_hash() gives you a digested form. It looks like it does merge (but only shallowly until 1.2). I got another surprise when studying the code, too: hiera_array() is much less general than I thought. It collects only String and Array values, not numeric, boolean, or hash values. It raises an exception if any of the collected values for the give key is of any of the latter types, and it is not clear to me why. John -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: how puppet restart a service
You don't need the restart command there. When you say hasrestart = true, you're telling puppet that the init script has a restart command, so it's going to call /sbin/service lighttpd restart anyway. If you say hasrestart = false, the default is to do a service lighttpd stop service lighttpd start. The restart parameter is for specifying the command to restart the service if it isn't handled by the init script and you want something more complicated than the default. On Friday, March 15, 2013 12:06:02 AM UTC-7, 陈士超 wrote: i do like this: service{ lighttpd: hasrestart = true, hasstatus = true, restart = /sbin/service lighttpd restart, } But it dose not work -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Installing puppet modules
Unless you're using puppet apply, you don't download modules to the individual nodes, you download them to your master. The master uses the modules to compile a catalog which it then ships off to a node. Or in other words, I'm not sure what your question is. Why do your nodes need to download modules? On Friday, March 15, 2013 9:24:36 AM UTC-7, Mike Power wrote: I want to setup a node using a three step process 1) download node requirements (git) 2) download modules to fit requirements (puppet) 3) Bring up the node in the required state (puppet) The second step is the one I am having trouble with. I want a file (master.pp) to list out all the modules and what versions are needed before applying the site.pp file. From what I have been able to find there are two possible approaches. 1) Use some module to download and unzip tars. In this master.pp file use the module to download the other modules from urls and extract them in the module path. The problem I have is that I cannot figure out how to get the modulepath in the master.pp file and parse it such that I can extract the tars in the right location. I tried something like: archive {$file: ensure = present, url = $url, checksum= false, extension = tar.gz, target = split($::modulepath, :)[0], } But that doesn't work. 2) There is another module called puppet_module ( https://github.com/rcoleman/puppet_module_provider) which allows you to download and install modules from puppetforge. This module works great. Except that I need to download modules from an intranet location not an internet location. I do not have control over puppetforge so I do not have control over how long stuff stays up there, when it changes etc. I need to house the modules on a local file store such that as we make the decision to upgrade we can do those upgrades other then that the modules will always remain available. The puppet_module (reading the source code) does have a source parameter. I assume then you could point it at something other than puppetforge. But it is not documented and I am not sure I can easily produce a in house puppet forge that would have the needed filesystem layout for puppet_module to work. Have other people looked into this problem? What have they come up with? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: hiera_hash lookups for included classes?
I'm pretty sure it does do merging, in the yaml backend at least. case resolution_type ... when :hash raise Exception, Hiera type mismatch: expected Hash and got #{new_answer.class} unless new_answer.kind_of? Hash answer ||= {} answer = new_answer.merge answer On Thursday, March 14, 2013 7:26:59 AM UTC-7, jcbollinger wrote: On Wednesday, March 13, 2013 8:51:04 PM UTC-5, Ellison Marks wrote: You can just call hiera_hash() from within your manifest, no? No. The OP wants hash merging, and hiera_hash() doesn't do that (as far as I understand). It will instead return a hash whose keys are hierarchy levels, and whose values are those associated with the requested key at the corresponding level. Hash merging is supposedly included in Hiera 1.2, which is now at release candidate stage, but I don't know what the API for it looks like. With older hiera, you can use hiera_array() to get the component hashes in hierarchy order, and then merge them manually. The puppetlabs-stdlib module provides a merge function that does almost what the OP wants, but although it will merge an arbitrary number of hashes, I don't think it will accept them in array-of-hashes form. John -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: randomly changing template (hiera backed)
each_pair, so that a hash structure, yes? Ruby hashes are unordered in 1.8. Iterating like that isn't guaranteed to be the same every time. You can iterate over the sorted keys, then get the params variable by lookup using the key. % cachebins.keys.sort.each do |bin| params = cachebins[bin] % [stuff...] % end -% On Thursday, March 14, 2013 5:24:50 PM UTC-7, jc.listmail wrote: I have a template that I'm using to build Memcache configs from. The template looks like this: USER=memcached MAXCONN=1024 OPTIONS= PIDDIR=/var/run/memcached % cachebins.each_pair do |bin, params| % %= bin.upcase %_PORT=%= params['port'] % %= bin.upcase %_CACHESIZE=%= params['cachesize'] % %= bin.upcase %_PIDFILE=$PIDDIR/%= bin %.pid % end -% The hiera config looks like this: memcache: default: port: 11211 cachesize: 64 session: port: 11212 cachesize: 128 menu: port: 11213 cachesize: 64 views: port: 11214 cachesize: 64 filter: port: 11215 cachesize: 32 users: port: 11216 cachesize: 32 page: port: 11217 cachesize: 32 and init.pp looks like this: $cachebins = hiera('memcache') file { memcache_conf: path = /etc/sysconfig/memcached, owner = root, group = root, mode = 644, notify = Service[memcached], content = template(memcache/memcached.conf.erb), } The issue is that when the template is compiled, it periodically (and randomly) gets recompiled in a different order, which causes my notify statement to fire and restart memcache. The actual contents don't change, just the order in which the bins are listed in the template. I was expecting the layout to follow my hiera data structure, but it seems to glob them in an unordered (and maybe random) manner when it parses out into the template. Maybe I'm going about this in the wrong way in terms of importing my hiera data, but is there a way I can force the template to be built in the same order every time so that I don't have the file randomly updating and causing a restart from my notify? -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: get a hash from multiple levels(with the same keys but different values) with hiera
the hiera() call bails out the first time it finds an answer. Assuming you're calling something like hiera('sshd_config'), you're getting that first answer and nothing else. You need to replace the hiera() call with hiera_hash(), which will merge a hash at all levels of the hierarchy, preferring more specific answers. On Wednesday, March 13, 2013 8:26:58 AM UTC-7, Alexandru Dragoescu wrote: Hello, I have this configuration: File: comon.yaml SSH: ConfigFolder: /etc/ssh/ sshd_config: Protocol: 1,2 SyslogFacility: AUTHPRIV *PermitRootLogin*: no PasswordAuthentication: yes ChallengeResponseAuthentication: no GSSAPIAuthentication: yes GSSAPICleanupCredentials: yes UsePAM: yes *ClientAliveInterval*: 100 File test_env.yaml [same keys as in comon.yaml but with different values] : SSH sshd_config: *PermitRootLogin*: yes *ClientAliveInterval*: 80 File hiera.yaml: --- :backend: - yaml :hierarchy: - %{environment} - comon :yaml: # datadir is empty here, so hiera uses its defaults: # - /var/lib/hiera on *nix # - %CommonAppData%\PuppetLabs\hiera\var on Windows # When specifying a datadir, make sure the directory exists. :datadir: /etc/puppet/hieradata In puppet code: $ssh_data = hiera_hash('SSH') $sshd_config = $ssh_data('sshd_config') If a node has %{environment} == test_env I want to retrieve a hash (in sshd_config) like: Protocol: 1,2 SyslogFacility: AUTHPRIV * PermitRootLogin: yes* PasswordAuthentication: yes ChallengeResponseAuthentication: no GSSAPIAuthentication: yes GSSAPICleanupCredentials: yes UsePAM: yes * ClientAliveInterval: 80* if environment != test_env then I want to retrieve : Protocol: 1,2 SyslogFacility: AUTHPRIV *PermitRootLogin: no* PasswordAuthentication: yes ChallengeResponseAuthentication: no GSSAPIAuthentication: yes GSSAPICleanupCredentials: yes UsePAM: yes *ClientAliveInterval: 100* In my setup for the first care i get (it reads only test_env.yaml - that is not what I want): *PermitRootLogin*: yes *ClientAliveInterval*: 80 and for the second (reads only comon.yaml - is ok) : Protocol: 1,2 SyslogFacility: AUTHPRIV *PermitRootLogin*: no PasswordAuthentication: yes ChallengeResponseAuthentication: no GSSAPIAuthentication: yes GSSAPICleanupCredentials: yes UsePAM: yes *ClientAliveInterval*: 100 Is this possible with my Hiera definition? Thank you, Alex -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: hiera_hash lookups for included classes?
You can just call hiera_hash() from within your manifest, no? It's not quite as pretty as auto lookup, but it works, and we can hope we get some prettier syntax in the future. On Wednesday, March 13, 2013 6:28:00 PM UTC-7, Scott Merrill wrote: When using include to include a class Hiera helpfully performs an autolookup on the parameters of the included class. Specially-named variable names are automatically pulled from the Hiera datastore(s) and passed into the included module. This is pretty awesome. But it looks like included resources _only_ perform a hiera() lookup. If we have a hash defined in several levels of our Hiera data, and we want the hash to be collapsed into a single hash following hierarchy order, does Hiera offer a way to perform a hiera_hash() lookup for the autolookup? The documentation discourages mixing defined-type module inclusion and include-type module inclusion. So if there's no hiera_hash() option for autolookups, we're required to use defined-type inclusion, yes? Thanks. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Basic stuff, I can't seem to get right, Could not retrieve information from environment production source(s)
Might be an auth.conf problem. Have you changed anything in there? On Tuesday, March 12, 2013 10:16:02 AM UTC-7, Race Boyer wrote: I really hate to bother everyone with with something I'm sure is super basic, but I'm stumped. I've read the module serving guide, I checked my syntax with puppet-lint, I think I have everything in place, yet I keep getting the same error: Tue Mar 12 11:49:28 -0500 2013 Puppet (notice): Starting Puppet client version 2.6.17 Tue Mar 12 11:49:28 -0500 2013 /File[/var/lib/puppet/lib] (err): Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/plugins Tue Mar 12 11:49:29 -0500 2013 /Stage[main]//File[/etc/ssh/sshd_config] (err): Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/sshd/sshd_config at /etc/puppet/manifests/site.pp:20 Tue Mar 12 11:49:29 -0500 2013 /Stage[main]//Service[sshd] (notice): Dependency File[/etc/ssh/sshd_config] has failures: true Tue Mar 12 11:49:29 -0500 2013 /Stage[main]//Service[sshd] (warning): Skipping because of failed dependencies I was thinking there was some sort of permissions error somewhere? But since I'm running as root, I don't think that's likely, plus I have even 777 the sshd_config to test. Here is my site.pp, if anyone can look it over and at least point me in the right direction it would be greatly appreciated. I've already scoured this forum, but I think I'm missing something. package { 'openssh': ensure = installed, } file { '/etc/ssh/sshd_config': source = 'puppet:///modules/sshd/sshd_config', owner = root, group = root, mode = '0640', notify = Service['sshd'], #restart sshd. require = Package['openssh'], } service { 'sshd': ensure = running, enable = true, hasstatus = true, hasrestart = true, } Any help would be greatly appreciated. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Basic stuff, I can't seem to get right, Could not retrieve information from environment production source(s)
If you haven't touched it, it should be fine. Other things to keep in mind: The puppetmaster is probably running as the user puppet, not root, and even if the file itself is readable by all, the intervening directories might be more restrictive. On Tuesday, March 12, 2013 11:02:01 AM UTC-7, Race Boyer wrote: No, I've never looked at it before. Should it be changed or remain unchanged? Or configured to allow one to access modules? On Tuesday, March 12, 2013 12:45:51 PM UTC-5, Ellison Marks wrote: Might be an auth.conf problem. Have you changed anything in there? On Tuesday, March 12, 2013 10:16:02 AM UTC-7, Race Boyer wrote: I really hate to bother everyone with with something I'm sure is super basic, but I'm stumped. I've read the module serving guide, I checked my syntax with puppet-lint, I think I have everything in place, yet I keep getting the same error: Tue Mar 12 11:49:28 -0500 2013 Puppet (notice): Starting Puppet client version 2.6.17 Tue Mar 12 11:49:28 -0500 2013 /File[/var/lib/puppet/lib] (err): Could not evaluate: Could not retrieve information from environment production source(s) puppet://puppet/plugins Tue Mar 12 11:49:29 -0500 2013 /Stage[main]//File[/etc/ssh/sshd_config] (err): Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/sshd/sshd_config at /etc/puppet/manifests/site.pp:20 Tue Mar 12 11:49:29 -0500 2013 /Stage[main]//Service[sshd] (notice): Dependency File[/etc/ssh/sshd_config] has failures: true Tue Mar 12 11:49:29 -0500 2013 /Stage[main]//Service[sshd] (warning): Skipping because of failed dependencies I was thinking there was some sort of permissions error somewhere? But since I'm running as root, I don't think that's likely, plus I have even 777 the sshd_config to test. Here is my site.pp, if anyone can look it over and at least point me in the right direction it would be greatly appreciated. I've already scoured this forum, but I think I'm missing something. package { 'openssh': ensure = installed, } file { '/etc/ssh/sshd_config': source = 'puppet:///modules/sshd/sshd_config', owner = root, group = root, mode = '0640', notify = Service['sshd'], #restart sshd. require = Package['openssh'], } service { 'sshd': ensure = running, enable = true, hasstatus = true, hasrestart = true, } Any help would be greatly appreciated. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
Re: [Puppet Users] Re: hiera / create_resources / define
You don't have access to the configs variable What you do have access to is the $title variable, which I think is what you want. This is automatically set by puppet to the name of the defined type's instance. In this case, config1, config2... config100. http://docs.puppetlabs.com/puppet/latest/reference/lang_defined_types.html#title-and-name On Monday, March 11, 2013 10:46:52 AM UTC-7, jc.listmail wrote: So, this is mostly working now (thanks for the pointers!), but how can I reference the top level configs within my define? For example: configs: config1: Name: app1 WorkingDir: /var/app1 config2: Name: app2 WorkingDir: /var/app2 ... config100: Name: app100 WorkingDir: /var/app100 define app::virtualApps($Name, $WorkingDir) { file {/etc/apps/$configs[0].conf: owner = root, group = root, mode = 644, content = template(app/foo.conf.erb } I want to be able to reference config1, config2, ... config100 as a variable ($config)from within the define. In this case, using them as the base file name for each instance of a config file. The error I get when trying to process this file is: Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Must pass config to app::virtualApps[config1] On Fri, Mar 8, 2013 at 2:49 PM, Ellison Marks gty...@gmail.comjavascript: wrote: Through create_resources, Name and WorkingDir are being passed to your defined type as parameters. Your defined type though, does not accept parameters. something like this: define app::virtualApps($Name, $WorkingDir) { should work, though you'll also have to work out case, as it seems you're using lower case in your template and upper in your YAML. The YAML, defined type parameters and template should all match, variable name-wise. On Friday, March 8, 2013 2:18:30 PM UTC-8, jc.listmail wrote: I'm trying to use create_resources to create a series of files with semi-custom content based on a template. This is what I have: foo.conf.erb: Name %= name % WorkingDir %= working_dir % ... a bunch of static entries YAML: configs: config1: Name: app1 WorkingDir: /var/app1 config2: Name: app2 WorkingDir: /var/app2 ... config100: Name: app100 WorkingDir: /var/app100 manifest: class app { create_resources(app::**virtualApps, hiera('configs')) } define app::virtualApps() { file {/etc/apps/$app.conf: owner = root, group = root, mode = 644, content = template(app/foo.conf.erb } I know this is not correct. I am missing at least one important concept here. What I am stuck on is how, using create_resources, I can reference the parameters named in the YAML config so that I end up with a config file on the file system for each. My understanding of create_resources was that this would be a good use for it, in that it will call app::virtualApps() once for each hash defined under configs in the YAML file, which should result in the structure I want. What I am not getting is what the datastructure looks like that is being provided to app::virtualApps() and how you can reference those parameters, both in the define AND the associated template. I'd like to end up with: /etc/apps/app1-100.conf with the contents that look like: Example: /etc/apps/app1.conf: Name app1 WorkingDir: /var/app1 bunch of static entries that are the same in each file -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users...@googlegroups.com javascript:. To post to this group, send email to puppet...@googlegroups.comjavascript: . Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Hiera top down data?
I think what you're describing fits exported resources. That is, each node would get it's data from hiera and export it, and then the main node would spaceship it all up. http://docs.puppetlabs.com/puppet/3/reference/lang_exported.html http://docs.puppetlabs.com/guides/exported_resources.html On Monday, March 11, 2013 2:52:52 PM UTC-7, Josh Harrison wrote: Hi all, So, I am trying to use Hiera in combination with a glusterfs module from https://forge.puppetlabs.com/thias/glusterfs. What I'd like to be able to do is, in node specific files, define something like glusternode: - host: gluster1.blah - ip: 1.2.3.4 in gluster1.blah.yaml I'm populating a puppet class call that looks like this: class { 'glusterfs::server': peers = $::hostname ? { 'server1' = '192.168.0.2', 'server2' = '192.168.0.1', }, } What I'd then want to do would be assemble all of the data from each hiera node specific config file into a hash I can pass to puppet listing all my hosts. Is there any way to do this? I suppose another way to say it is that from the root, I want to pull specific data off all of the leaves and pass all that data on to puppet. I want to essentially do this for in my declaration: class { 'glusterfs::server': peers = $::hostname ? { hiera(glusternodes) }, } Any ideas? Thanks! -Josh -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: hiera yaml namespace nesting
What the second structure you wrote evaluates to is a nested nested nested hash. {role = {ui = { public_hostname = test } } } The keyword looked up in hiera, role::ui::hostname in this case, is just a string, nothing special. On Sunday, March 10, 2013 10:40:11 AM UTC-7, Bilco105 wrote: Hi, I've just got hiera deployed into a new puppet environment, and have defined a class as follows: modules/role/manifests/ui.pp = class role::ui ( $public_hostname ) { notify {'role::ui::notify': message = role::ui configured for ${::data_center}; hostname: $public_hostname, } } This is then included into the default node configuration. In my common.yaml, if I lay the file out as follows: manifests/hieradata/common.yaml = --- role::ui::public_hostname: test It works fine, and the variable is available within my Puppet manifest. However, if I try and nest the YAML to make the configuration read cleaner: manifests/hieradata/common.yaml = --- role: ui: public_hostname: test The same variable does not get passed through. Is this type of format not supported in either YAML or JSON? Thanks, Rob -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: how to customize hiera lookups per node?
I'm not really sure you're describing multiple hierarchies. From the limited hierarchies you posted, it sort of looks like the hierarchy you're describing is like so: :hierarchy: - host/%{::fqdn}/config - app/%{::some_custom_fact_app}/config - common/config which is pretty simple (if slightly manual) to accomplish with something like facter dot d from the stdlib. On Thursday, March 7, 2013 12:11:09 PM UTC-8, James Ralston wrote: We have a small and growing Puppet infrastructure we started a few months ago: about 30 modules and 40 hosts. At this point, all of the modules we have written use parameterized classes. That way, when we call the module from the host's node.pp file, we can override defaults (if necessary). We knew using parameterized classes wouldn't scale. Now that we've upgraded to Puppet 3 on the server and all of our clients, we want to do things the Hiera way. The problem is, we've been unable to find any good documentation on how to use hiera and Puppet together. Yes, we've read the hiera documentationhttp://docs.puppetlabs.com/hiera/1/on the puppetlabs web site. That was helpful in explaining hiera general concepts, but it doesn't really explain how to integrate hiera data lookup with Puppet. The main thing we're trying to understand is how each host manifest can declare its own hiera hierarchy for data lookup. We can't do this with the yaml backend, because the yaml backend will apply the same hierarchy to EVERY client, because all Puppet clients use the /etc/puppet/hiera.yaml file on the puppetmaster. Granted, we can customize the hierarchy on the puppetmaster with facter facts, but that doesn't give us enough control. For example, host foo might want: :hierarchy: - host/%{::fqdn}/config - app/external-nameserver/config - common/config But host bar might want: :hierarchy: - host/%{::fqdn}/config - app/internal-mailserver/config - common/config That's what we can't figure out how to do with hiera. Frustratingly, the one section of the hiera documentation on the puppetlabs web site that looks like it might explain what we need to know—the Usage with Puppet section—just says Coming soon. There's just no way we're the only site out there using Puppet who needs to vary the hiera lookup hierarchy per node. What's the secret to it? How do you actually do it? Thanks, James -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: hiera / create_resources / define
Through create_resources, Name and WorkingDir are being passed to your defined type as parameters. Your defined type though, does not accept parameters. something like this: define app::virtualApps($Name, $WorkingDir) { should work, though you'll also have to work out case, as it seems you're using lower case in your template and upper in your YAML. The YAML, defined type parameters and template should all match, variable name-wise. On Friday, March 8, 2013 2:18:30 PM UTC-8, jc.listmail wrote: I'm trying to use create_resources to create a series of files with semi-custom content based on a template. This is what I have: foo.conf.erb: Name %= name % WorkingDir %= working_dir % ... a bunch of static entries YAML: configs: config1: Name: app1 WorkingDir: /var/app1 config2: Name: app2 WorkingDir: /var/app2 ... config100: Name: app100 WorkingDir: /var/app100 manifest: class app { create_resources(app::virtualApps, hiera('configs')) } define app::virtualApps() { file {/etc/apps/$app.conf: owner = root, group = root, mode = 644, content = template(app/foo.conf.erb } I know this is not correct. I am missing at least one important concept here. What I am stuck on is how, using create_resources, I can reference the parameters named in the YAML config so that I end up with a config file on the file system for each. My understanding of create_resources was that this would be a good use for it, in that it will call app::virtualApps() once for each hash defined under configs in the YAML file, which should result in the structure I want. What I am not getting is what the datastructure looks like that is being provided to app::virtualApps() and how you can reference those parameters, both in the define AND the associated template. I'd like to end up with: /etc/apps/app1-100.conf with the contents that look like: Example: /etc/apps/app1.conf: Name app1 WorkingDir: /var/app1 bunch of static entries that are the same in each file -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: error with apply the class
You have two values for ensure in you package resources. For services, you need two resources each. First, package, with ensure present to install the package. Second, service, with ensure running to start the service. Also, neither of those packages has an associated service. Perhaps you meant telnet-server? On Friday, March 8, 2013 3:37:11 PM UTC-8, mike wrote: Hi, I am declaring class (for test) on my puppet master but when i want apply on my node i have the next error: [root@nodo1 ~]# puppet agent --test --noop Info: Retrieving plugin Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class baseConf for nodo1.example.com on node nodo1.example.com Warning: Not using cache on failed catalog Error: Could not retrieve catalog; skipping run [root@nodo1 ~]# My structure puppet master is: [root@master puppet]# ll modules/baseConf/ files/ manifests/ templates/ My class: [root@master puppet]# less modules/baseConf/manifests/init.pp class baseConf { package { telnet: ensure = present, ensure = running, } package { nmap: ensure = present, ensure = running, } } My statement site.pp [root@master puppet]# less manifests/site.pp node 'nodo1.example.com' { include baseConf } I check the sintax and the structure directory but i don undertand the problem. -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Configure One Host to Not Get Client Configuration, but Instead the Server Config Best Practices
In general, the pattern to use here would be to use hiera. It allows separation of manifest and data. In your case, instead of having conditional logic in the class itself, at compilation time the master would look up the value for a variable, say ntp::server, in a hierarchy of data. For the master, this would return the centos servers, and for everyone else, it would return the master. Then you manage ntp.conf as a template instead of a static file. On Monday, March 4, 2013 12:57:23 PM UTC-8, phundisk wrote: I have been doing something with puppet that is working for me 100% but I am not sure this is the best way to be doing things and wanted to see what the community feels about it and if anyone has any suggestions. This problems relates to me having a common 'base' class which I put common server configuration in to be distributed to all my servers. The example I am using is with NTP clients and NTP server. In my base class I have something like this: include ntp The issue with this is that the NTP clients and servers need to have different ntp.conf files. For example, I want the NTP clients to be configured to use the local NTP server as their NTP server, and my local NTP server to use CentOS's NTP servers. I have been using some basic if else logic to deal with this to give it the appropriate server or client file. Is this the best way to do this? Are there better ways to do this besides doing an 'include ntp::client' for every node in my nodes.pp. I like my nodes.pp to be clean and organizes. *class ntp inherits ntp::params* { package { ntp: ensure = installed } # Black magic to automatically detect the NTP servers and set them as servers # This works by the params class. If that server's IP is in the ntp_servers array, # it will be setup as an NTP server. if $::ipaddress in $ntp_servers { # NTP Server Stuff file { /etc/ntp.conf: owner = 'root', group = 'root', mode = 0444, source = [puppet:///modules/ntp/ntp.conf.$::hostname, puppet:///modules/ntp/ntp.conf.server], require = Package[ntp], } file { /etc/ntp/step-tickers: owner = 'root', group = 'root', mode = 0444, source = puppet:///ntp/step-tickers.server, require = Package[ntp], } } else{ # This is for regular NTP clients file {/etc/ntp.conf: owner = 'root', group = 'root', mode = 0444, require = Package[ntp], content = template(ntp/ntp.conf.erb), } file {'/etc/ntp/step-tickers': owner = 'root', group = 'root', mode = 0444, require = Package[ntp], content = template(ntp/step-tickers.erb), } } service { ntpd: enable = true, ensure = running, hasrestart = true, hasstatus = true, require = Package[ntp], } exec { ntpd restart: path = [/etc/init.d], subscribe = [ File[/etc/ntp/step-tickers] ], refreshonly = true, } } *class ntp::params* { case $::environment { 'production': { $ntp_servers = ['192.168.20.103','192.168.20.115'] } default: { $ntp_servers = ['192.168.5.10','192.168.10.248','192.168.10.247' ] } } } _ This email and any files transmitted with it are confidential and intended solely for the addressee. If you received this email in error, please do not disclose the contents to anyone; kindly notify the sender by return email and delete this email and any attachments from your system. © 2011 Currensee Inc. is a member of the National Futures Association (NFA) Member ID 0403251 | Over the counter retail foreign currency (Forex) trading may involve significant risk of loss. It is not suitable for all investors and you should make sure you understand the risks involved before trading and seek independent advice if necessary. Performance, strategies and charts shown are not necessarily predictive of any particular result and past performance is no indication of future results. Investor returns may vary from Trade Leader returns based on slippage, fees, broker spreads, volatility or other market conditions. Currensee Inc | 54 Canal St 4th Floor | Boston, MA 02114 | +1.617.624.3824 -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
[Puppet Users] Re: Package and unless
The unless parameter is only accepted by the exec resource. You're trying to use it in a package resource, and thus the error you're getting. You sort of need to make sure that the class that this resource is enclosed in is only include'd on those nodes that need it. On Friday, March 1, 2013 12:00:24 PM UTC-8, Tiago Cruz wrote: Hello all! I would like to install one package, but only with some condition was ok, like: package { nagios-plugins-basic: ensure = 1.4.15-personal1, unless = test `ls -ld /opt/nrpe* 2/dev/null | wc -l` -ge 1, } but this not work =/ Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid parameter unless at /etc/puppet/modules/nagios/manifests/ubuntu.pp:13 on node domu-12-31-39-0c-24-ce.compute-1.internal How can I do this? Thanks!! -- You received this message because you are subscribed to the Google Groups Puppet Users group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.