[Puppet Users] Bring a friend to PuppetConf!

2013-07-29 Thread Luke Kanies
Hi all,

PuppetConf is just a few weeks away, believe it or not - the sessions are 
August 22-23, and there's training in SF the week before and after. Last year's 
conference was so packed, we’re hosting PuppetConf 2013 in a bigger (and more 
awesome) venue this year: San Francisco’s historic Fairmont Hotel. We have more 
educational tracks and an amazing speaker lineup[1]. You can get a quick intro 
to the venue and conference in a video tour I took of the hotel:

http://puppetconf.com/location/

We’re offering a special 2-for-1 discount to all of you on the puppet users 
list. Bring a friend to PuppetConf, and you’ll each get a 50 percent discount. 
Here’s your code to register yourself and your friend (make sure to scroll down 
to access the 2-for-1 promotion):

http://puppetconf2013.eventbrite.com/?access=BUYONEGETONE

But hurry, we've limited slots, and we already have more registered than 
attended in 2012. Find a friend and sign up today.  Given that a third to half 
of the attendees at our events tend to be new users, I think this is a great 
way to make it even easier for you to bring new people.

This year’s speakers and tracks will offer great information and advice for 
people working in all kinds of organizations — from startups to the Fortune 
500, and everything in between. We’re featuring sessions for Puppet beginners; 
speakers from companies doing very interesting things with Puppet Labs 
technologies; and an inside look at upcoming developments. And one of the best 
things about the venue is there will be lots of great places in the hallway 
track to hang out and get to know the community.

Hope to see you in a few weeks,

Luke

1 - http://puppetconf.com/schedule/ 

-- 
Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199
Join us at PuppetConf 2013, August 22-23 in San Francisco - 
http://bit.ly/pupconf13

-- 
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] VMware investment in Puppet Labs

2013-01-24 Thread Luke Kanies
On Jan 24, 2013, at 9:22 AM, Nikola Petrov nikol...@gmail.com wrote:

 On Wed, Jan 23, 2013 at 07:25:18AM -0800, Luke Kanies wrote:
 Hi all,
 
 I'm proud to announce that VMware has invested $30 million in Puppet Labs:
 
 http://puppetlabs.com/blog/vmware-invests-30-million-in-puppet-labs/
 
 This investment is about continuing to enable us to invest and grow, staying 
 on the track of being a great, independent company.  Just like when we 
 announced OpenStack support, we're not suddenly switching to being a VMware 
 company, a cloud company, a virtualization company - we're staying an 
 infrastructure management company that supports massive heterogeneity.
 
 Please contact me if you have any questions.
 
 Thanks,
 Luke
 
 Glad to hear that you are receiving funding for the great job that you
 are doing.

Thanks.  It's all about being able to continue investing in the products.

-- 
Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] VMware investment in Puppet Labs

2013-01-23 Thread Luke Kanies
Hi all,

I'm proud to announce that VMware has invested $30 million in Puppet Labs:

http://puppetlabs.com/blog/vmware-invests-30-million-in-puppet-labs/

This investment is about continuing to enable us to invest and grow, staying on 
the track of being a great, independent company.  Just like when we announced 
OpenStack support, we're not suddenly switching to being a VMware company, a 
cloud company, a virtualization company - we're staying an infrastructure 
management company that supports massive heterogeneity.

Please contact me if you have any questions.

Thanks,
Luke

-- 
Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] access exported resources in template

2012-09-09 Thread Luke Kanies
I don't quite know the answer, and I agree, a running shell would be useful.

I'd be looking in Parser::Scope and the TemplateWrapper class, wherever it is.  
Those should generally cover it, with maybe Parser::Resource.

You should try deeper inspection of the resources.  I think 'resource.to_hash' 
should give you all of the resource's parameters.

On Sep 7, 2012, at 6:01 AM, ctrlc-root root.ct...@gmail.com wrote:

 Well, 3 years old or not, this is still in the first page of google results 
 haha. I'm running puppet version 2.7.9 and the result of that template is a 
 blank comment line for every instance of the Firewall::Rule type. If I 
 replace 'resource[:comment]' with 'resource.type' then I can confirm that the 
 iteration is actually working, because I see comment lines like this '# 
 Firewall::Rule'. I tried 'resources[comment]', 'resources[:comment]', and 
 'resources.comment' (with this one triggering an error).
 
 I wish there was some easy way to get an interactive ruby shell running with 
 the same environment so I could actually test this without running puppet 
 apply every time, if I could I probably would have figured it out on my own 
 already. If you don't know what the answer is, could you maybe point me in 
 the general direction of how you would find out? Perhaps a relevant part of 
 the puppet source code? And thanks for answering.
 
 On Friday, September 7, 2012 12:52:14 AM UTC-4, Luke Kanies wrote:
 Wow, talk about a blast from the past.  I don't get a lot of replies to 3 
 year old email. :)
 
 What happens when you do this?  It looks like it should basically work, 
 although I'd use 'resources' instead of 'vertices', I think.  What version is 
 this?
 
 -- 
 Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199
 
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 Puppet Users group.
 To view this discussion on the web visit 
 https://groups.google.com/d/msg/puppet-users/-/XEXWIRbxz9kJ.
 To post to this group, send email to puppet-users@googlegroups.com.
 To unsubscribe from this group, send email to 
 puppet-users+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/puppet-users?hl=en.


-- 
Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] access exported resources in template

2012-09-06 Thread Luke Kanies
Wow, talk about a blast from the past.  I don't get a lot of replies to 3 year 
old email. :)

What happens when you do this?  It looks like it should basically work, 
although I'd use 'resources' instead of 'vertices', I think.  What version is 
this?

On Sep 6, 2012, at 10:14 AM, ctrlc-root root.ct...@gmail.com wrote:

 The resource[:property] method doesn't seem to work. I'm pretty new with 
 puppet and only just learned ruby, so I was hoping someone could perhaps just 
 point me in the right direction. Here's what I've got so far:
 
 % scope.compiler.catalog.vertices.each do |resource| -%
 % if resource.type == Firewall::Rule -% 
 # %= resource[:comment] %
 % end -% 
 % end -%
 
 where Firewall::Rule is defined something like:
 
 define firewall::rule ($comment=$title){}
 
 Any ideas?
 
 On Wednesday, October 21, 2009 12:55:37 AM UTC-4, Luke Kanies wrote:
 On Oct 19, 2009, at 6:19 AM, Bernhard Bock wrote:
 
  Hi,
 
  I'm trying to develop a class that autogenerates a config file based
  on an .erb template.
  It shall populate the config file with data exported from various  
  hosts.
 
  Some pseudocode to clarify my issue:
 
  node n1 {
@@mytype {
   name:
   property = foo
}
  }
 
  template.erb:
  % mytype.each do |bar| %
  %= bar.name %
  %= bar.property %
  % end %
 
  My question is: How can I access and iterate through the exported
  resources in the template? mytype.each will not work...
 
 
 This is getting into semi-supported internal APIs, but you can get the  
 resource list from the catalog, something like this:
 
 compiler.catalog.vertices.each do |resource|
resource.title
resource[:property]
 end
 
 -- 
 What happens to the hole when the cheese is gone? -- Bertolt Brecht
 -
 Luke Kanies | http://reductivelabs.com | http://madstop.com
 
 
 
 
 
 
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 Puppet Users group.
 To view this discussion on the web visit 
 https://groups.google.com/d/msg/puppet-users/-/1mmfEPyDYj4J.
 To post to this group, send email to puppet-users@googlegroups.com.
 To unsubscribe from this group, send email to 
 puppet-users+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/puppet-users?hl=en.


-- 
Luke Kanies | http://about.me/lak | http://puppetlabs.com/ | +1-615-594-8199

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Meet me in London tomorrow (Tuesday) night

2011-04-25 Thread Luke Kanies
Hi all,

I'm in London for a couple of days, and if you're interested, please come meet 
me tomorrow night (Tuesday the 26th, I think - a bit jet lagged and brain 
addled, but that seems correct).  Here are the details:

Royal Festival Hall
Belvedere Road
London SE1 8XX

There is an outdoor area, and if the weather is nice enough we'll be
there from 18:30 onwards.

Otherwise we'll be indoors.

I (hope) to be there from 18:00 onwards if anyone wants to come along early.

Nearest tubes are Embankment (over the bridge) or Waterloo.

Cheers,
Luke

-- 
The difference between scientists and engineers is that when
engineers screw up, people die.-- Professor Orthlieb
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   http://about.me/lak




-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Puppet 2.7.0rc1 (Statler) available!

2011-04-14 Thread Luke Kanies
On Apr 14, 2011, at 3:41 AM, Brian Gupta wrote:

 Congratulations on this long awaited and momentous release. As a community 
 member that would prefer we stay on a GPLv2 or later license., I have 
 severe mixed feelings. 
 
 On one hand I strongly respect all the work and code you (and your team) have 
 constituted to the community. On the other, I have no idea why you are 
 forking this project. GPL represents the give and others will give back 
 philosophy that I understood that the puppet community epitomized.
 
 Please explain why you are changing the give and others will give back 
 policy that GPL represents?


Hi Brian,

I've significantly trimmed the list of addressees - if you'd like me to 
interact with lawyers from the FSF or whatever, please contact me separately.

There are three ways to talk about this, so I'll take them easiest to hardest.

First, calling this release a 'fork' is silly for so many reasons. I understand 
you were doing it just to lay claim to the idea that a relicensing constitutes 
a fork, but of course, I've got a fork of the repo in my github account, as 
does nearly every contributor.  In the end, the 'main' repo is the one that 
everyone continues to use, and regardless of license, I'm confident that 
everyone will continue to use our public repo on github.

Second, we've been talking about this literally for years, and I've always said 
that a big part of why we got CLAs was so that we could do this relicensing.  
You and I have talked about it multiple times, in fact, so it's not like this 
is a surprise to you.  It's obvious that you don't like our decision, but this 
kind of grandstanding 2 years into the process isn't going to have much impact.

Third, we obviously think that the Apache license is a better fit for our 
project.  Can you point to any projects that are released under an open source 
license because Puppet was GPL'd?  I can't.  What I can do, however, is point 
to projects that we don't integrate all that well with because the barrier of 
integration is higher for us.  Even worse, I can point to lots of people who 
are scared to redistribute Puppet in ways I particularly want to see happen 
because of the GPL.

I've always been honest about why I produce free software - I think it's the 
best way to accomplish my goals.  It just so happens that Apache is a better 
license to use to accomplish those goals than GPL is, at least at this point, 
but Apache is just as free as GPL is, and in many ways I think it's more free - 
anyone can use it in any way they want.  Given that I want Puppet installed on 
every computer and every device pretty much everywhere in the world, that's 
pretty important to me.

I'm willing to continue having this debate in public if I must, but you seem to 
be one of very few people who find it interesting, so I'd prefer to take it 
offline if you're willing.  I'll also be in NYC in a month and I'm glad to talk 
it out over a beer or something then.

-- 
What's the good of having mastery over cosmic balance and knowing the
secrets of fate if you can't blow something up?
-- Terry Pratchett, Reaper Man
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   http://about.me/lak



-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Puppet Enterprise

2011-02-01 Thread Luke Kanies
Hi all,

We here at Puppet Labs are proud to announce Puppet Enterprise, which we 
launched today:

http://www.puppetlabs.com/puppet-enterprise/

We've worked pretty hard to get it out the door, and in particular our team has 
worked very hard to get great packages for all of the Puppet projects and its 
dependencies and to test their interactions extensively.

In terms of real-world usage, one of the big differences is that there is now a 
single package that will install everything it takes to scale Puppet very 
effectively, and we'll support the entire Puppet stack, not just the projects 
maintained by Puppet Labs.

There's a more in-depth announcement on our blog:

http://www.puppetlabs.com/blog/introducing-puppet-enterprise/

Please let me know if you have any questions or concerns, and feel free to 
email me directly if you prefer.

Thanks,
Luke

-- 
The surest sign that intelligent life exists elsewhere in the universe
is that it has never tried to contact us.
--Calvin and Hobbes (Bill Watterson)
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: [Puppet-dev] Converting to Ruby DSL

2010-12-26 Thread Luke Kanies
On Dec 19, 2010, at 5:07 AM, Ken Barber wrote:

 Thanks Luke.
 
 So I've been making some notes here:
 
 http://wiki.bob.sh/confluence/display/TECH/Ruby+DSL

This is a great doc.  Would you be willing to migrate it to the Redmine wiki?

I especially like how you draw out the bits that have pure ruby interfaces and 
the bits that don't.  Do you have any inspirations for good interfaces for 
those unsupported bits yet?

While I definitely don't want to get in the habit of directly exposing internal 
interfaces in a lot of ruby scripts, one of the big benefits of the pure ruby 
DSL is that people can do exactly this - hack in the support they need until 
it's available officially.

 And writing up some working examples:
 
 https://github.com/bobsh/puppet-rubydsl-examples
 
 ... based on your notes and some digging. You wouldn't be able to take a look 
 and correct me where I've tapped into the wrong part of the API? I realise 
 I'm obviously touching internals that may change ... I just figure if I can 
 figure out how to do it with internals then it shouldn't be hard to extend 
 the DSL.
 
 So obviously some of the ways I've done this should really be moved to 
 convenience methods:
 
 * Defaults: I presume the capitalisation of the first letter of a 
 missing_method would indicate someone trying to set a default

This is a bit different in Ruby because capitalized terms are presumed to be 
constants, and they're actually pretty annoying to deal with automatically.  
I'd probably start with that, but I wouldn't hold out hope that it'll work in 
the long term.

 * Vars: not sure how you make this work at the correct scope in ruby for 
 proper 'my_var = foo' type sugar ... maybe a wrapper is more appropriate (a 
 bit like create_resource).

You should be able to use normal instance variables for all of the variable 
setting/getting except at the very top scope:

@var = foo

This works for dereferencing variables set in Puppet DSL code, too.

 * Relationships: I'm not sure how to do this yet, looking at the 
 AST::Relationship bit there is a lot going on so I imagine I tap that, but 
 how I do that without extending the dsl code itself is not obvious (so 
 obviously I'm going to try that :-).

I would just add an 'edge' method and pass it a hash; something like:

edge Package[foo] = Service[foo]

This would then probably directly add edges to the current catalog, rather than 
relying on AST::Relationship:

def edge(rels)
  rels.each do |source, target|
raise Could not find resource #{source} unless source = 
catalog.resource(source)
raise Could not find resource #{target} unless target = 
catalog.resource(target)

catalog.add_edge(source, target)
  end
end

Something like that, anyway.

 How would one go about extending it to deal with top scope? I'm guessing 
 somehow you need to be able to populate @__created_ast_objects__ directly 
 right from ResourceTypeAPI?

I hope not...?

Your question here is how to make all of these methods available in the top 
scope, outside of a node/class/definition, right?

I don't really know, and I had largely decided against that as a design 
decision, figuring people didn't want the top scope polluted.  Given how many 
people have asked for this, though, I was clearly wrong about what people 
wanted.

I don't have clarity on how exactly to do it, but it should probably resemble 
how we get those node/hostclass/etc methods in the top scope - put them in a 
module which is then used to extend Object.  The methods themselves would then 
modify the 'main' class (which would need to be autocreated if it were missing).

Does that make sense?

 On Friday, December 10, 2010 6:47:42 AM UTC, Luke Kanies wrote:
 On Dec 8, 2010, at 11:09 AM, Ken Barber wrote:
 
 (cross posting here as I originally posted in puppet-users - I figure the 
 question is more of a dev one then for puppet-users)
 
 Hi everyone,
 
 I'm experimenting with converting some of my live puppet content to
 Ruby DSL and have found a few gaps I wouldn't mind some advice on. I'm
 not sure how many of you have already experimented in this arena yet.
 
 I've already read Dan Bode's excellent blog article on the subject:
 
 http://www.puppetlabs.com/blog/ruby-dsl/
 
 I know the Ruby DSL is quite new - but I figured perhaps some of these
 items deserve to be tickets (or perhaps documented) and I thought I'd
 ask first :-).
 Thanks for testing this.  As you say, it's still quite new, and definitely 
 incomplete, but as with most things we do, I wanted to get a simple thing out 
 and in the wild rather than wait for perfection before shipping.  This kind 
 of feedback is exactly what we need (although of course patches are even 
 better).
 1. Defaults
 
 How do I set defaults in Ruby DSL? For example what is the ruby DSL
 equivalent to this:
 
   Service {
 hasstatus = true
   }
 This is one of the things I left out of my initial implementation.
 
 You might be able to figure out how to add it by patching one

[Puppet Users] Re: [Puppet-dev] Converting to Ruby DSL

2010-12-09 Thread Luke Kanies
On Dec 8, 2010, at 11:09 AM, Ken Barber wrote:

 (cross posting here as I originally posted in puppet-users - I figure the 
 question is more of a dev one then for puppet-users)
 
 Hi everyone,
 
 I'm experimenting with converting some of my live puppet content to
 Ruby DSL and have found a few gaps I wouldn't mind some advice on. I'm
 not sure how many of you have already experimented in this arena yet.
 
 I've already read Dan Bode's excellent blog article on the subject:
 
 http://www.puppetlabs.com/blog/ruby-dsl/
 
 I know the Ruby DSL is quite new - but I figured perhaps some of these
 items deserve to be tickets (or perhaps documented) and I thought I'd
 ask first :-).
Thanks for testing this.  As you say, it's still quite new, and definitely 
incomplete, but as with most things we do, I wanted to get a simple thing out 
and in the wild rather than wait for perfection before shipping.  This kind of 
feedback is exactly what we need (although of course patches are even better).
 1. Defaults
 
 How do I set defaults in Ruby DSL? For example what is the ruby DSL
 equivalent to this:
 
   Service {
 hasstatus = true
   }
This is one of the things I left out of my initial implementation.

You might be able to figure out how to add it by patching one of the files in 
lib/puppet/dsl.
 2. Top scope
 
 I notice the convenience methodology does not work at 'top scope' for
 example
 this will fail:
 
   file /tmp/zzz, :content = foo
 
 But this will not:
 
   node default do
 file /tmp/zzz, :content = foo
   end
 
 Is there a proper way to call resources without using the convenience
 methods? Or
 perhaps is there a way to define elements that reside in top scope?
I made a decision when I did this not to pollute the top namespace - both for 
cleanliness, and also for simplicity of implementation.  This has come up a few 
times, though, so it's something that I'm happy to revisit.
 3. Class resource
 
 I think Dan Bode already raised this as a bug:
 
 https://projects.puppetlabs.com/issues/5236
 
 The following returns an error 'method_missing':
 
   hostclass :foo do
 notify bar
   end
   node default do
 hostclass foo, :stage = baz
   end
 
 This is because hostclass has not been defined as a convenience method
 it would seem. Just like issues 2 If someone knows
 a way to call a resource directly without requiring the convenience
 method that would be a decent enough work-around.
Hmm.  It should be, but it looks like this is failing somewhere and has been 
marked as a high priority bug. :/
 4. exec Resource
 
 The 'exec' resource as a convenience method is overlapping with the
 ruby 'exec'
 method. So if you do this:
 
   node default do
 exec ls, :command = /bin/ls
   end
 
 You get:
 
   can't convert Hash into String on node obelisk.usr.bob.sh
 
 Returned from the Kernel.exec call.
You should be able to use 'create_resource :exec, ...' here.

 5. Referencing other resources
 
 I'm not quite clear how to reference other resources that already
 exist. This is obviously a problem for the 'require' attribute:
 
   node default do
 package foo, :ensure = installed
 service foo, :enable = true, :ensure = running, :require
 = ???
   end
I believe the internal implementation allows you to do 'require = [:package, 
foo]'.  I couldn't find a reasonable syntax for this, without a lot more work 
making, e.g., Package[foo] work, which was my ideal.
 6. Chaining Resources
 
 Is there a syntactical equivalent to this in Ruby DSL yet? For
 example:
 
   Stage[pre] - Stage[main] - Stage[post]
 
 Without knowing how to solve 5 I'm kind of stuck when it comes to
 defining dependencies :-).
There isn't.

The DSL is obviously still a subset of the full Puppet language (ironic, 
given how small the language is).

-- 
Computers are not intelligent.  They only think they are.
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199



-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: [Puppet-dev] Graph explosion and workaround technique with stages.

2010-11-03 Thread Luke Kanies
On Nov 3, 2010, at 10:02 AM, Trevor Vaughan wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 I'm cross-posting this to both the users and dev groups so that the
 users can use the workaround technique to reduce graph churn and the
 devs can hopefully fix the issue.
 
 So, I'm loving stages, but they appear, by default, to generate a
 many-to-many dependency graph.
 
 By adding 'pre' and 'post' stages that contain a single item, the graphs
 are vastly reduced in complexity and we're seeing something like a 3X
 speedup in graph execution in simple test cases.
 
 I've attached a couple of puppet files illustrating the issue with their
 associated graphs.
 
 If the graphs could be auto-reduced to a single point prior to execution
 automatically, it would be quite helpful.

Thanks a ton for tracking this down.

Unfortunately, I don't think it's as clear as your pictures make it seem.  
Which graphs are these pictures produced from?

There are three graphs you might reasonably look at - the normal, 
pre-relationship graph which has just containment edges (I think this is 
normally called resources.dot), the graph with just the relationships 
(relationships.dot, I think), and the essentially multiplied graph of 
dependency times containment edges (not sure what this is called).

The latter will generally be a many to many graph, and I think that's what 
you're using.  The reason it's not in the case of your transitions version is 
that we had to keep those class objects in there (we would normally remove 
them) because if we didn't then certain kinds of dependencies got missed.

So basically, this isn't so much a feature as the side-effect of an ugly hack 
to a bug.

I think the right answer is to get rid of the need for this graph at all by 
having a single graph contain both dependency and containment edges, thus not 
needing the many to many nature.  I tried very hard to get this into 2.6 but 
couldn't finish it in time.  In seeing this multiplier, it's probably 
justification to raise the priority on this, which doesn't hurt my feelings at 
all.

For those interested in the code, it's in my 
refactor/master/3691-no_relationship_graph branch but is likely no longer in a 
mergeable state.

-- 
The easiest way for your children to learn about money is for you
not to have any.-- Katharine Whitehorn
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Nigel Kersten has started at Puppet Labs

2010-10-20 Thread Luke Kanies
Hi all,

I think many people know this already, but Nigel Kersten has officially joined 
us (started today) as product manager.  His first job will be figuring out 
exactly what that means.

In general, however, Nigel's main job will be making sure that we as a company 
are working on the right priorities - synthesizing input from all of you, our 
customers, me, our developers, and anyone else, and then turning that into a 
plan for continuing to produce great product.

I'm very excited at Nigel joining the company, as he brings real-world 
experience at running the largest known Puppet installation, and he's both 
opinioned and motivated about where Puppet and related products should go.

Please treat him nicely for the first week or so, and then begin bombarding him 
with requests. :)

-- 
Always behave like a duck - keep calm and unruffled on the surface but
paddle like the devil underneath.   -- Jacob Braude
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Our new survey

2010-10-05 Thread Luke Kanies
Hi All,

You've probably all received our new survey.  We're hoping you'll
spend a few minutes helping us understand how you use Puppet and what
we (both the Puppet developers and Puppet Labs) can do to make your
experience better.

One of the things that the survey mentions is a commercial edition of
Puppet - I've mentioned this before, and it's basically a packaged,
supported distribution of Puppet, associated tools, and all of its
dependencies needed for a fully scalable installation.  I've mentioned
this before, and the goal is to provide a higher level of support for
those who want help with the full stack rather than just Puppet and
for those who want less frequent and more consistent release cycles.

We are still figuring this product out, and your filling out the
survey will really help us understand what, if anything, you would
like to see from us here.

Thanks,
Luke

-- 
http://puppetlabs.com/ | +1-615-594-8199 | @puppetmasterd

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Proposal to remove redundant info in source = parameters

2010-09-27 Thread Luke Kanies
On Sep 27, 2010, at 7:04 AM, Brice Figureau wrote:

 Hi,
 
 It looks like I missed your original e-mail to puppet-dev.
 
 On Fri, 2010-09-24 at 11:20 -0700, Nigel Kersten wrote:
 [cross-posting as I'd like to know whether my intuition about this
 being the most common case is correct]
 
 
 class foo {
 
  file { /etc/foo.conf:
source = puppet:///modules/foo/foo.conf,
  }
 
 }
 
 For me, every single one of my source specifications refers to a file
 inside the current module. My intuition is that this is the most
 common case outside my own deployment, so why don't we optimize for
 it?
 
 class foo {
 
  file { /etc/foo.conf:
source = foo.conf,
  }
 
 }
 
 eg the proposal is that if you don't specify the protocol, server
 address, modules prefix, module name, it is assumed you are referring
 to a file path relative to the 'files' subdirectory of the current
 module.
 
 If you wish to fully specify the source URI, you're free to do so.
 
 My issue with your proposal is that at first glance it will look like a
 local copy (which should require an absolute path) and not a remote
 copy. This certainly violate the least surprise paradigm for new users.
 
 What about a new URI scheme (ie module) which would do the same:
 
 class foo {
   file { /etc/foo.conf:
 source = module://foo.conf,
   } 
 }

Another option is a new function:

class foo {
  file { /etc/foo.conf:
source = expand(foo.conf)
  }
}

Then all of the smarts could be in expand().

OTOH, I think it's a bit think in terms of syntax.  Backticks? :)


-- 
Everything that is really great and inspiring is created by the
individual who can labor in freedom.  -- Albert Einstein
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Proposal to remove redundant info in source = parameters

2010-09-25 Thread Luke Kanies
On Sep 25, 2010, at 10:23 AM, Nigel Kersten wrote:

 On Sat, Sep 25, 2010 at 10:10 AM, Patrick kc7...@gmail.com wrote:
 
 On Sep 25, 2010, at 10:02 AM, Nigel Kersten wrote:
 
 On Fri, Sep 24, 2010 at 12:34 PM, Nan Liu n...@puppetlabs.com wrote:
 On Fri, Sep 24, 2010 at 11:20 AM, Nigel Kersten nig...@google.com wrote:
 eg the proposal is that if you don't specify the protocol, server
 address, modules prefix, module name, it is assumed you are referring
 to a file path relative to the 'files' subdirectory of the current
 module.
 
 If you wish to fully specify the source URI, you're free to do so.
 
 Since we can determine module_name in 2.6, I agree with this change.
 But we should update template behavior so it's the same as file.
 Currently for templates:
 
 content = template(foo.erb),
 
 Ah I missed addressing this point.
 
 I don't think we can do this and still have backwards compatibility.
 
 How do you tell whether 'foo/bar.erb' refers to 'foo' the module or a
 subdirectory 'foo' in the current module? Which should take
 precedence? How do we throw a deprecation warning?
 
 I don't think we can feasibly forbid references to templates outside
 the current module. That would have a significant effect upon our
 ability to share modules.
 
 With the benefit of hindsight, we should possibly have made the source
 parameter, file function and template function consistent...
 
 Can we get there from here?
 
 What about instead defining something uncommon to be module root.  
 Something like, as a random example, ~/.  Then the syntax goes from 
 file:///modules/$modulename/file to ~/file.
 
 I'm normally really reluctant to add more special characters to the
 syntax, as I feel like we're way too busy as it stands, but I really
 do quite like this idea, using normal *nix syntax for your home vs
 other users...
 
 Let me incorporate your suggestion as I think adding syntax allows us
 to make all three consistent.
 
 modules/$module_name/files/foo
 file { source = ~/foo }
 
 File (source) from another module 'bar':
 file { source = ~bar/foo }
 
 modules/$module_name/templates/foo.erb
 template(~/foo.erb)
 
 modules/bar/templates/foo.erb:
 template(~bar/foo.erb)
 
 modules/$module_name/files/foo
 file(~/foo)
 
 modules/bar/files/foo
 file(~bar/foo)
 
 
 All of this *only* applies if you are within a module.
 We don't deprecate the puppet:// or file:// syntax
 Do we deprecate the existing template function syntax?
 If not, do we add the existing template function syntax to the file
 function for consistency?
 We don't support setting the server, or access to static mount points.
 If you want those, use the puppet:// syntax.
 
 This feels good. We're optimizing for the two most common cases,
 without removing the most flexible syntax.

I agree, this is a good option.  The only other one I thought of was 
introducing a 'module_path' function or something similar to do the path 
expansion.

-- 
Hegel was right when he said that we learn from history that man can
never learn anything from history.  -- George Bernard Shaw
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Re: [Puppet-dev] ANNOUNCE: Puppet 2.6.1 released!

2010-09-13 Thread Luke Kanies
On Sep 13, 2010, at 8:32 PM, Todd Zullinger wrote:

 James Turnbull wrote:
 In the long Puppet tradition of fast releases and agile iteration
 comes the 2.6.1 release!
 
 For those using Fedora or RHEL/CentOS, I've updated the yum repos at:
 
http://tmz.fedorapeople.org/repo/puppet/
 
 Packages for EL 4 - 6 and Fedora 12 - 14 are available for testing.
 Add the puppet.repo file from either the epel or fedora directories to
 /etc/yum.repos.d to enable.
 
 If you find problems with the packaging, please let me know.  If you
 find other bugs, please file them in redmine:
 
http://projects.puppetlabs.com/projects/puppet/issues
 
 I'm particularly interested in anyone updating from 0.25.x to 2.6.x
 and whether you run into regressions or other issues that would make
 this an unsuitable update to push into the stable Fedora and EPEL
 repositories.

Thanks for being so prompt on this, Todd, and very happy to finally have the 
release out.

-- 
The one thing more difficult than following a regimen is not imposing it
on others.   -- Marcel Proust
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Re: Puppet use with OLPC's XS

2010-09-10 Thread Luke Kanies
On Sep 8, 2010, at 7:20 AM, Martin Langhoff wrote:
 
 [...]
 [ Did I say THANKS!? Should say it lots, and often. ]

Hi Martin,

It looks like the list has you pretty well handled, so mostly I'm writing back 
to say I'm glad to see ISconf users still around, and very glad to see it looks 
like Puppet will work for you.

That being said, I'll throw my responses in here, too, since I've got more of 
the ISconf context.

 1 - With a high number of identical nodes, we are very precious about
 deploying the exact same sw package (rpm in this case) to all nodes.
 Can I declare an exact rpm version/revision in a packages[] section?
 Can I later update it with a later version and will it know to upgrade
 via yum?

ensure = '1.0' or whatever works fine.

 2 - Can I say install this shellscript and run it once? How?

Not in so many words, but as Patrick said, use the 'creates' argument to 
provide idempotency and you'll actually be happier.

 2a - Is there an ISConf-like facility that says run it until it
 succeeds once? [ Happy to use Makefiles, but if there's a
 Puppet-supported elegant way of doing it... ]

Execs run every time by default, so this is essentially on.  You need some 
additional check (onlyif/unless/creates) to make them idempotent.

[...]
 5 - Is there any server status monitoring tool that
 integrates/piggybacks with Puppet? Our NAT'ted clients make most
 monitoring tools a pain...

Our own Dashboard, along with Foreman and a few others.

 6 - For disconnected configuration clients -- is there a way to tell
 the puppet client: the puppet config of the server is available to you
 on file:///media/usb/puppetconfig ? The XS already has a mechanism
 that can guarantee the integrity of files coming from the sysadmin
 team (so only signed files are accepted over usb).

Yes, use stand-alone 'puppet' rather than a client/server.  You can still 
report back in this mode, although that probably won't help you much if you're 
disconnected.


-- 
The surest sign that intelligent life exists elsewhere in the universe
is that it has never tried to contact us.
--Calvin and Hobbes (Bill Watterson)
-
Luke Kanies | http://puppetlabs.com | http://madstop.com




-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Centralised Graphing?

2010-08-25 Thread Luke Kanies
On Aug 25, 2010, at 9:54 AM, Matt Wallace wrote:

 Hi all,
 
 I'm starting to look at the graphing features of Puppet and I'm struggling to 
 find a way of collating the graphs for testing purposes.
 
 Is there a way to centralise the output from the graphs into something like 
 hostname.relationships.dot on the puppet master?

There isn't currently a way to do this, but we're working on it - it's a very 
high priority for us based on customer feedback.

The only real way to do it right now is to manually send the graphs back to the 
server.

But yeah, at some point this will all be visible in the Dashboard.

-- 
The real art of conversation is not only to say the right thing at the
right place but to leave unsaid the wrong thing at the tempting
moment.-- Dorothy Nevill
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] inventory of managed resources

2010-08-10 Thread Luke Kanies
That really does seem like something storeconfigs can give you, at  
least if you write the query.


It's basically finding all files owned by the host in question.   
Something like (in ActiveRecord):


Puppet::Rails::Node.resources.find_all { |resource| resource.type ==  
file }.collect { |resource| resource.title }


That should return an array of file names.  Haven't tested it mind  
you, but something like that should work.


Another option involves client-side opening the catalog and reading  
the files.  I've written a script that does this for a bank that  
delivers its output to their auditors.  Ended up being very simple.


On Aug 10, 2010, at 7:34 AM, Adam Winberg wrote:

i've tested the storeconfigs option but i'm not fully getting what i  
want (do we ever..?).


i've got quite a lot of files i sync with my clients via puppets  
fileserving capabilities. these files are tagged with different  
suffixes as labels, like:

resolv.conf--serverA
resolv.conf--CLUSTER1
resolv.conf--GROUP2
my.cnf--DBGROUP1

and so forth (and for the record - the files above are only examples  
and i do also use templates).


what i want to do is query my puppetmaster which files a specific  
node is getting, from a fileserving point of view. if serverA is  
part of the DBGROUP1 group then my query would result in a list of  
files:

my.cnf--DBGROUP1
resolv.conf--serverA

any ideas on how to accomplish this?

//Adam

On 10 July 2010 10:48, Adam Winberg adam.winb...@gmail.com wrote:
ah, good point! i will look into it, thank you.

//Adam


On 9 July 2010 09:23, David Schmitt da...@dasz.at wrote:
On 7/7/2010 4:33 PM, Adam Winberg wrote:
Hi,

are there any good ways of scripting an inventory of managed resources
on all nodes? I've found the inventory script by R.I.Pienaar
(http://www.devco.net/archives/2010/02/26/what_does_puppet_manage_on_a_node-2.php 
)

which does what I want but only locally on each client. Is there any
native way of syncing the client_yaml data centrally or any other  
way of

doing this?

I need a script-friendly way of checking which clients have this or  
that
configuration, i.e. which ip addresses are managed by puppet on  
client

X or which files... and so on.

If you activate storedconfigs, puppet will keep a database of all  
currently configured resources.



Best Regards, David
--
dasz.at OG  Tel: +43 (0)664 2602670 Web: http:// 
dasz.at
Klosterneuburg UID:  
ATU64260999


  FB-Nr.: FN 309285 g  FB-Gericht: LG Korneuburg

--
You received this message because you are subscribed to the Google  
Groups Puppet Users group.

To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com 
.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en 
.





--
You received this message because you are subscribed to the Google  
Groups Puppet Users group.

To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com 
.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en 
.



--
Man is the only animal that can remain on friendly terms with the
victims he intends to eat until he eats them.
-- Samuel Butler (1835-1902)
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] dpkg in puppet returns 2 but at command line returns 0

2010-07-12 Thread Luke Kanies

On Jul 12, 2010, at 12:00 PM, Jon Choate wrote:


I have an exec defined as

exec {dpkg --configure -a:
   path = /usr/bin:/bin,
   user = root
}

puppet complains:

Exec[dpkg --configure -a]/returns: change from notrun to 0 failed:  
dpkg --configure -a returned 2 instead of one of [0]


but when I run dpkg --configure -a outside puppet it returns 0.

Has anyone ever seen this before or have any insights?



It's almost got to be something related to your environment or your  
access (i.e., the user you run the commands as).


--
I hate to advocate drugs, alcohol, violence, or insanity to anyone,
but they've always worked for me. -- Hunter S. Thompson
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Proposed changes to Puppet's IP management

2010-07-09 Thread Luke Kanies

Hi all,

As discussed multiple times earlier, but most recently at [1], we're  
going to take the next step on managing the IP of Puppet and related  
projects.


This is currently a proposal, so please speak up if you have any  
concerns about this.


Basically, our plan is to stick to either GPL or MIT+GPL for all of  
our projects, and all contributors will need to either sign a CLA or  
contribute their code under the MIT.


Non-core tools like Facter will have MIT attached so that they can  
easily be used wherever you want, and the core projects like Puppet  
and Dashboard will be GPL'd.  Our goal is to have enhanced rights to  
all of the code in the projects we maintain so we can relicense to  
partners and customers.


Note I didn't say 'own' - we're using a form of the Apache CLA, which  
just gives us enhanced rights, not ownership.  If you're not  
comfortable with that, or if your contribution is small enough that  
it's not worth signing a CLA, you can submit your code under the MIT  
(or equivalent, I assume) license, which gives us (and everyone else)  
the right to relicense your code.


We've got a plugin ready for Redmine (written for us by Eric Davis of  
LittleStream Software) that will track who's signed a CLA, and it has  
a click-through agreement just like Google uses, so signing a CLA  
should be entirely easy.


We'll be working through the list of contributors in the next quarter  
or so.  If you're a contributor and haven't yet signed a CLA, you  
should expect to hear from Amy Hoang, who will be working through the  
list.  We'll be installing the Redmine plugin in the next week, at  
which point we'll send out another email.


Also - we know that nearly everyone is moving toward an Apache license  
rather than GPL.  We don't rule out such a move in the future, and  
doing so would still require that we get these enhanced rights, but  
from I can tell the GPL does a much better job of encouraging a  
profitable ecosystem.  This is something we'll be revisiting  
constantly, but it seems the right answer for now.


1 - http://www.mail-archive.com/puppet-users@googlegroups.com/msg07284.html

--
'Tis better to be silent and be thought a fool, than to speak and
remove all doubt. --Abraham Lincoln
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Variable Scoping: What do you want?

2010-06-29 Thread Luke Kanies

Hi all,

Given the number of threads on variable scoping recently, it's pretty  
clear we need to change how it works.  Markus has a lot of this redone  
in his futures branch, and I'm asking him to fully describe what the  
results will be when that's merged, but my guess is that there are  
different expectations for what people want to see.


So, my question is, what behaviour changes would you like to see in  
how variable scoping works?  How would you like the edge cases that  
are currently hurting you to behave?


--
On Bureaucracy
The Pythagorean theorem contains 24 words. Archimedes
Principle, 67. The Ten Commandments, 179. The American Declaration of
Independence, 300. And recent legislation in Europe concerning when
and where to smoke, 23,942. -- The European, June 23-29, 1995
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Puppet dashboard

2010-06-29 Thread Luke Kanies

On Jun 29, 2010, at 9:16 AM, Dan Bode wrote:


Hi Alex,

On Tue, Jun 29, 2010 at 8:25 AM, Alex Howells li...@howells.me  
wrote:
On 26 June 2010 23:15, Douglas Garstang doug.garst...@gmail.com  
wrote:

 Am I the only dinosaur on the mailing list?

Not really.

 Admittedly I haven't had an in depth look at the puppet dashboard  
yet,

 but I'm not sure I get the point of it. If it's solely for reporting
 purposes, then great, but is it also a tool for making changes to
 nodes? That's the bit I don't understand. As an admin, revision
 control is _everything_, and I need to be able to account for every
 single configuration change that is made to a system. I need to know
 who did what, when, and exactly what they did. Does the dash board
 allow you to do that?

Such auditing could fairly trivially be implemented into a Ruby on
Rails web application, and is probably beyond the scope of what
they're trying to achieve with the initial releases. I agree it is
definitely a worthwhile goal to implement auditing if the long-term
future for Puppet Dashboard is to action changes to infrastructure,
and not just present a pretty interface to data.

we're pretty open around here. There's a ticket open for that which  
has been accepted. (if its trivial, a patch would be welcome :) )


http://projects.puppetlabs.com/issues/3511

watching tickets is how we measure community interest during triage  
(its also the best way to keep up to date on a ticket's status).


In addition, I believe the audit trail is already present in the  
database, it's just not visible to the user yet.


--
You only have to be open minded if you're wrong.
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Seemingly simple question - current status?

2010-06-28 Thread Luke Kanies

On Jun 28, 2010, at 6:38 AM, dbs wrote:


I have a 3 different puppetmasters running different groups of
machines (dev, testing, and production).  I'd like to very simply say
Give me a brief summary of the status of the nodes you manage.

I've been having nightmare dependency problems trying to get things
like Dashboard running that seem to be able to do this (Ruby, which
may be an elegant language, is very crunchynew in regards to specific
versions and stable updates.  Frustrating).

What I'd like to see is something like:

$ puppetstatus
Node etl01.foo.com : Ok (Last contact: 6/28/2010 12:40pm, last update:
6/26/2010 11:05am (Module sudoers)
Node etl02.foo.com : Ok (Last contact: 6/28/2010 11:25am, last update:
6/26/2010 11:03am (Module sudoers)
Node etl03.foo.com : Ok (Last contact: 6/28/2010 12:18pm, last update:
6/26/2010 9:05am (Module sudoers)
Node db02.foo.com: Error (Last contact: 6/28/2010 12:18pm) : Depedency
not met : MySQL v5.1.20

Is this possible?  I looked at the external nodes methodology, but
that seems to be a mechanism for just storing node definitions, not
getting status updates.


The Puppet Dashboard provides this as long as you hook your reports up  
to go to it, plus there are other things like puppetlast and Foreman  
that can do similar work.


--
The cure for writer's cramp is writer's block.
-- Inigo DeLeon
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] New Puppet Labs employee: Matt Robinson

2010-05-18 Thread Luke Kanies

Hi all,

I'm happy to announce our newest developer here at Puppet Labs, Matt  
Robinson:


I'm happily returning to working with Ruby after a stint developing  
data intensive web apps in Perl.  I enjoy developing in Vim, Ubuntu  
and GNU Screen.  I'm looking forward to applying some of my college  
education in computational mathematics to Puppet.  Outside work I  
enjoy hiking, rock climbing, playing guitar and traveling.  My family  
is currently my wife Kim and my dog Ubu, but it will be expanding this  
summer to include a baby girl.


He'll be working on just about everything, so you should start seeing  
commits from him any minute now. :)


--
Once...in the wilds of Afghanistan, I lost my corkscrew, and we were
forced to live on nothing but food and water for days. -- W. C. Fields
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] puppet for switches

2010-05-04 Thread Luke Kanies

On May 4, 2010, at 9:25 PM, James Turnbull wrote:


-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 5/05/10 1:53 PM, Geoff Crompton wrote:

This might be a crazy idea, but it just popped into my head, and I
wanted to know if it's possible. Perhaps not possible right now, but
possible in a theoretical sense.

Is it possible that puppet could be modified to be used to manage
switches that have a command line based interface?

When I manage our Allied Telesis switches (which have a CLI similar  
to

cisco IOS) I wonder if I could control it via a puppet-like node:

node 'switch-101' {
  vlan { storage:
id = 1234,
untagged_ports = 3/e1, 4/e3,
tagged_ports = 1/e1-2/e48,
  }
  include gvrp
  include stp::rstp
  stp::portfast { 1/e1-e48,2/e1-48,3/e1-48: }
}


Now I know we probably can't get puppet to run on the switch, but  
we can
get a host to ssh or telnet to the switch, and to download the  
current

configuration of the switch.



It's feasible - you could create a type and provider that connects
to the switch and interacts with the CLI to retrieve the
configuration, manipulate it in some way (depending on how complex
the format is) and then send it back and apply it.

Obviously there would be limitations - no Factor facts and you'd
have to create a dummy node I guess because the switch wouldn't be a
real node.

Others may have niftier ideas on how to do this - an easier
mechanism might be use Puppet's REST API to integrate with the
switches own management tool if it has an exposed API.


The way that I would implement this would basically to write a system  
that read in the whole switch config, used the catalog and RAL to  
compare states and write a new config, and then a hook at the end to  
write the new config.


You could use the (new in 0.25) pre and post transaction hooks to  
retrieve and store the switch config, and then it's just a question of  
having RAL types that modify that config in some way.


Make sense?

--
When I die, I want go out just like my grandfather, in his sleep,
peaceful and quiet...not kicking and screaming like the other guys in
his car.
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] puppet arrays, and selectors...

2010-05-03 Thread Luke Kanies

On May 3, 2010, at 7:22 AM, Daniel Pittman wrote:


G'day.

I have a problem.  Mostly a theoretical problem, granted, but a  
problem:


We have machines with a variety of hardware RAID controllers, and  
some that
don't have one at all.  We want these monitored, which usually  
involves some

vendor-specific binary blob, plus support code, installed and running.

Supporting *a* RAID controller isn't too hard; I have a fact that  
pulls that

out and lets me install the right support.

In the event we got two RAID controllers in a single machine (or,
theoretically, I run into this elsewhere), how would I best go about  
this?


As far as I can tell, this doesn't work; it matches nothing, ever:

   $test = ['one', 'two']
   case $test {
   'one': { ... }
   'two': { ... }
   }

So, how can I make decisions about the content of that array?

My best guess, right now, is that I would need to use a define, then  
expand
that using the array as the name, and have the content perform the  
case

statement to include the appropriate class.  Ick.

 define what_a_nasty_hack () {
 case $name {
 'one': { ... }
 'two': { ... }
 }
 }

 what_a_nasty_hack { $test: }


Anyway, is there a better way to handle this that I can't see right  
now, or is

this perhaps something that the language could stand enhancing?


It probably is a deserved language enhancement, but in the short term  
a function is your best bet.


--
Getting caught is the mother of invention. --Robert Byrne
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Jeff McCune joins Puppet Labs

2010-04-14 Thread Luke Kanies

Hi all,

I'm pleased to announce that Jeff McCune will be joining Puppet Labs  
and moving to Portland, OR in May.


Jeff has been a critical part of Puppet's great support for OS X,  
having developed much of the initial functionality.  He was also the  
main driver in a lot of the configuration flexibility that exists in  
Puppet, such as its support for alternate naming schemes via  
'certname' parameter.  We're very excited that he'll now be able to  
work full time on Puppet.


He'll be doing training, professional services, and development..

--
The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man. -- George Bernard Shaw
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Jeff McCune joins Puppet Labs

2010-04-14 Thread Luke Kanies

Hi all,

I'm pleased to announce that Jeff McCune will be joining Puppet Labs  
and moving to Portland, OR in May.


Jeff has been a critical part of Puppet's great support for OS X,  
having developed much of the initial functionality.  He was also the  
main driver in a lot of the configuration flexibility that exists in  
Puppet, such as its support for alternate naming schemes via  
'certname' parameter.  We're very excited that he'll now be able to  
work full time on Puppet.


He'll be doing training, professional services, and development..

--
The reasonable man adapts himself to the world; the unreasonable one
persists in trying to adapt the world to himself. Therefore all
progress depends on the unreasonable man. -- George Bernard Shaw
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] REST, catalogs, and dot, oh my

2010-04-07 Thread Luke Kanies

Hi all,

I'm doing this as an email rather than a blog post because it's very  
half-baked and I'm not quite willing to stand behind it and make  
promises.  Still, it's useful and interesting, so I figure I should  
spread the knowledge.


Some of you probably already know we've added a couple of new settings  
to Puppet for 0.25.5 (and rowlf), one of which is 'catalog_terminus'.   
Like 'node_terminus', this gives you some flexibility for creating new  
places to store catalogs and lets you configure the master to do so.


I've got a proof of concept up that does a couple of interesting things:

http://github.com/lak/puppet/tree/features/0.25.x/degenerate_catalog_service

Basically, it caches the catalogs on the server in json, and then  
provides a simple interface for RESTful clients to retrieve a dot- 
formatted catalog.


It's a kind of mixture of two goals:

1) I want to build a memcached catalog terminus to store catalogs in.   
This would allow the client-facing master to just serve files somewhat  
plainly -- that is, it would just return catalogs from memcached, not  
compile them -- and you'd have other compiler processes on the side  
compiling catalogs and sticking them in memcached. (At least, that's  
my idea - it could be done lots of ways.)f


2) I wanted to make it easy to get the dot output of a catalog.  I  
want this so we can visualize the catalogs in the dashboard.


So, the proof of concept does exactly this.

Start the master like this:

sbin/puppetmasterd --confdir /tmp/foo --vardir /tmp/foo --debug -- 
manifest ~/bin/test.pp --certname localhost --no-daemonize -- 
catalog_terminus=service_faker


Then run through the puppetd/puppetca stuff as necessary for certs,  
with a certname of 'testing', (although you can probably skip this),  
and then run puppet-test like this:


sudo ext/puppet-test  --suite rest_stuff_for_dot --test dotconfig -- 
server localhost --confdir /tmp/bar --vardir /tmp/bar --certname  
testing testing


You'll notice two things - first, the catalog is printed in dot format  
on stdout.  This can just about be piped directly to graphviz or  
OmniGraffle.  Second, the server caches the catalog in $vardir/ 
catalogs/$name.json.


Again, this is just a proof of concept, showing what kind of  
flexibility the addition of this one parameter provides.  Hopefully  
Michael DeHaan will be doing a more realistic example using memcached  
in the near future.


--
The most incomprehensible thing about the world is that it is at all
comprehensible. --Albert Einstein
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



[Puppet Users] Reductive Labs renamed to Puppet Labs

2010-03-24 Thread Luke Kanies

Hi all,

Reductive Labs was created to fund the development of Puppet and tools  
built on top of and around it.  I always expected to produce multiple  
projects, each with their own brand and reputation, but in the  
meantime Puppet has swamped Reductive in terms of recognition.


In recognition of this fact, and because we're tired of introducing  
ourselves as you know, the people behind Puppet, we've renamed our  
company to Puppet Labs, Inc., and rebased all of our web sites on http://puppetlabs.com 
, accordingly.  All of the old sites should automatically redirect to  
the new locations.


It will take a little while for DNS to propagate, and for us to find  
all of the little corners that have 'Reductive Labs', and for me to  
finish mourning a name that I've been using for five years, but you  
should see all of our services pointing to our new domain within 24  
hours.  Because Google Apps don't support changing domain names, it  
will also likely take us a bit to get all of our email coming from the  
right place.


Please email us at i...@puppetlabs.com if you find anything you think  
we need to fix.  And, as always, please email me directly if you have  
any questions, comments, or concerns.


Thanks,
Luke

--
Venter's First Law:
Discoveries made in a field by some one from another discipline  
will

always be upsetting to the majority of those inside.
-
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Using Puppet for application deployment

2010-03-17 Thread Luke Kanies

On Mar 9, 2010, at 9:54 AM, Joe McDonagh wrote:


Michael DeHaan wrote:
On Mon, Mar 8, 2010 at 9:46 AM, Julian Simpson simpsonjul...@gmail.com 
 wrote:


Given that there are so many ways to skin the same cat, I'm  
wondering
how others are doing their application deployments using Puppet.  
Or,

if you are using Puppet but do your app deployments via some other
mechanism, how do you do it, and why aren't you using Puppet to  
do it?


Pete




I use capistrano for application deployment.

I've managed to use both Puppet and Capistrano for deployment: Cap  
for the
business code, and Puppet to ensure that dependencies are met.   
Puppet was

called from Capistrano.
J.





Can you share some examples of where your dividing line is and some  
of

the tasks that are hard to handle in Puppet today?

Ideally I'd like to figure out how to incorporate more of that into
puppet-core.Bruce has been working on a version control type,  
that

could be used to check sources
out of version control and eliminate some packaging needs for hosted
apps, though I'm curious as to what other niches might not be  
covered.


--Michael



Example of what puppet can do best:

Configure a system with apache2, a basic security configuration,  
some enabled modules, a bunch of packages admins expect to have  
available (screen, irb, etc).


Example of what capistrano can do best:

A. Deploy your puppet manifests to your puppet server.
B. Deploy your web content out of svn onto your web server.

They're two distinct areas of 'deployment'. Puppet is more like,  
systems deployment, cap is app or content deployment in my eyes.



I would essentially agree with that, with one caveat - that's  
something Puppet's not very good at today, but I'm willing to make  
some bets (not promises, quite yet) about it being good at it within a  
year or so.


--
Fallacies do not cease to be fallacies because they become fashions.
--G. K. Chesterton
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Using Puppet for application deployment

2010-03-17 Thread Luke Kanies

On Mar 11, 2010, at 12:53 PM, Julian Simpson wrote:

 They're two distinct areas of 'deployment'. Puppet is more like,  
systems

 deployment, cap is app or content deployment in my eyes.

Yes, I want to change that observation.


I use Puppet for deploying my blog.  It's a WordPress distro with a  
bunch of plugins, etc.  It was too slow.  I ended up inelegantly  
using rsync from puppet to push out the distro instead, which was  
insanely fast.  Even that didn't come for free as I'm not using a  
Puppetmaster at the moment, and paths got annoying.  (I do accept  
that's probably my issue, however).


Anyway, my point is that Puppet needs to give you a way to deploy a  
tree of files, fast.  If the new type mentioned above starts to give  
you that, so much the better: it gets tedious to push files to your  
version control system, ensure that your puppetmaster is up to date,  
and then invoke puppet on the node that you're deploying to.


What's appealing about some developer-style deploy tools is that you  
can push exactly what you're working on to one or more nodes and  
test it.  My experiences with Puppet suggest that it's not so  
convenient.  My 6 years as a build and release manager tell me that  
it's generally a poor idea to use two application deployment tools.   
Hmmm.



I essentially agree on both sides:  Puppet isn't yet that great at  
solving this problem, but using two tools sucks.


We're basically still in the formative stage of what we're going to do  
here, but we've got some pretty good ideas.  Mostly, it builds around  
a much more powerful data model in the catalog, combined with a  
centralized system that tracks inter-node dependencies.


Keeping in mind that this is all still a bit vague:

We'll be extending the data model to support service state  
dependencies and simple state machines, along with (probably) some  
kind of fill-in-the-value (which Markus insists on calling 'futures')  
catalog.  This, I think, gets us most of the way to what we need on a  
single machine:


If you have two services, where one service specifies that it being in  
a 'running' state requires that the other service must also be in a  
'running' state, when you got to restart the required service then the  
requiring service can automatically be brought down first.


If you have a single composite service (e.g., a web app composed of  
a db and apache), then you could have a specification that defines how  
it should behave depending on whether it should be running or not, and  
then external data that defines which value you want in a given case.


Once we start tracking resource collection as a dependency (because  
one host's configuration is now dependent on another's), plus a  
centralized database containing all compiled catalogs, we've basically  
got builtin node-order dependencies, all emergent rather than  
declared.  You could get dependencies through declaration, I think,  
but it doesn't scale as well.


The 'external_resource' module I sent in last week[1] is a good  
example of what the first bit will look like, but it has a lot of  
here be dragons associated with it.  To make it supportable in the  
long term, you need to add builtin interfaces for checking service  
state (probably with central correlation rather than direct  
connectivity) plus the inter-node dependency system needs to recognize  
this as a dependency.


Obviously, this is 80% theory, 15% plan, and 5% bs, but we do have  
ideas for how it'll work, and we're making baby steps toward getting  
some of it actually done.


In the meantime, I'd appreciate any results from people testing this  
external resource stuff.


1 - http://github.com/reductivelabs/puppet-external-resource

--
The Internet, of course, is more than just a place to find pictures of
people having sex with dogs. -- Time Magazine, 3 July 1995
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet-dev] Re: [Puppet Users] Using Puppet for application deployment

2010-03-17 Thread Luke Kanies

On Mar 16, 2010, at 4:07 AM, David Schmitt wrote:


[crossposting to puppet-dev, please trim follow-ups appropriately]

On 3/16/2010 11:52 AM, Jesús Couto wrote:



On Mon, Mar 15, 2010 at 3:18 PM, Michael DeHaan
mich...@reductivelabs.com mailto:mich...@reductivelabs.com wrote:

 that are very much procedural while Puppet manifest are more
 useful on a description of required software level.

   Sort of.

   The long story is that we don't have a really native feeling way  
to

   model multinode deployments and workflow now, but we can think of
   modeling it based on a set of checkpoint conditions.


On a complete pipe-dream, I'm not the one with the skills to do  
this
comment, I think it would be great to extend the Puppet language  
toward

site configurations. As exported resources, but more. If you could
define, say, an application resource that is not on a node but on
several nodes, that would model the application - this app is this  
and

this running on those 2 servers who are on loadbalancing and this and
that on those other 2, and the parts on the webservers requires the
parts on the appservers that requires the parts on the database
servers...dont know at what level could it be modeled to be flexible
enough and not one size deploy model for all, but the idea would  
be to
make it like Puppet goes from let me script this to let me  
describe
how it should be, with you describing your application  
structucture and

relationships and such.




If you want to prototype something like this, you can use a define  
outside of a node in the site.pp and use checks against $fqdn to  
distribute resources among hosts.


Maybe even use the external_resource type that's currently floating  
around to sequence the deployment.



Which leads me to another idea: inter-node dependencies:

| node a { mysql_db { foo: ... } }
|
| node b { app { x: after = AMysql_db[foo]; } }


The external resource stuff does just about exactly this, except that  
it's not a special syntax.  It's not as manageable as I'd like --  
there's no way, for instance, to really understand the dependencies  
between hosts without reading all of the code -- but it's a good start  
and should help us set the model.


--
Seize opportunity by the beard, for it is bald behind.
-- Bulgarian Proverb
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] tidy -- ignoring sockets?

2010-03-14 Thread Luke Kanies

On Feb 26, 2010, at 12:07 PM, Alan Sparks wrote:

I've a tidy resource for /tmp under 0.24.8, which throws errors each  
run

due to a socket file created by xfs under /tmp/.font-unix/.  It's
relatively harmless, but it fills the logs with error messages...

/var/log/messages.4:Jan 31 04:01:34 vm03 puppetd[15362]:
(//Node[vm03]/Tidy::Olderthan[/tmp]/Tidy[/tmp/.font-unix/fs7100]/ 
ensure)

change from /tmp/.font-unix/fs7100(age)1264176925 to anything failed:
Cannot tidy files of type socket

Since tidy does not have a parameter for directories or files to  
ignore,

and there's no option to specify the types of files to consider, is
there any way short of hacking the code to eliminate these errors?


I don't think so.

I basically threw that failure in there because I wasn't sure what the  
behaviour should be for anything other than the standard file types.   
It'd be pretty easy to fix tidy to behave appropriately if you can  
describe how it should actually behave.


--
Take the utmost trouble to find the right thing to say, and then say
it with the utmost levity. -- George Bernard Shaw
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Making Puppet run faster

2010-03-11 Thread Luke Kanies

On Mar 10, 2010, at 10:24 AM, Douglas Garstang wrote:


We aren't using storeconfigs. Putting config in a db is crazy.


I think there's some confusion here on what storeconfigs does for you  
- you're just caching the compiled configurations in a database,  
nothing else really changes.


--
A government that robs Peter to pay Paul can always depend on the
support of Paul. -- George Bernard Shaw
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Making Puppet run faster

2010-03-11 Thread Luke Kanies

On Mar 10, 2010, at 1:38 PM, Douglas Garstang wrote:


On Wed, Mar 10, 2010 at 1:34 PM, Douglas Garstang
doug.garst...@gmail.com wrote:

On Wed, Mar 10, 2010 at 1:17 PM, Brice Figureau
brice-pup...@daysofwonder.com wrote:

On 10/03/10 22:06, Douglas Garstang wrote:

So, it became apparent to me, after emailing someone off list, that
managing a lot of files in deep directory structures might be  
part of

the cause.

We are running 10 instances of JBOSS and 10 instances of tomcat on
each of these servers. Don't ask me why, it's just the way it was  
done

before I arrived and changing it is not trivial.

On disk, each instance of JBOSS starts at
/opt/jboss/current/server/tfelN (where N is the instance number)

and each instance of tomcat starts at:
/opt/tomcat/tfelN/starterkit/current (where N is the instance  
number)


Do you source the whole hierarchy?
Or do you only manage it?


I manually looked through the puppet config and counted 25 unique
files that are being managed for jboss and tomcat within these  
paths.

If you do the math, 25 x 10 x 2 = 500. That's therefore (currently)
500 unique files that are being managed in these deep directory
structures. Could that potentially be the reason behind puppets  
crap

performance?


What do you manage for those files?
But no, 500 doesn't seem like a high number to me.

You mentioned in another e-mail in this thread that the problem is  
more

the 20 minutes run than the CPU.
Could it be possible you have many slow execs?
Or you manage many packages?

This also reminds me Ohad's bug:
http://projects.reductivelabs.com/issues/1719

At this stage you should probably run puppetd on the console in -- 
debug

to see what happens (and run with --summarize too) and if it stalls.


I just ran puppet in debug mode and it was obvious that most of the
puppet run time was spent in checksumming files.

Eg:

debug: //Node[app01.fr.xxx.com]/Jboss::Instance[tfel8]/File[/opt/ 
jboss/current/server/tfel8/conf/jboss.web/localhost/ 
rewrite.properties]:

Creating checksum {md5}f5d16bcc20b92631eb59514018fd34e5

... takes a long time to run. Multiple that by several hundred  
files...


However, when I run this on the command line:
md5sum /opt/jboss/current/server/tfel8/conf/jboss.web/localhost/ 
rewrite.properties


... the result is instananeous... So... is puppet using a ruby  
library

for performing md5 checksums? Is that where the performance bottle
neck could be?

Doug



Also...

I just grabbed an example online of performing an md5 checksum on a
file in ruby.
Ran it on the same file above.
Result was instananeous... the question remains... what is puppet  
doing???


The short answer is, more than md5sum is.  All you're seeing is the  
log message, you don't really know if that's what's taking all of the  
time.


We've always known about the performance problems of using Puppet to  
manage large file heirarchies, which is why we generally recommend you  
don't do it unless you've tested that it works for your use cases.


I've basically only ever seen two non-pathological cases where client  
runs take a long time:  Either you're using a lot of yum (which we've  
mostly resolved), or you're doing a lot of large file heirarchies (or  
a few very large ones).


You can look at the reports coming out of your systems to see where  
time is being spent, and that should tell you almost immediately.  It  
already looks like it's files, so I'd start by trying to trim back  
recursion where you can, and try not to manage large files where you  
can avoid it.


--
Silence is a text easy to misread.
-- A. A. Attanasio, 'The Eagle and the Sword'
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Using puppet to automate tasks (ex: mysql slave setup)

2010-03-11 Thread Luke Kanies

On Mar 10, 2010, at 5:18 AM, Doug Warner wrote:

I'm not sure if puppet can be coerced to do something like this, but  
I wanted
to throw it out there as it's a process that seems fairly easy to  
automate.


To create new mysql slaves my process goes something like this:

1) run innobackupex [1] on mysql master
2a) copy data from master to slave (takes a decent amount of time  
depending on

wire speed and database size; usually on the order of 6-24 hrs)
2b) setup mysql slave w/ data from mysql master to start replicating  
binary log

3) import backup using innobackupex

The problem here seems to be that I need to do things on two  
different hosts

and only once certain things have happened.

I figured I could easily specify the node that is the master and the  
slave in
the manifests, but I'm not sure how far this gets me.  I imagine  
through the
creative use of exec's and onlyifs this should be doable, but I  
wanted to

get other people's experiences with automating processes like this.


Hi Doug,

I, um, don't know if this is a good idea, but this might work for you:

http://github.com/reductivelabs/puppet-external-resource

Basically, I've created a simple resource that functions as a kind of  
gate for exactly that situation.  I've tested it in very simplistic  
situations, but you should consider this to be experimental code and  
by no means a complete solution.  I just made this repo public five  
minutes ago and wrote it for a customer last week.


For long delays -- 12 hours -- this will likely be pretty spammy,  
because you'll get a lot of 'skipped because of failed dependencies'  
reports, and you'll likely want to run it with a timeout of 0 and  
verify that it works correctly in that case.


With this, your slave would have something like:

class dbslave {
  external_resource { db-backup:  check = ..script to verify backup  
is complete... }

  db::import { mydb: , require = External_resource[db-backup] }
}

By default, it'll run the external resource check every 10 seconds,  
and if it doesn't complete within five minutes then it fails, causing  
all dependent resources (in this case, your import) to be skipped.   
You can tune both the frequency and timeout, but I haven't tested it  
with a timeout of 0; it might just sleep infinitely in that case.


--
There is only one success - to be able to spend your life in your own
way. -- Christopher Morley
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Living with Puppet...

2010-02-09 Thread Luke Kanies
 think that's  
where the greatest opportunity is.  The differences between the tools  
is healthy and gives us both the opportunity to steal ideas from each  
other, which is healthy and good for everyone.  Our telling Ohad not  
to work on Foreman would be just as bad as the community telling us  
not to produce the Dashboard - there's not only room for competition,  
it's very good.



That's one of my goals over the coming year -- to make Puppet even
easier to contribute to, and make it clear to folks how they may do
so.

External integrations are of course very important to us -- but the
out of the box Puppet experience will be as complete as we can make it
rather than fragmenting workarounds between various external tools.


This is a bit of a conflation - the Dashboard will be part of the out  
of the box Puppet experience for our customers, but it won't be part  
of everyone's ecosystem.  Obviously, for us to provide the best story  
to our customers and users, we're going to do what we can to do as  
much as possible as cleanly and consistently as possible, but doing so  
will never preclude anyone else telling the story their way, and each  
individual piece - Puppet, Facter, Dashboard, and everything else --  
will always be stand-alone entities.


--
You can't wait for inspiration. You have to go after it with a club.
-- Jack London
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet-dev] Re: [Puppet Users] Plugins in modules with environments and the puppetmaster libdir

2010-02-09 Thread Luke Kanies

On Feb 9, 2010, at 6:55 AM, Nigel Kersten wrote:




On Mon, Feb 8, 2010 at 2:45 PM, Luke Kanies l...@reductivelabs.com  
wrote:

On Feb 5, 2010, at 8:47 AM, Nigel Kersten wrote:

On Fri, Feb 5, 2010 at 3:29 AM, Thomas Bellman bell...@nsc.liu.se  
wrote:

Nigel Kersten wrote:

So facter plugins are kind of different, as they're not actually
required to be in the puppetmaster libdir.

Say this was a type/provider, and you wanted to add a new parameter,
but only roll it out to your testing environments.

Functions also have this limitation, by the way.

What do you do then?

If the version in the puppetmaster libdir doesn't accept that
parameter, the manifest compilation will fail for clients who *are*
getting a version of the plugin that supports that parameter.

You lose...

Well, there are a couple of things you can do to work around this
limitation.  For one thing, you could run a second puppetmaster
process, perhaps on another port, or listening on another IP address,
or perhaps even on another machine.

Another thing you can do, is to run puppet with local manifests,
instead of puppetd connecting to puppetmasterd, when developing
the new version of the plugin.  That's what I do.  It does get a
bit iffy if your manifests want to fetch files from the puppetmaster
(i.e. that aren't in the modules namespace) though, or otherwise
need to access files that are only available on the puppetmaster.


Good news, though, is that the upcoming Rowlf version of Puppet is
supposed to solve this for at least resource types.  At least Luke has
posted patches to the devel list that I gather will do that.  But it
will probably still be a problem for custom functions (I have somewhat
volunteered to take a look at it, but I'm unlikely to find the time
before Rowlf is supposed to be out).

+ puppet-dev

Luke, how is this going to be solved in practice? The puppetmasterd
will automatically add modules/*/lib dirs to it's own libdir in the
context/environment of the current client?

Hmm, not quite true yet.

At this point, rowlf has a bunch of refactoring around just the  
language stuff, not the pure-ruby stuff.


We're on the path to converging the language resource types and the  
pure ruby Puppet::Type classes, but we're still a ways away.  Part  
of that convergence will be fixing this problem, but I don't expect  
to see a real long-term fix until at least the release after rowlf -  
mostly just because we don't want to delay rowlf too much further.


Can you give us an overview of the way this is intended to work?


Not sure exactly how to answer this question, since there's a lot there.

The convergence of the two classes (Puppet::Type and  
Puppet::Resource::Type) is complex to describe.  Basically, current  
resource types are subclasses of Puppet::Type, and resources are  
instances of those subclasses.  We'll be changing things so that  
resource types are instances of Puppet::Resource::Type, and resources  
are instances of Puppet::Resource.  In terms of observable  
differences, other than the constants involved there won't really be  
any - it'll just make contribution, maintenance, and custom  
development much easier.


However, it'll also enable us to do a lot of things we currently  
can't, like maintain non-global (i.e., environment-specific) resource  
types.  The refactoring I did to enable the pure-ruby DSL was the main  
step toward this:  When you use 'define' in the language, you're  
creating an environment-specific resource type, it's just not as  
functional as a builtin resource type.  I think the next major release  
will normalize the functionality between the two, and hopefully also  
make it possible to use existing providers with new-style resource  
types.  Then it's just a question of porting over the existing types  
to use the new class structure.



I'm thinking that in the meantime I may need to encode plugin versions
in their names, so when a client's manifest contains a given plugin,
it's always going to refer to that version, and I script something
that collates all the lib/... directories into the puppetmasterd
libdir.

I feel dirty.

Yeah, that's ugly.  I think it'd be way easier to run environment- 
specific masters on a different port or server, wouldn't it?


Not for the number of environments we have...


Ah.




BTW, if this is a big priority to someone, I think it's approachable  
today - far more than six months ago, with recent refactoring - and  
I'm happy to work with someone who's committed to getting it fixed.


And I know this has been coming up a lot recently, so it's getting  
pushed up on my priority list.


What would you need from those of us who are interested in working  
on this with you Luke?



Code? :)

--
Finn's Law:
Uncertainty is the final test of innovation.
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you

Re: [Puppet-dev] Re: [Puppet Users] Plugins in modules with environments and the puppetmaster libdir

2010-02-08 Thread Luke Kanies

On Feb 5, 2010, at 8:47 AM, Nigel Kersten wrote:

On Fri, Feb 5, 2010 at 3:29 AM, Thomas Bellman bell...@nsc.liu.se  
wrote:

Nigel Kersten wrote:


So facter plugins are kind of different, as they're not actually
required to be in the puppetmaster libdir.

Say this was a type/provider, and you wanted to add a new parameter,
but only roll it out to your testing environments.


Functions also have this limitation, by the way.


What do you do then?

If the version in the puppetmaster libdir doesn't accept that
parameter, the manifest compilation will fail for clients who *are*
getting a version of the plugin that supports that parameter.


You lose...

Well, there are a couple of things you can do to work around this
limitation.  For one thing, you could run a second puppetmaster
process, perhaps on another port, or listening on another IP address,
or perhaps even on another machine.

Another thing you can do, is to run puppet with local manifests,
instead of puppetd connecting to puppetmasterd, when developing
the new version of the plugin.  That's what I do.  It does get a
bit iffy if your manifests want to fetch files from the puppetmaster
(i.e. that aren't in the modules namespace) though, or otherwise
need to access files that are only available on the puppetmaster.


Good news, though, is that the upcoming Rowlf version of Puppet is
supposed to solve this for at least resource types.  At least Luke  
has

posted patches to the devel list that I gather will do that.  But it
will probably still be a problem for custom functions (I have  
somewhat

volunteered to take a look at it, but I'm unlikely to find the time
before Rowlf is supposed to be out).


+ puppet-dev

Luke, how is this going to be solved in practice? The puppetmasterd
will automatically add modules/*/lib dirs to it's own libdir in the
context/environment of the current client?


Hmm, not quite true yet.

At this point, rowlf has a bunch of refactoring around just the  
language stuff, not the pure-ruby stuff.


We're on the path to converging the language resource types and the  
pure ruby Puppet::Type classes, but we're still a ways away.  Part of  
that convergence will be fixing this problem, but I don't expect to  
see a real long-term fix until at least the release after rowlf -  
mostly just because we don't want to delay rowlf too much further.



I'm thinking that in the meantime I may need to encode plugin versions
in their names, so when a client's manifest contains a given plugin,
it's always going to refer to that version, and I script something
that collates all the lib/... directories into the puppetmasterd
libdir.

I feel dirty.


Yeah, that's ugly.  I think it'd be way easier to run environment- 
specific masters on a different port or server, wouldn't it?


BTW, if this is a big priority to someone, I think it's approachable  
today - far more than six months ago, with recent refactoring - and  
I'm happy to work with someone who's committed to getting it fixed.


And I know this has been coming up a lot recently, so it's getting  
pushed up on my priority list.


--
Men never do evil so completely and cheerfully as when they do it from a
religious conviction. --Blaise Pascal
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] commercial support

2010-02-02 Thread Luke Kanies

On Feb 2, 2010, at 8:24 AM, Angelo Fazzina wrote:


Is there an option to purchase support for Puppet ?



There definitely is - Reductive Labs (the company I founded when I  
started the Puppet project) provides support, training, and other  
professional services around Puppet.  One of our favorite services is  
custom development -- customers have paid for Puppet's environment  
support, the queueing support, and much more.


You can always email me directly for questions, or you can email our  
VP of sales, Scott Campbell, at sc...@reductivelabs.com, with  
questions. We're happy to provide customer references.


--
The most likely way for the world to be destroyed, most experts agree,
is by accident. That's where we come in; we're computer professionals.
We cause accidents. --Nathaniel Borenstein
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--
You received this message because you are subscribed to the Google Groups Puppet 
Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.



Re: [Puppet Users] Re: Proposals for modules naming conventions

2009-12-18 Thread Luke Kanies
On Dec 17, 2009, at 11:19 AM, Al @ Lab42 wrote:

 On 17 Dic, 17:28, David Schmitt da...@dasz.at wrote:
 Hi Al,

 Welcome back, great post!

 +1, except for (as predicted) #8, where I think that the rationale
 doesn't make sense, especially if one wants to start configuring  
 modules
 via facter and/or external nodes. prefixing with the module name  
 would
 make more sense for me.

 Regards, DavidS

 Hi David,
 thanks for the reply.
 You and Michael have definitively convinced me about variable name
 namings (modulename_ is surely a better prefix).

 I take the occasion of your reply to discuss deeper a topic that I've
 always found somehow controversial.
 Many use to say, if I've understood well, that in a puppet
 infrastructure there should only be variables generated by facts, that
 it's not a good idea to define custom variables at node's level (or
 using different ways to group/classify them).
 I can understand this if we talk about external nodes, when you can
 have powerful and easy ways to aggregate/define variables for nodes
 (and still they are not fact variables), but I still have to
 understand why and how it should be better to define variables
 necessary for your classes (for example an external server where to
 send syslog messages, which changed according to different servers'
 locations or test/prod status or whatever logic) in a fact.

 I find more difficult to write and control this logic in custom facts
 splattered in different modules, rather that in a single
 infrastructural class where all variables are defined according to
 custom logic and groupings, or, as I generally do, in a nodes'
 inheritance structure, where there are intermediate node that can
 define networks or geographical locations or whatever groups that are
 inherited by host nodes.

 Excuse my ignorance, if someone can enlighten and convince me on the
 advantages of placing the logic of a puppet infrastructure in facts,
 please do it.
 I like to redefine my beliefs :-D

I'm playing a bit of catch-up on this thread, so bear with me as I  
work through it.

First, to address using variables for logic:

I would never recommend anyone rely entirely on facts for  
configuration - quite the opposite, I would recommend people *only*  
use facts for cases where the client is the only host capable of  
generating or discovering a given piece of data.  For instance, I  
think it's bad form to send a fact to the client whose value is static  
or relies on a database (or data file) also distributed with the  
fact.  I think server-side functions (usually doing a DB call) is a  
much better choice.

I see, at the least, these sources of data:

1) Client facts -- discoverable and/or calculable only on the client

2) Declared client data -- declared in external node tools by a human,  
per-node or per-server class etc.

3) Dynamic data -- retrieved with an extlookup-style function or  
equivalent which essentially uses a db backend for all of its data but  
has some understanding of class logic that can selectively load data

Then, of course, you have essentially internal temporary variables  
whose value entirely derives from one of these three sources.

Any attempt to push any of these behaviours into a different data type  
will hurt.

Obviously we have to answer this question in terms of standards, but  
for me the more interesting question is how we should develop Puppet  
going forward.  It's obvious to all of us that Puppet doesn't  
perfectly solve all of these problems, and I'd much rather fix those  
issues than calcify standards that work around fixable problems.

Here are some steps I think we need to take that will help this  
considerably:

1) Consider any system running without an external node tool to be in  
a degraded mode.  That is, you've chosen to forego an entire data type  
in your system, so you've got less functionality.  There are now  
multiple functional external node tools, one of them supported by  
Reductive Labs, so there's no good reason not to at least plan on  
using one in the near future.

2) Integrate an extlookup-like functionality directly into Puppet  
classes.  This has been discussed a bit, but no real design has been  
proposed, much less decided upon.  I'd like some kind of data  
interface that can support multiple backends and then have classes  
automatically look their data up, rather than having to trigger the  
lookup as functions currently require.

There are some other features I think we need, but I'll add them to my  
response to the opening email because they're less data-focused.

-- 
There is nothing so useless as doing efficiently that which should not
be done at all. -- Peter Drucker
-
Luke Kanies | http://reductivelabs.com | http://madstop.com

--

You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us

Re: [Puppet Users] Proposals for modules naming conventions

2009-12-18 Thread Luke Kanies
] {
ensure = absent,
  }
 }

 - If you want an application stopped provide something like:
 apache::stopped inherits apache {
  Service[apache] {
ensure = stopped,
  }
 }

 - If you want an application not enable at boot time provide something
 like:
 apache::disabled inherits apache {
  Service[apache] {
enable = false,
  }
 }

 7- PROPOSAL for general class configuration define (based on augeas or
 other inline modificators)
 define ssh::config ($value) {

   # Augeas version.
   augeas {
   sshd_config_$name:
   context = $operatingsystem ? {
default = /files/etc/ssh/sshd_config,
},
   changes =  set $name $value,
   onlyif  =  get $name != $value,
   # onlyif  =  match $name/*[.='$value'] size == 0,
   }

   # Davids' replaceline version (to fix)
   # replaceline {
   #   sshd_config_$name:
   #   file = /etc/ssh/sshd_config,
   #   pattern = $name,
   #   replacement = ^$name $value,
   # }
 }

 This define can be used in a class like
 class ssh::eal4 {

   # Cripto settings
   ssh::config { Protocol:
   value = 2,
   }

   ssh::config { Ciphers:
   value = 3des-cbc,
   }

   # X11 forwarding (You MAY allow)
   ssh::config { X11Forwarding:
   value = no,
   }
 []
 }

 8- PROPOSAL (don't think it will be widely liked): Variables names
 needed for module configuration (the ones used in templates, for
 example) should have a my_ prefix, in order to easily distinguish them
 from fact variables.

Glad you retracted this. :)

 So, the point of this post is to know if there has been some agreement
 on naming standards and eventually to stir the discussion about it.
 My general idea is that if the community doesn't find a general
 agreement, a suggested standard should come from Reductive Labs, so
 that whoever is interested in sharing modules (for reusage) knows how
 to behave and, possibly, users can more easily use and integrate
 modules picked from different repositories.

I think this is a relatively good starting point.  There are a bunch  
of areas that it doesn't yet cover -- e.g., the whole problem of  
managing modules written by others, such as what to do when two people  
have produced a module with the same name.  A lot of those will come  
out as the module forge starts to develop.

1 - http://projects.reductivelabs.com/issues/2596

-- 
Men never do evil so completely and cheerfully as when they do it from a
religious conviction. --Blaise Pascal
-
Luke Kanies | http://reductivelabs.com | http://madstop.com

--

You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.




[Puppet Users] New developer: Jesse Wolfe

2009-12-08 Thread Luke Kanies
Hi all,

We just hired a new developer, Jesse Wolfe:

For most of the last decade, Jesse has been writing web applications  
and sysadmining web servers, usually at the same time. He sees  
programming languages as a form of user interface, and thinks the Ruby  
language is the best way to talk to a computer that he's found so far  
-- but even so, he was eager to join a project that included a parser.  
Recently, Jesse has been seen trying to talk small business owners  
into moving their servers onto the Amazon cloud, having long  
conversations about how to balance between object-oriented and pure- 
functional programming styles, and competing in programming  
competitions. His hobbies include drinking coffee.

You might have already seen Jesse's contributions, first as a means of  
proving both his commitment and ability, and more recently as a  
contractor.  His work has been great, so we're happy that we're able  
to bring him on full time at Reductive Labs.

Cheers,
Luke

-- 
My favorite was a professor at a University I Used To Be Associated
With who claimed that our requirement of a non-alphabetic character in
our passwords was an abridgement of his freedom of speech.
 -- Jacob Haller
-
Luke Kanies  -|-   http://reductivelabs.com   -|-   +1(615)594-8199

--

You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.




Re: [Puppet Users] /wiki/TypeReference is slow/timing out

2009-12-02 Thread Luke Kanies
On Dec 2, 2009, at 11:12 AM, Andrew Schulman wrote:

 It takes a really long time for
 http://reductivelabs.com/trac/puppet/wiki/TypeReference to render.   
 I've
 noticed it for a while, but today for the first time it actually  
 timed out
 on me.

 Any idea what's making this page take so long?  Is it just too much
 restructured text?  It is a very long page.

 If that is the case, then I have a suggestion to alleviate the  
 problem:
 move the nagios_* types onto a separate page.  For those of us who  
 don't
 use Nagios, those types are a giant lump in the middle of a very  
 long page.


We're in the process of moving these pages to a static, external  
format, based on RailsGuides.  I don't have a specific time on getting  
it done, but this is one of Bruce's main focuses at the moment, so I  
expect he'll get it working quickly.

The problem, at this point, with moving the Nagios docs elsewhere is  
that the page is all autogenerated.  It's a good point, though, that  
we could pretty easily manually do so.

If someone wants to edit those docs for now to do exactly that, that  
might be a good interim step, while we're waiting for Bruce's work to  
come through.

-- 
I don't want the world, I just want your half.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com

--

You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.




Re: [Puppet Users] /wiki/TypeReference is slow/timing out

2009-12-02 Thread Luke Kanies
On Dec 2, 2009, at 11:51 AM, Andrew Schulman wrote:

 It takes a really long time for
 http://reductivelabs.com/trac/puppet/wiki/TypeReference to render.
 I've
 noticed it for a while, but today for the first time it actually
 timed out
 on me.

 We're in the process of moving these pages to a static, external
 format, based on RailsGuides.  I don't have a specific time on  
 getting
 it done, but this is one of Bruce's main focuses at the moment, so I
 expect he'll get it working quickly.

 OK, thanks.  I don't know RailsGuides, but just looking around, it  
 seems
 that it uses Textile.  So will all of the wiki docs be converting to
 Textile?

Looks like Bruce will be modifying RailsGuides to use Markdown, and  
we'll use that.

 I don't relish converting the module docs that I've already built,  
 but I
 can't say I'd be sorry to say goodbye to restructured text.  If  
 Bruce is
 developing an automated conversion tool for restructured - Textile,  
 it
 would be great if he'd make it available.

One of the reasons for using Markdown, in addition to it generally  
being a better format, is that we can't seem to find rst2textile  
converters, but it's easyish to do rst2markdown.

[...]

-- 
The intelligent man finds almost everything ridiculous, the sensible
man hardly anything. -- Johann Wolfgang von Goethe
-
Luke Kanies | http://reductivelabs.com | http://madstop.com

--

You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.




Re: [Puppet Users] Downloaded plugin does not get loaded after puppetd gets restarted.

2009-12-01 Thread Luke Kanies
On Nov 28, 2009, at 9:57 AM, Robert wrote:

 Hi

 When I run puppetd for the first time, it syncs ownpkg.rb from
 puppetmasterd just fine, and then it autoloads it.

 notice: /File[/var/puppet/lib/puppet/provider/ownpkg.rb]/content:
 content changed '{md5}efd758a6094c813f8480423b01d823ac' to '{md5}
 b0f1f52803738bace6724ef5bfe5318a'
 Finishing transaction -971820348 with 1 changes
 Loading downloaded plugin /var/puppet/lib/puppet/provider/ownpkg.rb

 Then I start puppetd again and because the file's hash did not change
 it's not going to be retransmitted, and therefore it's not going to be
 autoloaded.
 So later on when I try to intall a package with provider = ownpkg,
 it's going to fail:

 err: Could not run Puppet configuration client: Invalid package
 provider 'ownkpg' at /etc/puppet/manifests/classes/squid.pp:7

 Any ideas how can i make it load it all the time?

I thought I already answered this somewhere else, but maybe not.

Basically, you have the wrong path for your provider - use provider/ 
package/ownpkg.rb, so Puppet will autoload it.

-- 
Every great advance in natural knowledge has involved the absolute
rejection of authority. --Thomas H. Huxley
-
Luke Kanies | http://reductivelabs.com | http://madstop.com

--

You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.




Re: [Puppet Users] manitest - a simple tool to help your puppet development and testing

2009-12-01 Thread Luke Kanies
On Nov 29, 2009, at 6:18 AM, Ohad Levy wrote:

 If it happened to you before that someone broke your manifest  
 because of simple change (e.g. didnt test it on all hosts/classes  
 external nodes ... combinations) this tool might be useful for you.

 the idea is very simple, just try to compile the manifest based on  
 customized facts, classes, environments and external nodes  
 parameters (if you use it) .
 You need to run this script only were you develop your manifests  
 (e.g. your puppetmaster), there is no need to try out a puppet run  
 on each and every system type that you have.

 You might also find it useful to run this script in some sort of a  
 cron or via a repo hook, to find out any broken manifests running  
 around..

 This script was originally written by a colleague of mine (Paul  
 Kelly), however, I've adjusted it to hopefully common usage.

 Its brand new, so any comments / improvements (which I'm sure there  
 are plenty) are welcomed.


This is definitely very cool.

It seems a bit limited because it actually runs the whole  
configuration, but I like it.  It should definitely be straightforward  
to extend it to use a given host's Facts.

You might also be able to get some inspiration on how to use the  
internal APIs by looking at puppet-test, which covers most of these  
bits using the internal APIs.

-- 
I wanna hang a map of the world in my house. Then I'm gonna put pins
into all the locations that I've traveled to. But first, I'm gonna
have to travel to the top two corners of the map so it won't fall
down. -- Mitch Hedberg
-
Luke Kanies | http://reductivelabs.com | http://madstop.com

--

You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.




[Puppet Users] Re: conditional restart of service

2009-11-13 Thread Luke Kanies

On Nov 12, 2009, at 11:58 AM, Jason Lavoie wrote:


 On 10/29, Peter Meier wrote:
 I'm trying to have a exec dependency on a service object that  
 would keep
 it from being restarted if the exec fails.  Unfortunately, the  
 service
 gets refreshed regardless whenever the exec is run, failure or not.
 [...]

 don't set the command to refreshonly. this will trigger the exec  
 only if
 it get triggered by someone else otherwise the resource counts as
 successful.

 That doesn't seem to help.  Here's a simpler test manifest:

service { dep:
hasstatus = true, status = /bin/true status,
start = /bin/true start, stop = /bin/true stop,
subscribe = File[/tmp/dep],
require = Exec[check-dep],
}

exec { check-dep:
command = exit 1,
path = /bin,
subscribe = File[/tmp/dep],
}

file { /tmp/dep:
content = foo,
}

 Shouldn't the Skipping because of failed dependencies in the output
 below be absolute?  Why is puppet still refreshing the Service[dep]
 (in the very next log line)?  Am I misunderstanding how the  
 dependencies
 should work?

The short answer (as I put on the ticket) is that this is behaving as  
designed, because otherwise you're running in an inconsistent state.

The easy fix here is to not have the service depend on the file, but  
rather only on the exec - the exec subscribes to the file, the service  
subscribes to the exec.  If the exec fails, nothing happens, if it  
succeeds you're all good.

-- 
Life isn't fair. It's just fairer than death, that's all.
 -- William Goldman
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Relicensing and copyright, starting with Facter

2009-11-11 Thread Luke Kanies

On Nov 10, 2009, at 1:16 PM, James Turnbull wrote:


 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Paul Nasrat wrote:
 I'd like to make sure there is still a low cost of entry to getting
 patches in - so it should be possible to insert a simple pointer in a
 ticket to the CLA, it should also be really easy for me to discover
 (probably based on redmine login) if someone has signed the CLA so I
 can merge patches efficiently.

 I can add a link to the top of the New Issue template - we'll
 create a page that holds the document and a list of those people
 who've signed it.

It should also be possible to modify the user account in Redmine to  
indicate whether they've signed or not, which might help.

-- 
To my embarrassment I was born in bed with a lady.
 --Wilson Mizner
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Simple script for restoring puppet hosted files from local backup

2009-11-09 Thread Luke Kanies

On Nov 4, 2009, at 7:40 AM, Kenneth Holter wrote:


 Hi.

 I found this script to retrieve backed up puppet hosted files: 
 http://markmail.org/message/nybqh3be7bcge33h

 ..and made some adjustsments. I've pasted the script below in case  
 anyone else are in need of such a script:

 --- snip ---
  #!/bin/bash
 file=$1
 BUCKETDIR=$( puppetd --configprint clientbucketdir )
 PREFIX=* 
 entries_found=0
 echo Searching for local backups of file $file (this may take some  
 time)...
 for f in $( find $BUCKETDIR -type f -name paths -exec grep -l $file  
 {} \; |xargs -r ls -t);
 do
   md5sum=$( basename $(dirname $f))
   filename=$( $f )
   modify_time=$(stat --format '%y' $f)
   echo -e $filename\t$md5sum\t$modify_time
   entries_found=1
 done
 if [ $entries_found -eq 1 ]; then
 echo 
 echo Horray, backup(s) were found!
 echo * To view the contents of the file, issue this command:  
 \filebucket -b /var/lib/puppet/clientbucket get md5sum\
 echo * To restore the file, issue this command: \filebucket  
 restore -b /var/lib/puppet/clientbucket /path/to/new/file md5sum\
 else
   echo No entries were found. Exiting.
 --- snip ---

 Note that the script retrieves files only from the local backup  
 directory. I added the -r argument to xargs so that the loop  
 structure would not run unless the find command actually find a  
 match. Without the -r switch, the loop would run even if you  
 pasted a invalid file name, which for me caused unexpected results.

Note that there's a 'filebucket' script that is actually in the bin  
directory in the Puppet repo.

-- 
I hate to advocate drugs, alcohol, violence, or insanity to anyone,
but they've always worked for me. -- Hunter S. Thompson
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Relicensing and copyright, starting with Facter

2009-11-09 Thread Luke Kanies

Hi all,

As promised in the spring[1], we're finally starting to execute on our  
licensing and copyright strategy.

At this point, our plan is to convert Puppet and Facter to the Apache  
license, release any further projects under the same license, and  
require CLAs for any significant contribution.  We're not yet sure how  
hard or successful that plan will be, so we're going to start with  
Facter, and then make our plans for Puppet based on how that project  
goes.

Our plan at this point is to follow the Apache project for our CLAs.   
For example, here's the individual contributor agreement:

http://www.apache.org/licenses/icla.txt

However, that is not set in stone.  This project necessarily involves  
conversations with lawyers on our end, because we'll need to be able  
to make promises to customers, and those promises need the appropriate  
documentation to back them up.  As everyone knows, lawyers are crazy,  
so those conversations might result in some kind of change of the CLA.

Over the next week or two, we'll be adding the necessary documentation  
to the web site, hopefully with all of the questions answered.  Anyone  
who's contributed to Facter should also expect contact from Beth Raby,  
who works for me and will be tracking individual contributors down and  
managing who's signed what.

Once we've got all of the contributions either assigned or rewritten,  
we'll officially relicense Facter to the latest Apache license, and  
reassess our plan from there.

If anyone's interested in participating in this project, please let me  
know, as I'm sure we can use the help.

Does that work for everyone?

1 - 
http://groups.google.com/group/puppet-users/browse_thread/thread/c7121b1d5b392ad3/0919e1d229ef3d3d?lnk=gstq=licensing#0919e1d229ef3d3d

-- 
Aizu's Second Law:
 What changes the world is communication, not information.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Puppet Not Running chkconfig correctly.

2009-11-09 Thread Luke Kanies

On Nov 9, 2009, at 5:27 PM, Douglas Garstang wrote:


 So, I noticed that when adding a service to puppet, puppet is running
 a chkconfig service. However, as far as I can tell, puppet should be
 running a chkconfig --add service, otherwise the symlinks don't get
 created from the service in /etc/rc.d/rc6.d back to the service in
 /etc/init.d. As as a result, the service is not stopped on shut down.

 I must be missing something here... Anyone?

Have you tested that this is the case?

Because I'm essentially positive that Puppet is using chkconfig  
correctly.  I don't know enough about chkconfig to confirm this for  
you, but lots of people are using it happily.

And there's no need to double post.

-- 
If a dog jumps onto your lap it is because he is fond of you; but if a
cat does the same thing it is because your lap is warmer.
 -- Alfred North Whitehead
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: The /var/lib/puppet/clientbucket directory grew 4GB in minutes, filling up /var on production server

2009-10-25 Thread Luke Kanies

On Oct 23, 2009, at 12:44 AM, Kenneth Holter wrote:

 Hi.


 Last night the /var/lib/puppet/clientbucktet directory on one of our  
 production servers suddenly grew about 4 GB, filling up the entire / 
 var partition. Around that time, I see that there was a problem with  
 one of our CIFS mount points (i.e. our CIFS client had problems  
 reaching our CIFS server). We're using puppet to set up the CIFS  
 mount point.

 Under the clientbucket folder, I have a great number of folders and  
 subfolders like this:
 ---
 0/2/0/f/4/f/3/0/020f4f30aa1670825e81cae2faac4d1d/paths
 0/2/0/e/b/d/3/2/020ebd32755675f65bab06b96d7f2265/paths
 0/2/0/c/0/1/d/7/020c01d71491b1139b0f23b6ba81d410/paths
 ---

 Investigating the contents of a few of the paths-files like the  
 ones above, if find that the contents seems to be related to the  
 mount points. I found this by grepping for the name of the mount  
 point withing these filers. I looks like each of the paths-file  
 contains the name of exactly one file (seems to be different name  
 within each of the paths-files) found under the mount point.

 What exactly is the clientbucket folder used for? It's not the same  
 as filebucket I presume.

 Next: How come the paths-files above contain names of individual  
 files found within the CIFS mount point? Anyone know why this is so,  
 and why the clientbucket folder so suddenly got filled up with those  
 paths-files?
 And how can I make sure this doesn't happen again (at least not on  
 our production servers)?

I've only ever seen this happen in one other case, and it was related  
to NFS - something caused Puppet to back up a whole filesystem to the  
filebucket:

http://projects.reductivelabs.com/issues/2019

It'd be awesome if you can track down the problem, because we're  
stymied.

As to why the individual file names are in the 'paths' files - that's  
what they do - hold the paths that have been backed up there.

-- 
Due to circumstances beyond your control, you are master of your fate
and captain of your soul.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Reductive Labs people

2009-10-23 Thread Luke Kanies

Hi all,

I've been hesitant to send Reductive Labs updates to the community  
lists, but I've been told that not knowing who works for us makes some  
communication difficult.

So, I'm going to start sending notifications when we bring people on  
(at least, those I expect to spend time in the community), and I'll  
start with a list of people we've brought on recently.

Markus Roberts and Rein Henrichs have joined as developers, and Bruce  
Williams will be working with them starting in November.

Markus has been working in the computer industry since the 1900's,  
when computers were large, slow, and simple, and programming them was  
still pretending to be a branch of mathematics instead of a black  
art.  He has programmed professionally in over two dozen languages  
(several of which he wrote) and unprofessionally in many more.  He  
prides himself on his design and debugging skills, which are  
objectively verifiable, and his sense of humour, which is not.

Rein started out in the design world but quickly discovered an  
affinity for development. He's fond of talking to people about
patterns and practices and other ideas that can help write better  
software. He occasionally writes software of his own in an attempt to
put those practices into practice, so to speak. Rein is most fond of  
Ruby, but has found endearing qualities in a number of languages, from
Haskell to Smalltalk to Intercal, and even Perl, and enjoys the new  
perspective he gains by learning an unfamiliar language.

As a Ruby developer since 2001, Bruce Williams has been pleased to see  
his favorite OO language rise out of obscurity the last few years --  
and pay the bills in the process. Bruce has contributed to or served  
as the technical editor for a number of Ruby-related books, speaks at  
conferences when inspiration strikes, and is an aimless open source  
hacker, language designer, graphic artist, photographer, amateur  
chef... and serial enthusiast in his copious free time.

Dan Bode will be helping with training, professional services, and  
whatever else we can convince him to do.

Dan is joining Reductive Labs after completing his consulting world  
tour; with stops in London, Osaka, Budapest, and finally Vienna. Dan  
will miss speaking broken Hungarian and German, but cant wait to  
indulge in the conveniences of America, like take-out food and  
shopping on Sundays. He has just completed an audit trail and  
compliance based IT solution for his customer in Vienna using Puppet.  
He enjoyed working with Puppet and immediately saw that its  
flexibility and functionality made it a great tool for creating some  
really cool automation solutions. He has also enjoyed learning ruby  
and thinks that it might actually inspire him to get back into  
programming.

Scott Campbell has joined us as our VP of Sales, business development,  
and whatever else he can convince me to do to make money.

Scott's primary goal in life is to make sure that his daughters get  
their education paid for.  Being slightly masochistic, Scott has made  
a career in leading the sales efforts of several successful software  
startup organizations, taking them from their early stages of sales  
and marketing traction to leaders in their respective marketplaces.  
Most recently, he spent 4 years heading the world-wide sales  
organization at Jive Software. Joining the organization as one of the  
first employees, Scott guided Jive to a leadership position in the  
emerging Web 2.0 space. In a more relevant vein to Puppet, prior to  
Jive, Scott spent 6 years at Tripwire, Inc., a provider of enterprise  
compliance and configuration management solutions. While at Tripwire,  
he lead the Western Region Field Sales organization. Before Tripwire,  
he spent 5 years at Rogue Wave Software, a maker of C++ and Java  
development tools. At Rogue Wave, Scott held several roles including  
the Director of Business Development, Director of Western Region  
Sales, and Director of Inside sales.

Lastly, Andrew Shafer has left Reductive Labs.

We'll also be maintaining a 'Team' page on our site that hopefully  
covers this same information, which you should be able to use as a  
handy reference.

-- 
Get forgiveness now -- tomorrow you may no longer feel guilty.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: access exported resources in template

2009-10-21 Thread Luke Kanies

On Oct 21, 2009, at 3:34 AM, Sven Mueller wrote:




 Luke Kanies schrieb:
 On Oct 19, 2009, at 6:19 AM, Bernhard Bock wrote:

 Hi,

 I'm trying to develop a class that autogenerates a config file based
 on an .erb template.
 It shall populate the config file with data exported from various
 hosts.

 Some pseudocode to clarify my issue:

 node n1 {
  @@mytype {
 name:
 property = foo
  }
 }

 template.erb:
 % mytype.each do |bar| %
 %= bar.name %
 %= bar.property %
 % end %

 My question is: How can I access and iterate through the exported
 resources in the template? mytype.each will not work...

 This is getting into semi-supported internal APIs, but you can get  
 the
 resource list from the catalog, something like this:

 compiler.catalog.vertices.each do |resource|
   resource.title
   resource[:property]
 end

 Being semi-supported or not, can I get to this from a template? I  
 tried
 with lookupvar('compiler') and lookupvar('compiler.catalog.vertices'),
 but lookupvar returns not the variable, but a string. And that is  
 empty
 in both cases. Do I need to define my own function to return something
 more useful?

Ah; I think you need scope.compiler.catalog, sorry.  We should make  
that visible within the template, I guess.

 Also: how can I check which type the resource has? resource.type  
 seems
 wrong (as I expect that the ruby Type is not the same as the type)?

It actually is 'resource.type' - Ruby has deprecated 'type' as a means  
of getting the class, so I was comfortable using it.

 The idea Bernhard had, if I understand it correctly, is to use a  
 custom
 type just to store the wanted data (and being a type, not a variable,
 many instances can exist and get exported). The data is then collected
 by a template. For me, this has two advantages (over other solutions
 available to collect data from multiple hosts):
 1) The user can change the template as needed
 2) The resulting file is not edited, but recreated on each run, so its
   content is deterministic after the run, even if someone edited it
   manually beforehand.


The downsides, though, are that you're directly mapping the resource  
to a file, which is a bit limited unless you're using file fragments  
of some kind.  And if you're doing that, why not just export a defined  
type that generates the file with a normal template?

-- 
Between two evils, I always pick the one I never tried before.
 -- Mae West
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Failed to generate additional resources during transaction

2009-10-21 Thread Luke Kanies

On Oct 21, 2009, at 8:22 AM, Reno wrote:


 Hello,

 puppetd --test

 return this output:


 err: /File[/var/lib/puppet/lib]: Failed to generate additional
 resources during transaction: Cannot access mount[plugins]
 err: /File[/var/lib/puppet/lib]: Failed to retrieve current state of
 resource: Cannot access mount[plugins] Could not describe /plugins:
 Cannot access mount[plugins]

 how to fix it?

You've got pluginsync enabled but it looks like you've either  
configured your fileserver.conf to refuse access to plugins, or you've  
not got any plugins.

You can safely ignore this error, though.

-- 
The real art of conversation is not only to say the right thing at the
right place but to leave unsaid the wrong thing at the tempting
moment. -- Dorothy Nevill
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Can't create user on OS X

2009-10-20 Thread Luke Kanies

On Oct 18, 2009, at 9:05 PM, Tony Williams wrote:


 Hi,

 I'm just starting to get a puppet config system running on OS X 10.6
 and have hit a snag.

 I am attempting to create a user and get an error on the client :-

 (//User[ladmin]) Failed to retrieve current state of resource:
 undefined method '' for nil:NilClass

 The manifest I am using is the output of 'ralsh user ladmin' on
 another 10.6 box with the uid shifted to 901.

 Any clues? Is this a problem with 10.6?

What's the stack trace on that? (Retrieved running with --trace.)

AFAIK user management works fine on 10.6, but I don't have any 10.6  
boxes so I can't actually try it.

-- 
Don't throw away the old bucket until you know whether the new one
holds water. -- Swedish Proverb
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: CPU on client ?

2009-10-20 Thread Luke Kanies

On Oct 19, 2009, at 3:01 AM, Xavier Beaudouin wrote:

 Hum... People there think it is use to mutch... more than 20% during  
 a run...

I'd expect Puppet to use as much cpu as possible while it's actively  
configuring a box, unless it's IO bound, and the only way around this  
is to nice it, which as mentioned means the services it starts are  
also niced, which is probably a bad idea.

In other words, you're kind of stuck unless you want to somehow just  
put a sleep in between each resource or something weird.

-- 
He is indebted to his memory for his jests and to his imagination for
his facts. --Richard Brinsley Sheridan
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: How to determine if there is a room for a copied file in puppet before copying?

2009-10-20 Thread Luke Kanies

On Oct 19, 2009, at 5:29 AM, Adam Ryczkowski wrote:



 Really, though, you probably don't want to use Puppet to copy a 1gb
 file - it still copies the files into memory.
 Is  this true also for local copies (i.e. copies which doesn't involve
 file server, and where source and destination are on the same system)?

You know, I've never really thought about them differently, but yeah,  
it is true, and that could probably easily be optimized out.  It just  
comes up so rarely that I haven't considered it.  Maybe open that as a  
bug?

-- 
I have lost friends, some by death... others through sheer inability
to cross the street. -- Virginia Woolf
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: access exported resources in template

2009-10-20 Thread Luke Kanies

On Oct 19, 2009, at 6:19 AM, Bernhard Bock wrote:


 Hi,

 I'm trying to develop a class that autogenerates a config file based
 on an .erb template.
 It shall populate the config file with data exported from various  
 hosts.

 Some pseudocode to clarify my issue:

 node n1 {
   @@mytype {
  name:
  property = foo
   }
 }

 template.erb:
 % mytype.each do |bar| %
 %= bar.name %
 %= bar.property %
 % end %

 My question is: How can I access and iterate through the exported
 resources in the template? mytype.each will not work...


This is getting into semi-supported internal APIs, but you can get the  
resource list from the catalog, something like this:

compiler.catalog.vertices.each do |resource|
   resource.title
   resource[:property]
end

-- 
What happens to the hole when the cheese is gone? -- Bertolt Brecht
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: How to handle failures of resources

2009-10-20 Thread Luke Kanies

On Oct 19, 2009, at 7:56 AM, LdvT wrote:


 I wouldn't mind having failure detection.

 Say somehow a bad copy of a .conf file is distributed; and the service
 fails to start.
 If that can be detected and used as a condition, puppet could than
 call up another manifest to drop in a default/backup copy of the .conf
 file and restart the service almost immediately.
 Toss in a notify function on that manifest, and it would be a very
 handy feature for making changes on diverse production systems.

My goal has always been to support this, but I've never quite gotten  
there, and it's never seemed to matter enough to people that.

At the least, you need every resource to be reversible (including  
execs), and you need a more consistent internal event log than we  
currently maintain, but I think ordering issues become really  
complicated too -- if you installed a package then started a service,  
you have to do them in the inverse order, but if you modified a file  
and restarted the service then you have to do them in the same order.

Basically, you need a much richer language for talking about  
dependencies, and I think that's the real complexity.

-- 
Risk! Risk anything! Care no more for the opinions of others, for those
voices. Do the hardest thing on earth for you. Act for yourself. Face
the truth. -- Katherine Mansfield
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: any plans to support pkgutil?

2009-10-20 Thread Luke Kanies

On Oct 19, 2009, at 7:24 PM, windowsrefund wrote:


 Seems that blastwave is all about pkgutil now. Are there any plans to
 support this?

We don't really target specific providers - in general, people who  
want the support provide it (heh heh).  We've got enough package  
providers at this point it should be pretty darn easy to write a new  
one, tests and everything.

-- 
If a `religion' is defined to be a system of ideas that contains
unprovable statements, then Godel taught us that mathematics is not
only a religion, it is the only religion that can prove itself to be
one. -- John Barrow
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: trouble with puppetrun on 0.24.8

2009-10-20 Thread Luke Kanies
 puppetmasterd[14811]: Processing reports
 tagmail, log for devel05.devel.local
 Oct 20 12:22:57 devel-111 puppetmasterd[14811]: Processing reports
 tagmail, log for devel05.devel.local
 Oct 20 12:22:58 devel-111 puppetmasterd[14811]: Processing reports
 tagmail, log for devel05.devel.local
 Oct 20 12:22:58 devel-111 puppetmasterd[14811]: Processing reports
 tagmail, log for devel05.devel.local

 -
 puppet client's /var/log/messages:

 Oct 20 12:22:24 devel05 puppetd[28835]: devel-111.devel.local
 (172.25.195.111) triggered run
 Oct 20 12:22:34 devel05 puppetd[28835]: Starting catalog run
 Oct 20 12:22:43 devel05 puppetd[28835]: (//cron_www_g1/File[/var/
 spool/
 cron/www]) Filebucketed to  with sum ef042c30a04a3f8b892e4be3a1009c53
 Oct 20 12:22:43 devel05 puppetd[28835]: (//cron_www_g1/File[/var/
 spool/
 cron/www]/source) replacing from source
 puppet://devel-111.devel.local/data/bw_base/var/spool/cron/www-g1 with
 contents {md5}7b2f019b56fa8593d4e3973edc89d83c
 Oct 20 12:22:58 devel05 puppetd[28835]: Finished catalog run in 24.22
 seconds


 -
 puppetmaster server's
 puppet.conf
 [main]
  vardir = /var/lib/puppet
  logdir = /var/log/puppet
  rundir = /var/run/puppet
  ssldir = $vardir/ssl
 [puppetmasterd]
  reports = tagmail, log
  reportfrom = *...@***.***

 tagmail.conf
 all: *...@***.***

 fileserver.conf
 [data]
 path /var/lib/puppet/data
 allow *

 site.pp
 $fileserver = 'devel-111.devel.local'

 node 'devel05.devel.local' {
  include 'cron_www_g1'
 }

 class cron_www_g1 {
  file {
 '/var/spool/cron/www':
 source = puppet://$fileserver/data/bw_base/var/spool/cron/www-
 g1,
 mode   = 600, owner = 'www', group = 'root';
  }
 }


 -
 puppet client's

 puppet.conf
 [main]
   vardir = /var/lib/puppet
   logdir = /var/log/puppet
   rundir = /var/run/puppet
   ssldir = $vardir/ssl

 [puppetd]
   configtimeout = 300
   server = devel-111.devel.local
   daemonize = true
   listen = true
   report = true

 namespaceauth.conf
 [puppetrunner]
  allow devel-111.devel.local

 /etc/sysconfig/puppet
 PUPPET_EXTRA_OPTS=--no-client

Why is this set?

-- 
Ours is the age that is proud of machines that think and suspicious of
men who try to. -- H. Mumford Jones
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Using the Puppet language to describe installation parameters.

2009-10-20 Thread Luke Kanies

On Oct 20, 2009, at 3:05 PM, James Turnbull wrote:


 2009/10/21 Cameron cr...@kojeware.com:
 I would like to capture the description of a computer platform,  
 either
 physical or virtual, and use this description as the basis for  
 machine
 generating pre-configured appliances.  Puppet appears ideal for
 maintaining the configuration of an appliance once it has been
 created.  I'm wondering if the Puppet language could also be used to
 describe the computer platform in sufficient detail to drive the  
 image
 creation process in a manner similar to livecd and Anaconda/
 Kickstart.

 Kickstart is too limited to describe a platform sufficiently and
 livecd seems to be closely tied to the host platform running the
 creation process.  If the Puppet is descriptive enough then a ruby-
 based tool could be developed to generate a virtual images for  
 various
 platforms  based on a detailed machine description.  A tool could  
 also
 be created to generate a Kickstart file based on the description to
 facilitate installation from media.


 I think this is feasible - have a look at the ralsh binary as an
 example of how some of this might work to model an existing host.  I
 am also sure that Ohad (who wrote The Foreman -
 http://theforeman.org/) might have some ideas in this direction also.

As a further pointer, looking at the 'cft' tool that David Lutterkort  
(I think) wrote, you should get an idea for what it looks like to do  
this.

-- 
Don't hit at all if it is honorably possible to avoid hitting; but
never hit soft! -- Theodore Roosevelt
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Arbitrary 3rd party installers

2009-10-20 Thread Luke Kanies

On Oct 20, 2009, at 3:00 PM, Andrew S wrote:


 Hi all,

 I've just started deploying a puppet infrastructure, and have run
 across what I'm sure is a common problem - third party software that
 does not use the systems package manager, instead using their own
 script/binary blob/etc.  Now my environment doesn't have any NFS at
 present (and I'm loath to add it for just this one purpose), and
 though I could wget the file and checksum it I'd prefer to manage all
 configuration content through puppet and it's filebuckets.  My first
 cut at doing this was an exec that required a file resource for the
 installer, however this means the install package remains on the
 system.  Is there some method or trick I'm missing here?

 If not, I'm considering writing a provider for package that would
 source the installer from a filebucket and run it, and potentially
 uninstall if the package has that option - problems with this approach
 are of course where you put the installer (and having the space etc),
 being sure that the third party provided installer is idempotent, and
 checking that the software is installed.  Would this be useful, or is
 it foolishness?  It's probably less foolish than my other plan, which
 was to add source to exec. :)

 FWIW the software I'm looking at here is Netbackup, EMC Symcli and the
 HP Proliant support pack.  And potentially others. :/

This is definitely a common problem, but AFAIK there's no real common  
solution.

The only real thing I can recommend is either 1) package the software  
yourself (by far the best option) or 2) use a defined type to do a  
wget, install, and rm of the tarball.  Really, if you look at the  
Blastwave pkg-get script, that's pretty much what it does, so you'd be  
walking in the footsteps of giants or whatever.

-- 
The world tolerates conceit from those who are successful, but not
from anybody else. -- John Blake
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: List of puppet builtin variables apart from those from facter

2009-10-20 Thread Luke Kanies

On Oct 20, 2009, at 8:26 AM, Johan Finnved wrote:


 Is there a list of builtin variables that get addad to thos from  
 facter.

 I have found $server and $servername and $environment in examples  
 from the puppet
 documentation but I would like a comprehensive list and a way to  
 dump all values.

 I know that I can add custom facts, but I prefer looking for  
 builtins to avoid reinventing the wheel.

In looking at the code (lib/puppet/indirector/catalog/compiler.rb), I  
see servername, serverip, and serverversion.  I'm pretty sure that's  
it.  Environment should be from the client, but not from Facter so I  
guess it's not obvious.

-- 
The world is round; it has no point.
 -- Adrienne E. Gusoff
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: CA Not Found

2009-10-18 Thread Luke Kanies

On Oct 15, 2009, at 1:04 AM, Brice Figureau wrote:


 On Wed, 2009-10-14 at 15:19 -0700, Douglas Garstang wrote:
 Can someone tell me what this means? I am getting this in
 /var/log/puppet/masterhttp.log on the server.

 [2009-10-14 15:07:35] DEBUG accept: 10.10.1.23:33626
 [2009-10-14 15:07:35] ERROR `/production/certificate/ca' not found.
 [2009-10-14 15:07:35] DEBUG close: 10.10.1.23:33626

 This is with puppet 0.24.8. Happens when puppetmaster starts up.

 This looks like a 0.25 client connecting to a 0.24.8 master which is a
 setup that can't work.

This, and some serialization issues, are what are driving the release  
of 0.25.1, which it looks like should be out this week.

Until then, using a certificate generated by a 0.24 server doesn't  
work with 0.25 clients unless you hand-copy the ca.pem to the place  
where the client expects it.

-- 
I do not feel obliged to believe that the same God who has endowed us
with sense, reason, and intellect has intended us to forgo their use.
 -- Galileo Galilei
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: req on a file distributed under recursive dir

2009-10-18 Thread Luke Kanies

On Oct 15, 2009, at 6:51 AM, Arnau Bria wrote:


 Hi all,

 I'm not sure if next conf is going to work:

 I'd like to distribute a dir in recurse way, but then add a req on a
 certain file that is under that reurse dir.

 Example:

 file { /opt/localconf:
ensure  = directory,
owner   = root,
group   = root,
mode= 700,
recurse = true,
source  = puppet://ser01.pic.es/ 
 gLite/opt/localconf_test,
}

 But then do some notify like:

 file { /opt/localconf/gLite3.1/yaim:
recurse = true,
owner   = root,
group   = root,
mode= 700,
source  = puppet://ser01.pic.es/wn_yaim/opt/ 
 localconf/gLite3.1/yaim,
notify   = Exec[yaim_conf_32],
}

 Is this conf going to work?

 source of both files is the same.

This doesn't work, unfortunately - the only choice is to notify on the  
whole directory.

I *really* wanted this to work, but we need to resolve all of the  
relationships before we can sort the resources, and the files  
discovered through recursion don't exist at that stage.

-- 
I have learned to use the word 'impossible' with the greatest caution.
 -- Wernher von Braun
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Service bug?

2009-10-18 Thread Luke Kanies

On Oct 15, 2009, at 3:10 PM, Dan Bode wrote:

 there is also a param for service called pattern that allows you  
 to specify the regex that should be used to determine the process  
 (in case one of them doesnt properly implement status)

This is almost certainly the issue - Puppet just looks for the service  
name in the process table, anywhere, if your init script doesn't have  
a 'status' option and/or you haven't told Puppet to use it.

Try specifying hasstatus = true or a pattern.

 On Thu, Oct 15, 2009 at 8:53 PM, Matthias Saou 
 th...@spam.spam.spam.spam.spam.spam.spam.egg.and.spam.freshrpms.net 
  wrote:

 Douglas Garstang doug.garst...@gmail.com wrote:

 [...]
  It seems to me like there might be a bug here. Puppet appears to  
 think
  the syslog-ng and syslog service are the same thing and stops
  syslog-ng instead of syslog.
  If I change the name of the syslog service, like this...
 
  service { XXXsyslog:
  ensure = stopped,
  enable = false;
  }
 
  then puppet does NOT stop syslog-ng. Is it doing a regex search on  
 the
  first part of the service name or something and stopping when it  
 gets
  a match?

 I think puppet looks for the process name by default. What you want to
 do is use hasstatus = true after making sure that service syslog
 status returns a correct exit status (i.e. zero only when the service
 is actually running).

 Matthias




 


-- 
Hoare's Law of Large Problems:
 Inside every large problem is a small problem struggling to get  
out.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: How to handle failures of resources

2009-10-18 Thread Luke Kanies

On Oct 18, 2009, at 2:15 AM, Adam Ryczkowski wrote:


 Welcome all,

 Resources  can  depend  one from each other, and failure of a required
 resource prevent the dependants from being run.

 But  how  to  trap these failures and handle them? Is there any way to
 e.g.   set  a  variable  $error_happened  to  true  if  some promise
 about  the  resource  couldn't  be  kept? Maybe even there is a way to
 capture the error string?

 Some  preventive  actions  can  be automated, and Puppet seems to be a
 good  place to implement   them.   And   users  who program Puppet are
 encouraged to keep from external scripts as far as they could.

What are your goals here?

There isn't a lot of room for programming these aspects of Puppet from  
within the language, but you're the first person to ask for this kind  
of feature, so for all I know, what you're asking for might be  
straightforward to add.

-- 
A conservative is a man who believes that nothing should be done for
the first time. --Alfred E. Wiggam
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: How to determine if there is a room for a copied file in puppet before copying?

2009-10-18 Thread Luke Kanies

On Oct 18, 2009, at 2:15 AM, Adam Ryczkowski wrote:


 Good afternoon all,

 How  one  can  predict  a  problem  with copying before puppet actualy
 starts  it? Copying is expensive, because I'm talking about many GB of
 data. I suspect that it should be easy to know how much free space and
 how many free nodes are available on the target device. I realize that
 it  is  not  so  easy  to  accurately  predict  the space requirements
 beforehand, but from the other hand, since I don't use compressed file
 systems, there are obvious checks one can make to predict a failure in
 many  cases.  One cannot fit directory of 1GB files when there is only
 500MB free space on target...

This would be possible once we move the Exec checks into metaparams.   
Someone's working on that right now and we're shepherding it in, but  
it's probably not going to make it until the next major release at the  
end of the year.

Really, though, you probably don't want to use Puppet to copy a 1gb  
file - it still copies the files into memory.  Use an exec, for now,  
and have it conditional on there being space.

Or, of course, use NFS. :)

-- 
You don't learn anything the second time you're kicked by a mule.
 -- Anonymous Texan
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: trouble with custom type on 0.24.8

2009-09-16 Thread Luke Kanies

On Sep 10, 2009, at 6:48 AM, Justin Kinney wrote:


 I'm having trouble getting a simple custom type to work.

 Clients are giving me the following error:
 Could not retrieve catalog: Could not find resource type zypper_repo
 at /etc/puppet/manifests/nodes/mgt.pp:33 on node host.fqdn

 The custom type is present in the /var/lib/puppet/lib/puppet/type
 directory on both clients and server (via pluginsync), but it's not
 working.

 My node.pp, init.pp for the module, and custom type are listed below.
 Any ideas?

Does the type compile?  E.g., if you do 'ruby -rpuppet file', do you  
get an error?

If you load that file directly in irb using 'load', can you retrieve  
the type with Puppet::Type.type(:...)?

-- 
We cannot really love anybody with whom we never laugh.
 --Agnes Repplier
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Activerecord and 0.25 issues

2009-09-16 Thread Luke Kanies
'
 /Library/Ruby/Site/1.8/puppet/util/settings.rb:565:in `each'
 /Library/Ruby/Site/1.8/puppet/util/settings.rb:565:in `to_catalog'
 /Library/Ruby/Site/1.8/puppet/util/settings.rb:625:in `use'
 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/
 1.8/sync.rb:229:in `synchronize'
 /Library/Ruby/Site/1.8/puppet/util/settings.rb:619:in `use'
 /Library/Ruby/Site/1.8/puppet/indirector/ssl_file.rb:50:in
 `initialize'
 /Library/Ruby/Site/1.8/puppet/indirector/indirection.rb:310:in `new'
 /Library/Ruby/Site/1.8/puppet/indirector/indirection.rb:310:in
 `make_terminus'
 /Library/Ruby/Site/1.8/puppet/indirector/indirection.rb:130:in
 `terminus'
 /Library/Ruby/Site/1.8/puppet/indirector/indirection.rb:39:in `cache'
 /Library/Ruby/Site/1.8/puppet/indirector/indirection.rb:213:in
 `find_in_cache'
 /Library/Ruby/Site/1.8/puppet/indirector/indirection.rb:189:in `find'
 /Library/Ruby/Site/1.8/puppet/indirector.rb:51:in `find'
 /Library/Ruby/Site/1.8/puppet/ssl/host.rb:175:in `certificate'
 /Library/Ruby/Site/1.8/puppet/ssl/certificate_authority.rb:241:in
 `setup'
 /Library/Ruby/Site/1.8/puppet/ssl/certificate_authority.rb:154:in
 `initialize'
 /Library/Ruby/Site/1.8/puppet/ssl/certificate_authority.rb:31:in  
 `new'
 /Library/Ruby/Site/1.8/puppet/ssl/certificate_authority.rb:31:in
 `init_singleton_instance'
 /Library/Ruby/Site/1.8/puppet/util/cacher.rb:106:in `send'
 /Library/Ruby/Site/1.8/puppet/util/cacher.rb:106:in `cached_value'
 /Library/Ruby/Site/1.8/puppet/util/cacher.rb:46:in
 `singleton_instance'
 /Library/Ruby/Site/1.8/puppet/ssl/certificate_authority.rb:45:in
 `instance'
 /Library/Ruby/Site/1.8/puppet/application/puppetmasterd.rb:163:in
 `run_setup'
 /Library/Ruby/Site/1.8/puppet/application.rb:216:in `run'
 /Library/Ruby/Site/1.8/puppet/application.rb:306:in `exit_on_fail'
 /Library/Ruby/Site/1.8/puppet/application.rb:216:in `run'
 /usr/sbin/puppetmasterd:66
 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.4/lib/active_support/
 dependencies.rb:440:in `load_missing_constant': uninitialized  
 constant
 Puppet::Network::Handler (NameError)
  from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.4/lib/
 active_support/dependencies.rb:80:in `const_missing'
  from /Library/Ruby/Site/1.8/puppet/network/server.rb:105:in
 `register_xmlrpc'
  from /Library/Ruby/Site/1.8/puppet/network/server.rb:104:in `each'
  from /Library/Ruby/Site/1.8/puppet/network/server.rb:104:in
 `register_xmlrpc'
  from /Library/Ruby/Site/1.8/puppet/network/server.rb:72:in
 `initialize'
  from /Library/Ruby/Site/1.8/puppet/application/puppetmasterd.rb:
 112:in `new'
  from /Library/Ruby/Site/1.8/puppet/application/puppetmasterd.rb:
 112:in `main'
  from /Library/Ruby/Site/1.8/puppet/application.rb:226:in `send'
  from /Library/Ruby/Site/1.8/puppet/application.rb:226:in
 `run_command'
  from /Library/Ruby/Site/1.8/puppet/application.rb:217:in `run'
  from /Library/Ruby/Site/1.8/puppet/application.rb:306:in
 `exit_on_fail'
  from /Library/Ruby/Site/1.8/puppet/application.rb:217:in `run'
  from /usr/sbin/puppetmasterd:66


 ---
 Thanks,

 Allan Marcus
 505-667-5666



 On Sep 9, 2009, at 5:01 PM, Luke Kanies wrote:


 Can we get a stack trace for that?  If you start puppetmasterd with
 --
 no-daemonize --trace, you should get stack traces on stdout.

 On Sep 9, 2009, at 12:47 PM, Allan Marcus wrote:


 More info. I see the following in /var/log/system.log:

 Sep  9 13:44:29 puppet-dev puppetmasterd[46746]:
 Could not create resources for managing Puppet's files and
 directories
 in sections [:main, :puppetmasterd, :ssl]: undefined local variable
 or
 method `x' for main:Object

 Sep  9 13:44:29 puppet-dev puppetmasterd[46746]:
 Could not create resources for managing Puppet's files and
 directories
 in sections [:ca]: undefined local variable or method `x' for
 main:Object

 Sep  9 13:44:29 puppet-dev puppetmasterd[46746]:
 Could not create resources for managing Puppet's files and
 directories
 in sections [:main, :ssl, :ca]: undefined local variable or method
 `x'
 for main:Object

 Sep  9 13:44:29 puppet-dev puppetmasterd[46746]:
 Could not create resources for managing Puppet's files and
 directories
 in sections [:main, :ssl]: undefined local variable or method `x'
 for
 main:Object


 ---
 Thanks,

 Allan Marcus
 505-667-5666



 On Sep 9, 2009, at 1:22 PM, Allan Marcus wrote:


 Ug. I updated ActiveRecord and now I get a new error (see below).
 any
 ideas?

 ---
 Thanks,

 Allan Marcus
 505-667-5666





 bash-3.2# gem list

 *** LOCAL GEMS ***

 actionmailer (2.2.2, 1.3.6)
 actionpack (2.2.2, 1.13.6)
 actionwebservice (1.2.6)
 activerecord (2.3.4, 2.2.2, 1.15.6)
 activeresource (2.3.4, 2.2.2)
 activesupport (2.3.4, 2.2.2, 1.4.4)
 acts_as_ferret (0.4.3)
 capistrano (2.5.2)
 cgi_multipart_eof_fix (2.5.0)
 daemons (1.0.10)
 dnssd (0.6.0)
 fastthread (1.0.1)
 fcgi (0.8.7)
 ferret (0.11.6)
 gem_plugin (0.2.3)
 highline (1.5.0)
 hpricot (0.6.164)
 libxml-ruby (1.1.2)
 mongrel (1.1.5

[Puppet Users] Re: Pluginsync always downloads the same unchanged file

2009-09-16 Thread Luke Kanies

On Sep 14, 2009, at 11:20 AM, Bostjan Skufca wrote:


 Hi!

 I have developed couple of plugins and puppet is syncing them. But it
 always downloads one particular file disregarding the fact that it has
 not changed at all. The md5 hash it displays in the log is indeed
 different, but if I do md5sum on the file it displays the correct
 hash.

 Can someone hint me what could be wrong or what am I doing wrong
 b.


The only time I've ever seen this happen is when something on the  
local machine is rewriting the file as it's going to disk, such as  
SELinux likes to do.  That doesn't seem appropriate here, so I've no  
idea.

-- 
There is nothing so useless as doing efficiently that which should not
be done at all. -- Peter Drucker
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Puppet Camp codefest prelude

2009-09-16 Thread Luke Kanies

I'll be arriving in SJC on Monday and making it up to the city on  
Tuesday evening, and I'm also staying in the Serrano.

-- 
Levy's Law:
 The truth is always more interesting than your preconception of
 what it might be.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Activerecord and 0.25 issues

2009-09-09 Thread Luke Kanies

Can we get a stack trace for that?  If you start puppetmasterd with -- 
no-daemonize --trace, you should get stack traces on stdout.

On Sep 9, 2009, at 12:47 PM, Allan Marcus wrote:


 More info. I see the following in /var/log/system.log:

 Sep  9 13:44:29 puppet-dev puppetmasterd[46746]:
 Could not create resources for managing Puppet's files and directories
 in sections [:main, :puppetmasterd, :ssl]: undefined local variable or
 method `x' for main:Object

 Sep  9 13:44:29 puppet-dev puppetmasterd[46746]:
 Could not create resources for managing Puppet's files and directories
 in sections [:ca]: undefined local variable or method `x' for
 main:Object

 Sep  9 13:44:29 puppet-dev puppetmasterd[46746]:
 Could not create resources for managing Puppet's files and directories
 in sections [:main, :ssl, :ca]: undefined local variable or method `x'
 for main:Object

 Sep  9 13:44:29 puppet-dev puppetmasterd[46746]:
 Could not create resources for managing Puppet's files and directories
 in sections [:main, :ssl]: undefined local variable or method `x' for
 main:Object


 ---
 Thanks,

 Allan Marcus
 505-667-5666



 On Sep 9, 2009, at 1:22 PM, Allan Marcus wrote:


 Ug. I updated ActiveRecord and now I get a new error (see below). any
 ideas?

 ---
 Thanks,

 Allan Marcus
 505-667-5666





 bash-3.2# gem list

 *** LOCAL GEMS ***

 actionmailer (2.2.2, 1.3.6)
 actionpack (2.2.2, 1.13.6)
 actionwebservice (1.2.6)
 activerecord (2.3.4, 2.2.2, 1.15.6)
 activeresource (2.3.4, 2.2.2)
 activesupport (2.3.4, 2.2.2, 1.4.4)
 acts_as_ferret (0.4.3)
 capistrano (2.5.2)
 cgi_multipart_eof_fix (2.5.0)
 daemons (1.0.10)
 dnssd (0.6.0)
 fastthread (1.0.1)
 fcgi (0.8.7)
 ferret (0.11.6)
 gem_plugin (0.2.3)
 highline (1.5.0)
 hpricot (0.6.164)
 libxml-ruby (1.1.2)
 mongrel (1.1.5)
 mysql (2.7)
 needle (1.3.0)
 net-scp (1.0.1)
 net-sftp (2.0.1, 1.1.1)
 net-ssh (2.0.4, 1.1.4)
 net-ssh-gateway (1.0.0)
 rails (2.2.2, 1.2.6)
 rake (0.8.3)
 RedCloth (4.1.1)
 ruby-openid (2.1.2)
 ruby-yadis (0.3.4)
 rubynode (0.1.5)
 sqlite3-ruby (1.2.4)
 termios (0.9.4)
 xmpp4r (0.4)
 bash-3.2# puppetmasterd --no-daemonize
 /Library/Ruby/Gems/1.8/gems/activesupport-2.3.4/lib/active_support/
 dependencies.rb:440:in `load_missing_constant': uninitialized  
 constant
 Puppet::Network::Handler (NameError)
  from /Library/Ruby/Gems/1.8/gems/activesupport-2.3.4/lib/
 active_support/dependencies.rb:80:in `const_missing'
  from /Library/Ruby/Site/1.8/puppet/network/server.rb:105:in
 `register_xmlrpc'
  from /Library/Ruby/Site/1.8/puppet/network/server.rb:104:in `each'
  from /Library/Ruby/Site/1.8/puppet/network/server.rb:104:in
 `register_xmlrpc'
  from /Library/Ruby/Site/1.8/puppet/network/server.rb:72:in
 `initialize'
  from /Library/Ruby/Site/1.8/puppet/application/puppetmasterd.rb:
 112:in `new'
  from /Library/Ruby/Site/1.8/puppet/application/puppetmasterd.rb:
 112:in `main'
  from /Library/Ruby/Site/1.8/puppet/application.rb:226:in `send'
  from /Library/Ruby/Site/1.8/puppet/application.rb:226:in
 `run_command'
  from /Library/Ruby/Site/1.8/puppet/application.rb:217:in `run'
  from /Library/Ruby/Site/1.8/puppet/application.rb:306:in
 `exit_on_fail'
  from /Library/Ruby/Site/1.8/puppet/application.rb:217:in `run'
  from /usr/sbin/puppetmasterd:66





 


-- 
Talent hits a target no one else can hit; Genius hits a target no one
else can see. -- Arthur Schopenhauer
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: /etc puppet or some of the directories can't be symlinks.

2009-09-09 Thread Luke Kanies

On Sep 6, 2009, at 3:59 PM, Tim Uckun wrote:


 For development purposes I have set up /etc/puppet to be a symlink to
 /home/me/puppet/etc.

 Every time I run puppetmasterd the link id destroyes and the directory
 gets created from scratch.

 This also happens if I create a /etc/puppet and create symlinks for
 the manifests directory

 So far it hasn't happened for the modules, plugins, files or templates
 directories.

 This is the same kind of behavior described in bug
 http://projects.reductivelabs.com/issues/750 which was closed two
 years ago!

 I am running puppet 2.5 which was released a couple of days ago.

Is this really that big of a deal?  You can use puppet.conf to  
configure where the directories will be, so at worst you have a single  
file in /etc/puppet/puppet.conf, or you can start your daemons with -- 
config /my/puppet.conf.

-- 
Today at work an ethernet switch decided to take the 'N' out of NVRAM
 -- Richard Letts
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: reporting and err tag. [was Silent failure]

2009-09-09 Thread Luke Kanies

On Sep 6, 2009, at 7:42 PM, Tim Uckun wrote:



 As long as you are on a recent version there is an 'err' tag, which  
 you
 can use in conjunction with tagmail to mail you any  errors. I send  
 mine
 to a distribution group that ends up going to my team mates.


 I am trying to implement this but I am not getting any logging or
 reporting at all. I do get emails if I put all: tag in the
 tagmail.conf but no emails when I put in err: tag in the file (I force
 an error).


 Here is my configuration on the puppetmaster

 [main]
 confdir=/usr/local/home/tim/puppet/etc
 ssldir=/etc/puppet/ssl
 vardir=/var/puppet

 [puppetmasterd]
 storeconfigs=true
 reports = tagmail,store,log
 tagmap=/etc/puppet/tagmail.conf
 smtpserver=some.smtp.server

 I also run puppetmaster like this (just to be sure)

 puppetmasterd --no-daemonize --verbose --debug --reports  
 tagmail,store,log

 This is what tagmail.conf looks like

 #all: timuc...@gmail.com  #this works
 err: timuc...@gmail.com   #this doesn't work if I force an error.


 This is what the client puppet.conf looks like

 [main]
 logdir=/var/log/puppet
 vardir=/var/lib/puppet
 ssldir=/var/lib/puppet/ssl
 rundir=/var/run/puppet
 factpath=$vardir/lib/facter
 #pluginsync=true

 [puppetd]
 report=true



 This is how I run the client (just to make sure)
 puppetd --server my.server.com  --no-daemonize --logdest console
 --verbose  --onetime  --debug  --test --trace --report


 No reports get generated. There is nothing int he /var/puppet/reports
 directory. No indications of anything going wrong  in the log files.
 Nothing anywhere telling me what the problem might be.

 For me this has been the biggest problem with puppet. Complete silent
 failure.  I have followed the documentation carefully, there is no
 indication of why it failed even with full debugging on and logging to
 the console.

We just caught this problem of not being able to use the log level as  
a tag, and I think it got fixed around 0.24.8, so that might be the  
issue if you're running a slightly older version.

I'm still a little confused, though -- how do you know you're getting  
an error if you're not getting any error reports anywhere?

-- 
I'm worried about Bart. Today, he's sucking people's blood,
tommorrow he might be smoking. -Marge Simpson
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: classes param avaible at compile time?

2009-09-09 Thread Luke Kanies

On Sep 8, 2009, at 6:29 AM, Dan Bode wrote:

 is the classes section from Puppet::Node accessible at parse time?

 example:

 from yaml/node/supercoolmanchine.super.cool.place.yaml

 classes:
 - workstation
 - httpd
 - dev

 can I access this list from within puppet manifests?

Hmm.  No; no one's ever asked for it.  It's in memory, so it wouldn't  
be hard to add a function for it, I think.

-- 
Fallacies do not cease to be fallacies because they become fashions.
 --G. K. Chesterton
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: puppetca issues after moving to mongrel

2009-09-09 Thread Luke Kanies

On Sep 8, 2009, at 11:30 AM, Ian Cottee wrote:

 I've been running puppet for nearly two years. As the number of  
 clients have expanded so performance has eroded. I've done stop gaps  
 solutions such as creating two puppet masters and feeding a  
 fileserver off one of them and reducing the frequency that clients  
 check in, but I knew they were stop gap solutions and not cutting  
 the mustard.

 Last week I bit the bullet and created a new puppetmaster on Ubunty  
 Hardy, installing from the 0.24.9 source. The bones of the config  
 come from http://reductivelabs.com/trac/puppet/wiki/UsingMongrel

 And all as well last week and I had apache serving up 10  
 puppetmasters. I'd copied the ssl details from the previous server  
 and existing clients were checking in, doing their puppety stuff and  
 being happy.

 Today we needed to create a new node but no dice. On my client, when  
 first starting puppetd I get:

 r...@sn1204:~# puppetd --test
 warning: peer certificate won't be verified in this SSL session
 err: Could not call puppetca.getcert: #RuntimeError: HTTP-Error:  
 502 Proxy Error
 /usr/lib/ruby/1.8/puppet/network/client/ca.rb:31:in `request_cert':  
 Certificate retrieval failed: HTTP-Error: 502 Proxy Error  
 (Puppet::Error)
 from /usr/sbin/puppetd:356

 On the server I see this in syslog.

 Sep  8 19:22:52 puppet puppetmasterd[1965]: Client  
 sn1204.bb2(xx.xx.xx.xx) requested unavailable functionality puppetca

 Which tied in with what I was seeing when I switched from mongrel to  
 webrick as a test to debug this. http://www.pastie.org/609530

 I have since upgraded the server to 0.25.0 but the messages are the  
 same. All the clients are 0.24.4 (stock hardy) with a few gutsies.  
 They're all connecting fine.

 My puppet.conf from the server is at http://www.pastie.org/609537  
 and the apache conf at http://www.pastie.org/609541

 #puppet on irc have been very helpful but have drawn a blank so far.  
 Having peered at the code I assume the puppetca code is loaded as a  
 module by the puppetmaster process and that is 'failing' somehow/ 
 somewhere? Or not being loaded?

 Any pointers on how to debug further gratefully received.

Do you have 'ca = false' somewhere in your configuration?  That's the  
only thing I can think of that would cause the CA functionality not to  
be available.

-- 
Fallacies do not cease to be fallacies because they become fashions.
 --G. K. Chesterton
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: problems with log files

2009-09-09 Thread Luke Kanies

On Sep 8, 2009, at 9:09 PM, Matt Delves wrote:


 Hey Folks,
 I've just migrated from 0.24.8 to 0.25.0 and I'm finding that the
 logfiles aren't being updated promptly. If I restart the puppet-server
 service it dumps the logs then though only intermittently.

 Is this a known problem? The only other change I've made is that I've
 added storeconfigs as well.

Not a known problem that I know of.  Never flushing the logs, eh?

Can you file that, with some context?

-- 
The intelligent man finds almost everything ridiculous, the sensible
man hardly anything. -- Johann Wolfgang von Goethe
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Puppet Camp

2009-09-09 Thread Luke Kanies

On Sep 9, 2009, at 1:05 AM, Al @ Lab42 wrote:


 So,
 it seems that a bunch of puppetmasters will be roaming around SF
 waiting for the Camp.
 I suppose we can arrange a meeting at least the evening of 30
 September, but also earlier for somebody.

 We can define here a meeting place  hour in a sensible, recognizable,
 place, and then move to a restaurant, pub or whatever.
 Any suggestion from SF natives?

I'm not a native, but I recommend the following places:

Irish Bank - good pub, central location
Rye - great cocktail bar
Bourbon and Branch - even greater cocktail bar, but you *have* to make  
reservations - they give you a password and you can't get in without it
The View - decent cocktail bar at the top of the Marriott with a  
really good view of the bay

Thai food in SF is excellent; use yelp to find a good one, there are  
lots.

I, um, don't have much to recommend other than places to drink; you  
can tell what I do when I visit. :)

Also, I expect we'll set up some code sprints in the day or two before  
the conference; specifically, on the dev call today Paul recommended  
that we do a continuous integration code sprint, which I think is a  
great idea.  We specifically need to get the AMIs in better shape so  
it doesn't take so long to start each machine for testing.

-- 
The Roman Rule:
 The one who says it cannot be done should never interrupt the
 one who is doing it.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Emitting warnings in a custom function.

2009-09-09 Thread Luke Kanies

On Sep 9, 2009, at 1:41 PM, Trevor Vaughan wrote:


 All,

 I apologize for asking the question since I know I've done this
 before, but...does anyone know how to emit warnings in a custom
 function?

 I tried Puppet.warning, but that didn't appear to print a warning
 message anywhere.

It... should.  That's exactly how we do all of our warnings and such.   
Do you just get a no-op on that?

-- 
The big thieves hang the little ones. -- Czech Proverb
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: accessing resource attributes

2009-09-07 Thread Luke Kanies

On Aug 20, 2009, at 1:25 AM, Jan wrote:


 Hi,

 I came across a use case where I would like to access a value of an
 attribute of a particular resource. I cannot find anything like this
 in the documentation.

 Essentially, I am trying to do something like this:

 $cacert_path = Base::X509::Cert[cacert].path

 Did I miss something in the concepts?

There's no ability to do this right now, but... I don't see a whole  
lot of reason not to support it, and it's likely to be a relatively  
simple language change.

I've kind of avoided it just because it's a pretty significant  
increase in visibility of resources throughout the catalog, but in the  
end, relative to what else we've added, it's actually a small change  
now.

I guess file a feature request for it?

-- 
The brain is a wonderful organ. It starts working the moment you get
up in the morning and does not stop until you get into the office.
 --Robert Frost
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Resource ordering

2009-07-22 Thread Luke Kanies

On Jul 21, 2009, at 5:31 PM, Trevor Vaughan wrote:


 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 This is going to be a great feature.

 Over time, I've been struggling with trying to keep things extremely
 modular (perhaps too much so) but still well ordered.

 When I can make every class that needs apache just 'require apache', I
 will be quite happy.

 However, I think that this means that if *anything* in the class  
 fails,
 the dependent classes will fail too, is this correct?

Yes, the dependent classes will be skipped if any resources in the  
required classes fail.


 Is there any way to make some things fail softly so that they can be
 less hard than class-wise fatal?

Hmm, no one's ever asked before.

It seems reasonable that we could mark some resources as non-fatal,  
but what resources would you mark this way?


 Thanks,

 Trevor

 On 07/21/2009 05:31 PM, James Turnbull wrote:
 Burkholder, Peter wrote:
 I just finished listening to the Configuration Management panel from
 OSBridge (on blip.tv).

 Near the end of it, Adam Jacob states that Puppet's resource  
 dependency
 ordering is non-deterministic,
 and that manifests that work fine 19 times will fail the 20th time.

 Is this true?   I'm puzzled that what Luke considers one of Puppet's
 strong suits is derided by
 others as its Achille's heel.


 There is a change in 0.25.0 that I also should have mentioned  
 because it
 impacts this discussion.

 In 0.25.0 we've added a 'require' function.  The doco is here:

 Evaluate one or more classes,  adding the required class as a  
 dependency.

 The relationship metaparameters work well for specifying  
 relationships
 between individual resources, but they can be clumsy for specifying
 relationships between classes.  This function is a superset of the
 'include' function, adding a class relationship so that the requiring
 class depends on the required class.

 .. Warning:: using require in place of include can lead to unwanted
 dependency cycles.  For instance the following manifest, with  
 'require'
 instead of 'include'  would produce a nasty dependence cycle, because
 notify imposes a before between File[/foo] and Service[foo]::

class myservice {
   service { foo: ensure = running }
}

class otherstuff {
   include myservice
   file { '/foo': notify = Service[foo] }
}
 

 This takes some of the (potential) pain out of the ordering by  
 allowing
 class level dependencies.  This adds dependency resolution higher  
 than
 between individual resources.  It doesn't solve issues where you  
 haven't
 built the right dependencies at a resource level but does provide  
 more
 flexibility.

 This isn't the same as Chef - as Adam has pointed out Chef has top- 
 down
 ordering rather than Puppet's dependency graph - but I think it'll  
 make
 life easier for some people.

 Regards

 James Turnbull

 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.9 (GNU/Linux)

 iEYEARECAAYFAkpmXc4ACgkQyjMdFR1108BPnwCbBAYZ+kFWaKrORho1NOZK6+Ij
 bNQAn2bb0SDw0aofNRH0wKf/fv5iDpzw
 =eDIA
 -END PGP SIGNATURE-

 


-- 
In our civilization, and under our republican form of government,
intelligence is so highly honored that it is rewarded by exemption from
the cares of office. --Ambrose Bierce
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Custom type fails when requiring another plugin

2009-07-22 Thread Luke Kanies

On Jul 16, 2009, at 2:48 PM, S H wrote:

 Puppet 0.24.8.

 I'm building a custom type and have run into a bit of a snag. If I  
 try to require another plugin, my type fails to load on the  
 Retrieving plugins stage of the client run.

Puppet immediately loads all downloaded ruby files, with the  
expectation that it is often reloading files that are already in  
memory.  If the plugins are downloaded in the wrong order (i.e., the  
requiring file and then the required file), you've got a problem.

Truthfully, this is the first time this has ever come up.  A  
reasonable fix would be to wait until all files are downloaded before  
we load any files.

If I publish a branch with a fix for this, would you be able to test  
it?  It'd be against the 'master' branch.


 I've tried to isolate this from my code by running extremely simple  
 plugins. Here's my custom type (called by the relevant init.pp):
 -
 # puppet/modules/testmodule/plugins/puppet/type/testtype.rb
 require 'puppet/external/testing'

 module Puppet
   newtype(:testtype) do

 newparam(:target) do
   desc The path to the configuration file we're editing
   defaultto /usr/local/etc/testfile
 end

 newparam(:name, :namevar = true) do
   desc The name
 end

  newproperty(:ensure) do
desc Basic state
newvalue :present
newvalue :absent

def retrieve
  File.exists?(@resource[:target]) ? :present : :absent
end

  end
   end
 end
 -


 Here's puppet/external/testing:
 -
 # puppet/modules/testmodule/plugins/puppet/external/testing.rb
 class JustTesting
 end
 -

 Both plugins are getting synced up correctly to the client machine  
 (under /var/puppet/lib), but if the client runs like this I end up  
 with the following error:

 err: Could not retrieve catalog: Could not find resource type  
 testtype at /usr/local/etc/puppet/modules/testmodule/manifests/ 
 init.pp:119 on node testbox

 If I comment out the require line in testtype.rb, it runs just  
 fine. If I change that line to require something builtin like puppet/ 
 external/lock, it works.

 Am I doing something wrong here?

I *highly* recommend you do all your development in a non-networked  
test environment relying entirely on the 'puppet' executable, rather  
than puppetd and puppetmasterd. Isolate your problems there, and only  
once you're sure it's all working should you switch to the client/ 
server testing.

What behaviour do you get there?

-- 
In science, 'fact' can only mean 'confirmed to such a degree that it
would be perverse to withhold provisional assent.' I suppose that
apples might start to rise tomorrow, but the possibility does not
merit equal time in physics classrooms. -- Stephen Jay Gould
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Newbie provider development: Failed to retrieve current state of resource

2009-07-22 Thread Luke Kanies

On Jul 22, 2009, at 8:55 AM, S H wrote:

 As I mentioned in another thread, I'm trying to work through the  
 kinks in developing my own types/providers. I appear to be doing  
 something very wrong, but I don't know what.

 On my puppetmaster, I've got the following:

 -
 # modules/test/plugins/puppet/type/testtype.rb
 Puppet::Type.newtype(:testtype) do
@doc = A test type
ensurable

 newparam(:name, :namevar = true) do
   desc The name
 end
 end
 -
 # modules/test/plugins/puppet/provider/testtype.rb
 Puppet::Type.type(:testtype).provide do
 desc Test provider

 def create
   return true
 end
 def destroy
   return true
 end
 def exists?
   return true
 end
 end
 -
 # modules/test/manifests/init.pp
 testtype { testinstance:
   ensure = present,
 }
 -

 My test machine downloads the plugins to the right location but  
 throws this error when it makes the catalog run:
 err: //unix/test/Testtype[testinstance]: Failed to retrieve current  
 state of resource: No ability to determine if testtype exists

 If I skip the ensurable and provider steps and just dump the right  
 code into the newproperty(:ensure) do block, it works fine.

 What am I doing wrong here?

It looks like your provider isn't valid - you haven't provided (heh) a  
name for it.

My guess is that you're using an older version of Puppet that's not  
correctly showing the error that comes up with that code, so your type  
isn't getting the provider which means it's not seeing those methods.

Try 'ruby -rpuppet /path/to/file' to make sure your provider works.

-- 
Reality is that which, when you stop believing in it, doesn't go
away. -- Philip K. Dick, How to Build a Universe
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Resource ordering

2009-07-21 Thread Luke Kanies

On Jul 17, 2009, at 6:08 AM, Burkholder, Peter wrote:


 I just finished listening to the Configuration Management panel from
 OSBridge (on blip.tv).

 Near the end of it, Adam Jacob states that Puppet's resource  
 dependency
 ordering is non-deterministic,
 and that manifests that work fine 19 times will fail the 20th time.

 Is this true?   I'm puzzled that what Luke considers one of Puppet's
 strong suits is derided by
 others as its Achille's heel.

Dependency ordering is entirely deterministic.

Ordering of unrelated items, just like in any other topological sort  
of a graph, is currently nondeterministic.

We could trivially add deterministic ordering for unrelated items:   
Just sort any equivalent resources based on name.  Ten seconds after  
you do this, you'll have people naming resources things like  
'1myservice' because they want to use alphabetic sorting instead  
of declared dependencies, and then they'll complain when specified  
dependencies get preference.

Basically, once we start saying unrelated resources will always  
happen in a predictable order, we can never change the internal  
implementation or add parallelism.  There might be some ways to  
increase consistency without sacrificing these, but no one besides  
Adam has complained much about it, and he was never willing to  
actually contribute code to fixing it.

-- 
It's very hard to predict things . . . Especially the future.
 -- Prof. Charles Kelemen, Swarthmore CS Dept.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: puppetd no-daemonize

2009-07-21 Thread Luke Kanies


On Jul 13, 2009, at 2:13 PM, Derek Yarnell wrote:

 So I have been trying to run puppet once in my kickstart %post  
 scripts but every time it detaches and daemonizes even though I have  
 explicitly stated otherwise.  Am I missing something?

 # rpm -q puppet
 puppet-0.24.8-1

 # /usr/sbin/puppetd --onetime --no-daemonize --verbose --debug
 debug: Creating default schedules
 debug: Failed to load library 'shadow' for feature 'libshadow'
 debug: Failed to load library 'ldap' for feature 'ldap'
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[puppetd]/File[/ 
 var/puppet/state/state.yaml]: Autorequiring File[/var/puppet/state]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[ssl]/File[/etc/ 
 puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[ssl]/File[/etc/ 
 puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[puppetd]/File[/ 
 var/puppet/state/classes.txt]: Autorequiring File[/var/puppet/state]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[ssl]/File[/etc/ 
 puppet/ssl/certs/#.pem]: Autorequiring File[/etc/ 
 puppet/ssl/certs]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[ssl]/File[/etc/ 
 puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[ssl]/File[/etc/ 
 puppet/ssl/private_keys]: Autorequiring File[/etc/puppet/ssl]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[main]/File[/etc/ 
 puppet/ssl]: Autorequiring File[/etc/puppet]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[main]/File[/var/ 
 puppet/run]: Autorequiring File[/var/puppet]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[ssl]/File[/etc/ 
 puppet/ssl/csr_#.pem]: Autorequiring File[/etc/ 
 puppet/ssl]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[main]/File[/var/ 
 puppet/state]: Autorequiring File[/var/puppet]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[main]/File[/var/ 
 puppet/log]: Autorequiring File[/var/puppet]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[main]/File[/var/ 
 puppet/lib]: Autorequiring File[/var/puppet]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[ssl]/File[/etc/ 
 puppet/ssl/certs/ca.pem]: Autorequiring File[/etc/puppet/ssl/certs]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[ssl]/File[/etc/ 
 puppet/ssl/private_keys/###.pem]: Autorequiring  
 File[/etc/puppet/ssl/private_keys]
 debug: /Settings[/etc/puppet/puppetd.conf]/Settings[ssl]/File[/etc/ 
 puppet/ssl/public_keys/###.pem]: Autorequiring File[/ 
 etc/puppet/ssl/public_keys]
 debug: Finishing transaction -606390474 with 0 changes

It's not daemonizing there, it's exiting -- if you use --onetime, it  
exits after the run.

-- 
The Number 1 Sign You Have Nothing to Do at Work...
 The 4th Division of Paperclips has overrun the Pushpin Infantry
 and General White-Out has called for a new skirmish.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: testing filebuckets in 0.25

2009-07-16 Thread Luke Kanies

On Jul 16, 2009, at 8:08 AM, Steven Jenkins wrote:



 I've been looking at Redmine 2371 for a while and had been looking  
 strictly on
 the code and spec testing side until yesterday, when I set up a  
 puppetmaster and
 client to verify the filebuckets.  I found that I'm not able to get  
 filebuckets
 to work at all (via puppetd), so I'm hoping I just have a simple  
 user error.  I
 have verified that using the 'filebucket' command mostly works as I  
 expect.

 Can someone confirm that local filebuckets are working (via puppetd)  
 for them on
 0.25?  Additionally, I've included my configs below, as

I confirmed both local and remote in the course of my own testing of  
this bug.

I always go singificantly simpler than your config; I do my best to  
stick to just a single test.pp file.  For instance, I'll start my  
master like this:

sbin/puppetmasterd --verbose --no-daemonize --confdir /tmp/ 
plugintesting --vardir /tmp/plugintesting --manifest ~/bin/test.pp -- 
modulepath ~/.puppet/modules --certdnsnames localhost

And then I'll start puppetd like this:

sudo sbin/puppetd --test --confdir /tmp/plugintesting/ --vardir /tmp/ 
plugintesting --no-daemonize --server localhost --pluginsync

I use a new /tmp directory for every set of tests, so I know I'm  
always starting from scratch, and I'm not getting an artifact from  
some other setup.

With that setup plus a single filebucket and a single file managing  
its content, I got backups all around.

-- 
Someday I want to be rich. Some people get so rich they lose all
respect for humanity. That's how rich I want to be. --Rita Rudner
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Provider API: delete vs. destroy

2009-07-10 Thread Luke Kanies

On Jul 10, 2009, at 1:15 PM, jcbollinger wrote:


 I have been working on a custom provider for User resources, relying
 in part on the documentation on the Wiki:

 http://reductivelabs.com/trac/puppet/wiki/CompleteResourceExample
 http://reductivelabs.com/trac/puppet/wiki/ProviderDevelopment

 Somewhat to my surprise, my provider is generally working.

 Contrary to the Wiki docs, however, I found that when an existing User
 resource is ensured absent, the method invoked on my provider is named
 delete, not destroy.  Is this a peculiarity of the User type, or
 is the wiki simply incorrect?

It's a peculiarity of the User type.  This is, unfortunately, an area  
in which we haven't been able to enforce standardization through a  
clean API (although I've got ideas for one), and no one has  
particularly felt like going through all of the existing types and  
providers and just generally enforcing it.

More recent types and providers tend to follow the convention  
described on the wiki, but Users and Packages were the types that  
resulted in providers, and thus were the first to use them, so they  
tend to not follow convention.


 Digging further, it appears that among the standard User providers,
 only user_role_add has an explicit destroy method.  None of the
 standard providers explicitly defines a delete method, but it
 appears that some of them may acquire one by declaring :delete among
 their commands.

Most likely, they all inherit Nameservice or one of its children.   
That whole class heirarchy needs to be converted to modules and  
mixins, but until that's done, it's a bit messy.

(And if there's a thread you think I should be replying to but am not,  
feel free to forward it to me or puppet-dev.)

-- 
We cannot really love anybody with whom we never laugh.
 --Agnes Repplier
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Multiple default providers for service: init, base; using init

2009-07-10 Thread Luke Kanies

On Jul 1, 2009, at 9:30 AM, Pete Emerson wrote:

 I have a bunch of CentOS machines. In the process of puppetizing one  
 of them I'm getting this warning (more complete debug info at the  
 end):

 warning: Found multiple default providers for service: init, base;  
 using init
 info: /Service[gmond]: Provider init does not support features  
 enableable; not managing attribute enable

 Given that all of my instances are running the same OS and should be  
 identical, and none of my other instances are exhibiting this  
 problem, something on this instance must be slightly different.

 I've run the client in debug mode (see below) and the puppetmaster  
 in debug mode, but haven't seen anything that is causing this issue  
 (like the default PATH, for example). How do I best go about  
 figuring out what is going on and fixing it?


This kind of issue is normally caused by a funky PATH, but it looks  
like your service providers are halting their loading early, so maybe  
you've got a provider there that's not parsing correctly and is  
breaking the loading of the rest of the service providers.

I *think* that was a bug in an earlier version but is fixed in 0.24.8  
or so -- providers can't break loading for other providers.

-- 
Good judgment comes from experience, and experience comes from bad
judgment. --Barry LePatner
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Funded, but not different

2009-06-23 Thread Luke Kanies

Hi all,

You may have heard that Reductive Labs got funding:

http://reductivelabs.com/2009/06/23/reductive-labs-funding-from-true-ventures/

Most of the discussions and press around the announcement are focused  
on business, but the community aspect is just as important to us.

This funding is going to be used mostly to do more development on  
Puppet.  We're growing, but we think it will be great for Puppet and  
the Puppet community.

And did I mention we're hiring? :)

-- 
You only have to be open minded if you're wrong.
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Puppet Certification?

2009-06-11 Thread Luke Kanies

On Jun 3, 2009, at 6:03 AM, paul matthews wrote:

 I realise this could be a long way off as Puppet is rapidly  
 evolving, with development still at the forefront but are there  
 plans in the furture to offer a Puppet Certification exam. I know  
 the subject of certification is not to everyone's taste, but I find  
 studying for these is a good way for me to focus on learning all the  
 subject areas and to demonstrate some level of competence to any  
 would be employers. I think there would be benefits to Reductive  
 too, I guess mostly in the area of getting people to attend training  
 courses

 I'll get my flame proof suit on in anticipation for any replies

We've actually had quite a few people ask for certification, for  
various reasons, and we plan on offering it.  We hope to have a first  
pass available something like the end of 2009.  Obviously, the more  
people ask for it, the faster it will get done.

-- 
You can't wait for inspiration. You have to go after it with a club.
 -- Jack London
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Puppetrun timeout

2009-06-11 Thread Luke Kanies

On Jun 8, 2009, at 4:39 PM, Pete Emerson wrote:

 I'm using puppet 0.24.7-4. I have a situation where I have some very  
 long running puppet runs in order to do upgrades (removing  
 applications from load balancers gracefully, et cetera).

 My puppet runs triggered via puppetrun are finishing successfully:

 Jun  8 20:31:29 puppetd[10178]: Finished catalog run in 345.18 seconds

 Puppetrun itself is timing out:

 err: Connection timeout calling puppetrunner.run: execution expired
 Host myhost failed: Connection Timeout
 myhost finished with exit code 2

 I'm calling puppetrun with --foreground: puppetrun --host=myhost -- 
 host=myhost2 --host=myhost3 --foreground --parallel

 However, I don't see anything in the puppetrun doco that hints at  
 setting the execution exiry time. Any suggestions?


I'd run with --no-foreground.  Or, modify puppetrun to have a timeout?

-- 
It's impossible to foresee the consequences of being clever.
 -- Christopher Strachey
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: puppet client looking for server puppet

2009-06-11 Thread Luke Kanies

On Jun 10, 2009, at 12:50 PM, Asif Iqbal wrote:

 In my puppet client I have
 puppet.conf defined puppet server as mypuppet

 server = mypuppet.example.net

 Not sure why the puppet client puppet-test is still sending these
 noises to the syslog

 Jun 10 13:36:23 puppet-test puppetd[10863]: [ID 702911 daemon.error]
 Could not find server : getaddrinfo: node name or service name not
 known
 Jun 10 13:36:23 puppet-test puppetd[10863]: [ID 702911 daemon.error]
 Could not request certificate: Certificate retrieval failed: Could not
 find server puppet
 Jun 10 13:36:44 puppet-test puppetd[13502]: [ID 702911 daemon.notice]
 Starting catalog run
 Jun 10 13:36:44 puppet-test puppetd[13502]: [ID 702911 daemon.notice]
 Finished catalog run in 0.03 seconds

 Am I hitting a but?


Almost every time I've seen this it's a problem with a filebucket --  
do you have a server-side filebucket specified to use 'puppet'?

-- 
Never esteem anything as of advantage to you that will make you break
your word or lose your self-respect. -- Marcus Aurelius Antoninus
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: puppet client looking for server puppet

2009-06-11 Thread Luke Kanies

On Jun 11, 2009, at 11:36 AM, Asif Iqbal wrote:


 On Thu, Jun 11, 2009 at 11:58 AM, Luke Kaniesl...@madstop.com wrote:

 On Jun 10, 2009, at 12:50 PM, Asif Iqbal wrote:

 In my puppet client I have
 puppet.conf defined puppet server as mypuppet

 server = mypuppet.example.net

 Not sure why the puppet client puppet-test is still sending these
 noises to the syslog

 Jun 10 13:36:23 puppet-test puppetd[10863]: [ID 702911 daemon.error]
 Could not find server : getaddrinfo: node name or service name not
 known
 Jun 10 13:36:23 puppet-test puppetd[10863]: [ID 702911 daemon.error]
 Could not request certificate: Certificate retrieval failed: Could  
 not
 find server puppet
 Jun 10 13:36:44 puppet-test puppetd[13502]: [ID 702911  
 daemon.notice]
 Starting catalog run
 Jun 10 13:36:44 puppet-test puppetd[13502]: [ID 702911  
 daemon.notice]
 Finished catalog run in 0.03 seconds

 Am I hitting a but?


 Almost every time I've seen this it's a problem with a filebucket --
 do you have a server-side filebucket specified to use 'puppet'?

 my puppetmaster is a ubuntu server and I do not see anything
 in /var/lib/puppet/bucket dir. Is that what you are asking? sorry I am
 a puppet newbie

Look for a 'filebucket' resource in your manifests.

-- 
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by
definition, not smart enough to debug it.
 -- (attributed to) Brian W. Kernighan (unconfirmed)
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



[Puppet Users] Re: Puppetrun timeout

2009-06-11 Thread Luke Kanies

On Jun 11, 2009, at 5:52 PM, Pete Emerson wrote:

 Hrm, I'm running it with --foreground so that I know when it's  
 complete, and I'm getting these execution expired messages, which I  
 took to mean that puppetrun already has some sort of internal  
 timeout mechanism. Is that not the case?

 I guess an alternative would be to run with --no-foreground. If I do  
 that, is there a way to query host and see when it's last successful  
 update was, in order to show that the changes have been completed?

 If that doesn't work, then I guess I'd have to ssh to each box and  
 run puppetd there and wait for it to finish.

I'd recommend using reports from the client to figure out when it's  
done.

-- 
The truth is that there is nothing noble in being superior to somebody
else. The only real nobility is in being superior to your former self.
 -- Whitney Young
-
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en
-~--~~~~--~~--~--~---



  1   2   3   >