Re: [Puppet Users] Puppetd fails to run, returns error: undefined method fact_merge

2010-10-15 Thread Mohit Chawla
Looks like there's a bug filed : http://projects.puppetlabs.com/issues/3234

On Thu, Oct 14, 2010 at 4:59 PM, Phil Plante unhappyro...@gmail.com wrote:

 Hello,

 I have puppet setup on 8 nodes with 1 puppetmaster server.  So far 7
 of the 8 nodes have performed flawlessly, 1 is currently failing with
 the following error:


 err: Could not retrieve catalog from remote server: Error 400 on
 SERVER: undefined method `fact_merge' for nil:NilClass
 warning: Not using cache on failed catalog
 err: Could not retrieve catalog; skipping run


 I have tried to completely remove the package and keys from the node 
 master to no avail.  Anyone experienced this before?

 --
 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.compuppet-users%2bunsubscr...@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.



Re: [Puppet Users] alternate hostnames, keys, and certs

2010-10-15 Thread Patrick

On Oct 14, 2010, at 10:23 PM, Don Jackson wrote:

 
 I'd like to extend my use of puppet to manage my desktop/notebook macs.
 
 As others have noted, the hostname of the mobile machines tends to change 
 frequently, so basing the node name (in my site.pp) and the corresponding 
 cert and private key names seems to be an issue.
 
 I seem to recall somewhat talking about this at Puppet Camp last week…..
 
 Generally my signing strategy is always to generate new certs and private 
 keys on the puppetmaster, and install them on the client machine as part of 
 the initial install (hopefully automated).
 
 Can I generate a cert based on the macaddress of the new machine?
 
 I tried this, and puppetca --generate made the certs and key without 
 complaining.
 
 Presumably I can install these on my client machine.
 
 If so, would I then run puppetd with a the --fqdn argument, and give the mac 
 address there?
 
 And what would the name of this machine be in a node specification in the 
 manifest?
 
 I put 
   node '00:1f:5b:f8:23:f8' { } 
 
 in my manifest, and it was very unhappy.
 
 Any advice about how I can accomplish what I am trying to do?
 
 Thanks,
 
 Don

If it's not too late, I would:
*) Pick something that can be a valid part of a domain name.
*) Put something at the beginning to help keep things simple.  

So instead that name it would be this or similar:
macaddress-00-1f-5b-f8-23-f8

-- 
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] how can i determinate from one class if another class applied?

2010-10-15 Thread Felix Frank
On 10/15/2010 09:40 AM, walexey wrote:
 Hello everybody!
 How can i determinate from one class if another class applied to the
 this node?
 

You can use the defined() function.

if defined(Class[my_class]) {
 ...
}

YOU SHOULD NOT DO THAT, though. There are problems, because puppet may
include classes in a different order in each run. See the details in
http://docs.puppetlabs.com/references/stable/function.html#defined

If the class you test for belongs to an earlier stage (in 2.6.0+), this
problem may be sidestepped. I'm not sure if that's how that works, though.

HTH,
Felix

-- 
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] how can i determinate from one class if another class applied?

2010-10-15 Thread Bruce Richardson
On Fri, Oct 15, 2010 at 12:40:57AM -0700, walexey wrote:
 Hello everybody!
 How can i determinate from one class if another class applied to the
 this node?

Use the defined() function.

-- 
Bruce

What would Edward Woodward do?

-- 
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: how can i determinate from one class if another class applied?

2010-10-15 Thread luke.bigum
What you'll probably want is the tagged() function, not defined().

Someone correct me if I am wrong, but defined() is useful for checking
if types or classes exist (are known about) but does not check
whether a class is DECLARED - there's a difference. Note the
documentation sentence This is useful for checking whether a class is
defined and only including it if it is.

So if you have a master imports a manifest with a class called foo
then:

if defined(foo) == true (always)
if tagged(foo) == true (only if your node has 'include foo')

What Felix says about the defined() function I beleive only applies to
checking for specific resources, which depends on the specific parse
order (and all you have to do is run 'puppetd --noop --test --
evaltrace' to see the parse order changes ALL the time).

On Oct 15, 8:40 am, walexey wale...@gmail.com wrote:
 Hello everybody!
 How can i determinate from one class if another class applied to the
 this node?

-- 
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] Autoloading and nested classes

2010-10-15 Thread Felix Frank
Hi,

I'm transitioning a large-ish manifest from plain files with lots of
import statements to modules.
I used to heavily rely on a pattern like the following

class feature {
  ...
  class specialized inherits feature {
...
class more_special inherits specialized {
  ...
}
  }
}

So on a central location I can include feature, but certain nodes will
want to include feature::specialized and some even include
feature::specialized::more_special.

For the modules transition, I see fit to prepend all classes with their
module name, so if the module is named m_feature, I'll substitute
include feature with include m_feature::feature, which works.

What won't work are the nested classes (e.g. include
m_feature::feature::specialized).

Is there a way I can maintain this naming scheme when using modules and
autoloading? (I guess dumping everything in init.pp would work, but I'd
prefer not to have to resort to that.)

TIA,
Felix

-- 
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] First boot with Puppet

2010-10-15 Thread Matt Wallace
On Thursday 14 Oct 2010 23:49:11 Michal Ludvig wrote:
   On 10/15/2010 08:36 AM, Arnau Bria wrote:
  On Thu, 14 Oct 2010 23:47:16 +1300
  Michal Ludvig wrote
  
  1) kickstart installs the system, including puppet from our local repo
  2) after reboot I have to login and set the hostname and IP
  
  kickstart is able to configure your network / hostname. Why don't you
  use that feature?
 
 Because we've got a common kickstart for all installs, not a per-host
 kickstart. It only installs the very core system and the rest is brought
 in and configured by puppet.
 
  We're moving to cobbler,
 
 Looks like cobbler is the prefered method here. I'll give it a try.
 
 Thanks for all the responses!

You can also use Cobbler for ext-lookups and therefore assign classes and 
modules to systems from the cobbler web interface.

It works really well! :)

Matt.

-- 
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: how can i determinate from one class if another class applied?

2010-10-15 Thread Bruce Richardson
On Fri, Oct 15, 2010 at 01:04:29AM -0700, luke.bigum wrote:
 Someone correct me if I am wrong, but defined() is useful for checking
 if types or classes exist (are known about) but does not check
 whether a class is DECLARED - there's a difference. Note the
 documentation sentence This is useful for checking whether a class is
 defined and only including it if it is.

You're not wrong.  That said, I'd actually advice the OP against trying
this kind of thing.  Generally, I find specific class dependencies are
something to avoid.  The only place I tolerate them is in role
classes, which is where I usually set up any dependencies between
modules that are required, and there I don't need to use defined() or
tagged() to check them, because I know precisely which classes have been
included.

Every time you add a dependency to a specific class, you cause problems
for the person who finds a need to creat a new class that inherits from
it.  That person will often be you and kicking yourself is not
rewarding.  Looking at my manifests and modules, the *only* places I
have a dependency on a named class is in my site::role classes and in
the samba::packages class where the named classes are internal to the
samba module and contain collections of packages (and their
dependencies) relevant to specific versions of Samba.

-- 
Bruce

Explota!: miles de lemmings no pueden estar equivocados.

-- 
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] stages examples/advices

2010-10-15 Thread Arnau Bria
Hi all,

I'm really interested in new metaparameter stage. 

I've been studying Ryan's example:
http://www.personal.psu.edu/ryc108/blogs/puppetmaster/2010/10/automating-shibboleth-idp-builds-using-stages.html

and I was able to define and use stages in my catalogue.

But now I'd like to improve my knowledge of this parameter and I have
some questions about it:


1.-) Stage vs require Class. May we say that stages are groups of class
requires? So a simple/basic example:

class A {
require class B
}

class B{
require class C
}

Is like defining :

Stage[pre] - Stage[main] - Stage[post]

class { A: stage = pre }
class { B: stage = main }
class { C: stage = post }

2.-) Metaparameter use. In Ryan's example seems that stage is added
to class when defining the node. But may I add stage directly when
defining the class? if yes, how? (I have not been able to find the
correct syntax... :-( ).

Is this correct?

class A {
stage = pre

file { ...
}
service { ...
}
}


3.-) Stage order. 
I had an old syntax order definiton which worked fine:

 class orden {
-stage { 'repos':
-before  = Stage['main'];
-'os':
-require = Stage['repos'];
-'basic':
-require = Stage['os'];
-'gLite':
-require = Stage['basic'];
-'post':
-require = Stage['gLite'];
-}

but when applying new syntax:

Stage[pre] - Stage[main] - Stage[post]


class orden {
Stage['repos'] - Stage['os'] - Stage['main'] - Stage['gLite'] - 
Stage['post']
}

puppet complains:

 Could not find stage repos specified by Class[Sl5_computing_repos]  ...

am I forgetting something in my definiton?

TIA,
Arnau

-- 
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] stages examples/advices

2010-10-15 Thread Bruce Richardson
On Fri, Oct 15, 2010 at 12:19:36PM +0200, Arnau Bria wrote:
 1.-) Stage vs require Class. May we say that stages are groups of class
 requires? So a simple/basic example:
 
 class A {
 require class B
 }
 
 class B{
 require class C
 }
 
 Is like defining :
 
 Stage[pre] - Stage[main] - Stage[post]
 
 class { A: stage = pre }
 class { B: stage = main }
 class { C: stage = post }

Is it the same?  I haven't investigated stages, but I don't think it
would be.  In your first example, Class B will not be evaluated if any
resource in class A fails.  Is this true in the second example?  I
actually hope not; if it is true, stages have to be used very carefully
indeed.

-- 
Bruce

What would Edward Woodward do?

-- 
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] variable modules per client

2010-10-15 Thread Felix Frank
On 10/14/2010 05:06 AM, Nigel Kersten wrote:
 On Wed, Oct 13, 2010 at 10:56 AM, EAMiller thn...@gmail.com wrote:
 Hi all - new to puppet - and have gotten as far as configuring a
 staging server with two of our web apps through puppet.

 Now we plan to have developer workstations get dev environments
 through puppet. We have ~8 developers and ~5 web apps we develop. Not
 every developer works on every project.

 From my limited experience with puppet I plan to:
  1. Ask each developer what their workstation is called, and which
 apps they work on
  2. Create a stanza in node.pp along the lines of:

 node devstation-bob inherits default {
include appB;
include abbE;
 }

 This is fine for my purposes - but I wonder if there's a better way -
 I can't imagine scaling the up too far.
 
 Write a custom fact that reads a simple data source like a text file
 that the developers can write to like:
 
 (tested briefly, may have bugs)
 
 webapps_conf = /etc/webapps.conf
 
 if File.readable?(webapps_conf)
   f = File.open(webapps_conf, 'r')
   f.readlines.each do |line|
 webapp = line.chomp
 Facter.add(webapp_#{webapp}_enabled) do
   setcode do
 true
   end
 end
   end
   f.close
 end
 
 and then you'll have a data source the developers can control that
 specifies what apps they work on, and you can do conditional work in
 your manifests based upon these values.
 
 if $webapp_bar_enabled == true {
   include webapps::bar
 }

Hi,

custom facts sure are elegant, but isn't this problem exactly what
extlookup has been conceived for?

This is an actual question I'm asking since i've not yet managed to
properly acquaint myself with the concept.

Regards,
Felix

-- 
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] stages examples/advices

2010-10-15 Thread Mohit Chawla
On Fri, Oct 15, 2010 at 4:46 PM, Bruce Richardson itsbr...@workshy.orgwrote:

 On Fri, Oct 15, 2010 at 12:19:36PM +0200, Arnau Bria wrote:
  1.-) Stage vs require Class. May we say that stages are groups of class
  requires? So a simple/basic example:
 
  class A {
  require class B
  }
 
  class B{
  require class C
  }
 
  Is like defining :
 
  Stage[pre] - Stage[main] - Stage[post]
 
  class { A: stage = pre }
  class { B: stage = main }
  class { C: stage = post }

 Is it the same?  I haven't investigated stages, but I don't think it
 would be.  In your first example, Class B will not be evaluated if any
 resource in class A fails.  Is this true in the second example?  I
 actually hope not; if it is true, stages have to be used very carefully
 indeed.

 --
 Bruce

 What would Edward Woodward do?

 --
 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.compuppet-users%2bunsubscr...@googlegroups.com
 .
 For more options, visit this group at
 http://groups.google.com/group/puppet-users?hl=en.


Also, apart from what Bruce mentioned, as a simple example, if you want to
update your repositories, say through apt-get update, then using stages  is
more easier than figuring out the appropriate class require or include
statements (you can find a solution like this though in the mailing lists,
probably better than using stages, I haven't investigated). So, you can have
a module be executed before the main stage, which just does apt-get update.
Doing something similar through require class statements would be
cumbersome IMO.

My guess is that using both, stages and generic concepts according to the
requirement makes sense.

-- 
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] templating woes....

2010-10-15 Thread Christian Kauhaus
Am 15.10.2010 00:42, schrieb Jacob Helwig:
 % nagios_conf_dirs.each do |dir| -%
 cfg_dir=%= dir %
 % end -%

I would rather prefer the for notation in templates, since it is
easier to read when interspersed with other text:

| % for dir in nagios_conf_dirs -%
| cfg_dir=%= dir %
| % end -%


Regards,
  Christian

-- 
Dipl.-Inf. Christian Kauhaus  · k...@gocept.com · systems administration
gocept gmbh  co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 11 · fax +49 345 1229889 1
Zope and Plone consulting and development

-- 
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: ANNOUNCE: Puppet 2.6.2 released!

2010-10-15 Thread Todd Zullinger
Chuck wrote:
 I have migrated my EL5 servers from 0.25.5 to 2.6.2 and have no
 issues now.  I did have some issues with 2.6.1 which are now fixed.
 I would like to see 2.6.2 in the official EPEL repository.

Thanks for the feedback Chuck!  Were any changes to your config or
manifests required (aside from changes to silence deprecation
warnings)?

-- 
ToddOpenPGP - KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
~~
Many a person seems to think it isn't enough for the government to
guarantee him the pursuit of happiness. He insists it also run
interference for him.
-- Anonymous



pgpGJSpDBVBNZ.pgp
Description: PGP signature


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

2010-10-15 Thread Todd Zullinger
Ben wrote:
 I did a server and all client upgrade to your 2.6.1 package from
 your 0.25.5 package without any problems w/ your packaging.
 Install, init scripts, etc all work fine.

 And now the upgrade to 2.6.2 looks good after 5 whole minutes.

 Server: CentOS 5.5
 Clients: CentOS 5.x, RHEL 5.x, Fedora 8 and 13.

 My only issues were some syntax in my manifests that 2.6.1 didn't
 like, but 0.25.5 silently ignored and a significant increase in
 compile times.

Thanks Ben!  Were the changes to your manifests required to get puppet
to run at all or just do silence new or deprecation warnings?

-- 
ToddOpenPGP - KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
~~
Excess on occasion is exhilarating. It prevents moderation from
acquiring the deadening effect of a habit.
-- W. Somerset Maugham



pgpckXAR9YnRP.pgp
Description: PGP signature


[Puppet Users] Re: how can i determinate from one class if another class applied?

2010-10-15 Thread walexey
I have following problem:
defined class ldap-client, which install and configure ldap on _all_
nodes. there is file[/etc/nsswitch.conf]. it add 'ldap' to
nsswitch.conf
defined class winbind, which install and configure winbind on _some_
nodes. and it need also to change nsswitch.conf, adding 'winbind'
there.

i can't imaging something better than add

   if tagged(winbind) {
$winbind = 'winbind'
} else {
$winbind = ''
}
in ldap-client class

and add
passwd: files %= winbind % ldap
to nsswithch.conf template.

can you show me the right way?

btw, my solution don't work. tagged(winbind) in ldap-client return
always false, but winbind class runs ok.

On 15 окт, 13:40, Bruce Richardson itsbr...@workshy.org wrote:
 On Fri, Oct 15, 2010 at 01:04:29AM -0700, luke.bigum wrote:
  Someone correct me if I am wrong, but defined() is useful for checking
  if types or classes exist (are known about) but does not check
  whether a class is DECLARED - there's a difference. Note the
  documentation sentence This is useful for checking whether a class is
  defined and only including it if it is.

 You're not wrong.  That said, I'd actually advice the OP against trying
 this kind of thing.  Generally, I find specific class dependencies are
 something to avoid.  The only place I tolerate them is in role
 classes, which is where I usually set up any dependencies between
 modules that are required, and there I don't need to use defined() or
 tagged() to check them, because I know precisely which classes have been
 included.

 Every time you add a dependency to a specific class, you cause problems
 for the person who finds a need to creat a new class that inherits from
 it.  That person will often be you and kicking yourself is not
 rewarding.  Looking at my manifests and modules, the *only* places I
 have a dependency on a named class is in my site::role classes and in
 the samba::packages class where the named classes are internal to the
 samba module and contain collections of packages (and their
 dependencies) relevant to specific versions of Samba.

 --
 Bruce

 Explota!: miles de lemmings no pueden estar equivocados.

-- 
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: ANNOUNCE: Puppet 2.6.3 - Release Candidate 1 available!

2010-10-15 Thread Todd Zullinger
James Turnbull wrote:
 All too quickly we're back with a maintenance release: 2.6.3.  This
 release addresses some issues in the 2.6.2 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.

-- 
ToddOpenPGP - KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
~~
I personally think we developed language because of our deep need to
complain.
-- Lily Tomlin



pgpoDnWnNLVlv.pgp
Description: PGP signature


Re: [Puppet Users] First boot with Puppet

2010-10-15 Thread Todd Zullinger
Steven VanDevender wrote:
 I'm not our local Cobbler/Kickstart expert, but the guy who created
 our Cobbler installation even figured out how to script a new host's
 initial registration with the puppetmaster (I believe the key idea
 is that there is a command-locked ssh identity key that allows the
 host to get in to the puppetmaster and issue the right puppetca
 command).  I'd have to do some digging to look up the specifics.

I handle this in my environment by generate the new host key on the
puppetmaster and packaging that into an rpm, which gets installed in
the kickstart along with puppet.  That way an initial puppet run can
happen during install.  Doesn't exactly scale, unless you automate the
key generation though, like you mentioned doing.

-- 
ToddOpenPGP - KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
~~
There are severe limits to the good that the government can do for the
economy, but there are almost no limits to the harm it can do.
-- Milton Friedman. Nobel laureate



pgpjSQTb3suHT.pgp
Description: PGP signature


Re: [Puppet Users] Re: how can i determinate from one class if another class applied?

2010-10-15 Thread Bruce Richardson
On Fri, Oct 15, 2010 at 07:06:52AM -0700, walexey wrote:
 i can't imaging something better than add
 
if tagged(winbind) {
 $winbind = 'winbind'
 } else {
 $winbind = ''
 }
 in ldap-client class
 
 and add
 passwd: files %= winbind % ldap
 to nsswithch.conf template.
 
 can you show me the right way?
 

There is more than one way to do this.

A simple way would be to use a variable to indicate whether you want
winbind integration.  Then anything that needs to know whether winbind
is active can just check the variable - including the piece of code
where you decide whether nor not to include the winbind class/module.

The canonical Puppet way of dealing with it is to write a custom
resource to manage nsswitch.conf.  How good are your ruby skills?

I have found a way to abuse virtual define-based resources so that you
can effectively write your own custom resources in the Puppet DSL,
rather than using Ruby, which I consider to be overkill for a case as
simple as this.  I will write it up when I have a moment, this weekend.
Meanwhile, if you aren't great at Ruby, I suggest the simple method I
described first.


node host.on.which.I.want.winbind.active {
$winbind_integration = true
include site::role::server
}

class site::role::server {
if $winbind_integration {
include samba::winbind
}
}


 nsswitch.conf.erb 

passwd: files % if winbind_integration == true %winbind% end % ldap


 nsswitch.conf.erb 

It's not the most elegant solution (not the last bit, anyway) but it
works and if you can't trust yourself to set the right variables in the
correct hosts, who can you trust?

-- 
Bruce

Bitterly it mathinketh me, that I spent mine wholle lyf in the lists
against the ignorant.  -- Roger Bacon, Doctor Mirabilis

-- 
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] variable modules per client

2010-10-15 Thread Nigel Kersten
On Fri, Oct 15, 2010 at 5:05 AM, Felix Frank
felix.fr...@alumni.tu-berlin.de wrote:
 On 10/14/2010 05:06 AM, Nigel Kersten wrote:
 On Wed, Oct 13, 2010 at 10:56 AM, EAMiller thn...@gmail.com wrote:
 Hi all - new to puppet - and have gotten as far as configuring a
 staging server with two of our web apps through puppet.

 Now we plan to have developer workstations get dev environments
 through puppet. We have ~8 developers and ~5 web apps we develop. Not
 every developer works on every project.

 From my limited experience with puppet I plan to:
  1. Ask each developer what their workstation is called, and which
 apps they work on
  2. Create a stanza in node.pp along the lines of:

 node devstation-bob inherits default {
    include appB;
    include abbE;
 }

 This is fine for my purposes - but I wonder if there's a better way -
 I can't imagine scaling the up too far.

 Write a custom fact that reads a simple data source like a text file
 that the developers can write to like:

 (tested briefly, may have bugs)

 webapps_conf = /etc/webapps.conf

 if File.readable?(webapps_conf)
   f = File.open(webapps_conf, 'r')
   f.readlines.each do |line|
     webapp = line.chomp
     Facter.add(webapp_#{webapp}_enabled) do
       setcode do
         true
       end
     end
   end
   f.close
 end

 and then you'll have a data source the developers can control that
 specifies what apps they work on, and you can do conditional work in
 your manifests based upon these values.

 if $webapp_bar_enabled == true {
   include webapps::bar
 }

 Hi,

 custom facts sure are elegant, but isn't this problem exactly what
 extlookup has been conceived for?

 This is an actual question I'm asking since i've not yet managed to
 properly acquaint myself with the concept.

Not necessarily.  This is about providing local controls so machine
owners can manipulate behavior, rather than a central authoritative
store.

-- 
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] puppet-lvm and volume group issues

2010-10-15 Thread ollies...@googlemail.com
Trying to setup a volume group with puppet lvm and this:-
volume_group { my_vg:
   ensure = present,
   physical_volumes = /dev/sdb /dev/sdc /dev/sdd,
   require = [ Physical_volume[/dev/sdb],
   Physical_volume[/dev/sdc],
   Physical_volume[/dev/sdd]
   ]
}

Fails with this in the debug output:-
debug: volume_group provider lvm: Executing '/usr/sbin/vgcreate my_vg /
dev/sdb /dev/sdc /dev/sdd'
/usr/lib/ruby/site_ruby/1.8/puppet/provider.rb:133:in `vgcreate'
/usr/lib/ruby/site_ruby/1.8/puppet/provider.rb:140:in `vgcreate'
err: //myvg::setup/myvg::disks/Volume_group[my_vg]/ensure: change from
absent to present failed: Execution of '/usr/sbin/vgcreate my_vg /dev/
sdb /dev/sdc /dev/sdd' returned 1280: File descriptor 8 (/tmp/puppet.
15759.0) leaked on vgcreate invocation. Parent PID 15759: /usr/bin/
ruby

If I do it with a single physical volume it's fine, and if I run the
command from the command line it's fine also.

Any ideas ?

Thanks

-- 
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: Autoloading and nested classes

2010-10-15 Thread Bill Proud
Hi,

If you nest classes like that then you probably do have to dump
everything in init.pp

If however you split the classes and define each in a separate file
with the name class.pp in the manifests directory of the module, you
will be able to include m_feature::specialized.

No problem with the inheritance - I do pretty much the same thing.


Bill

On Oct 15, 10:05 am, Felix Frank felix.fr...@alumni.tu-berlin.de
wrote:
 Hi,

 I'm transitioning a large-ish manifest from plain files with lots of
 import statements to modules.
 I used to heavily rely on a pattern like the following

 class feature {
   ...
   class specialized inherits feature {
     ...
     class more_special inherits specialized {
       ...
     }
   }

 }

 So on a central location I can include feature, but certain nodes will
 want to include feature::specialized and some even include
 feature::specialized::more_special.

 For the modules transition, I see fit to prepend all classes with their
 module name, so if the module is named m_feature, I'll substitute
 include feature with include m_feature::feature, which works.

 What won't work are the nested classes (e.g. include
 m_feature::feature::specialized).

 Is there a way I can maintain this naming scheme when using modules and
 autoloading? (I guess dumping everything in init.pp would work, but I'd
 prefer not to have to resort to that.)

 TIA,
 Felix

-- 
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.2 released!

2010-10-15 Thread Patrick

On Oct 15, 2010, at 7:05 AM, Todd Zullinger wrote:

 Ben wrote:
 I did a server and all client upgrade to your 2.6.1 package from
 your 0.25.5 package without any problems w/ your packaging.
 Install, init scripts, etc all work fine.
 
 And now the upgrade to 2.6.2 looks good after 5 whole minutes.
 
 Server: CentOS 5.5
 Clients: CentOS 5.x, RHEL 5.x, Fedora 8 and 13.
 
 My only issues were some syntax in my manifests that 2.6.1 didn't
 like, but 0.25.5 silently ignored and a significant increase in
 compile times.
 
 Thanks Ben!  Were the changes to your manifests required to get puppet
 to run at all or just do silence new or deprecation warnings?

I heard something in IRC that made me think that /etc/puppet/namespaceauth.conf 
doesn't deprecate gracefully.  I've never gotten around to testing it though.  
Specifically, in puppet.conf, you can still use the old section names, but I 
had heard that the old setion names don't work in namespaceauth.conf.

-- 
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] alternate hostnames, keys, and certs

2010-10-15 Thread Nigel Kersten
On Thu, Oct 14, 2010 at 10:23 PM, Don Jackson
puppet-us...@clark-communications.com wrote:

 I'd like to extend my use of puppet to manage my desktop/notebook macs.

 As others have noted, the hostname of the mobile machines tends to change 
 frequently, so basing the node name (in my site.pp) and the corresponding 
 cert and private key names seems to be an issue.

 I seem to recall somewhat talking about this at Puppet Camp last week…..

 Generally my signing strategy is always to generate new certs and private 
 keys on the puppetmaster, and install them on the client machine as part of 
 the initial install (hopefully automated).

 Can I generate a cert based on the macaddress of the new machine?

You're better off using UUIDs in my opinion.

man uuidgen


 I tried this, and puppetca --generate made the certs and key without 
 complaining.

 Presumably I can install these on my client machine.

 If so, would I then run puppetd with a the --fqdn argument, and give the mac 
 address there?

no, you want to use 'certname', not fqdn.




 And what would the name of this machine be in a node specification in the 
 manifest?

 I put
        node '00:1f:5b:f8:23:f8' { }

 in my manifest, and it was very unhappy.

 Any advice about how I can accomplish what I am trying to do?

 Thanks,

 Don



 --
 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.





-- 
nigel

-- 
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] alternate hostnames, keys, and certs

2010-10-15 Thread Nigel Kersten
On Fri, Oct 15, 2010 at 11:57 AM, Nigel Kersten nig...@google.com wrote:
 On Thu, Oct 14, 2010 at 10:23 PM, Don Jackson
 puppet-us...@clark-communications.com wrote:

 I'd like to extend my use of puppet to manage my desktop/notebook macs.

 As others have noted, the hostname of the mobile machines tends to change 
 frequently, so basing the node name (in my site.pp) and the corresponding 
 cert and private key names seems to be an issue.

 I seem to recall somewhat talking about this at Puppet Camp last week…..

 Generally my signing strategy is always to generate new certs and private 
 keys on the puppetmaster, and install them on the client machine as part of 
 the initial install (hopefully automated).

 Can I generate a cert based on the macaddress of the new machine?

 You're better off using UUIDs in my opinion.

 man uuidgen

I should have also mentioned that for Mac clients, there's a system
hardware UUID that persists across reinstalls, and that may be useful.

system_profiler SPHardwareDataType

or

facter sp_platform_uuid

This is the same UUID used to composite ByHost preferences on OS X,
and any recent vintage Mac should have it.



 I tried this, and puppetca --generate made the certs and key without 
 complaining.

 Presumably I can install these on my client machine.

 If so, would I then run puppetd with a the --fqdn argument, and give the mac 
 address there?

 no, you want to use 'certname', not fqdn.




 And what would the name of this machine be in a node specification in the 
 manifest?

 I put
        node '00:1f:5b:f8:23:f8' { }

 in my manifest, and it was very unhappy.

 Any advice about how I can accomplish what I am trying to do?

 Thanks,

 Don



 --
 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.





 --
 nigel

 --
 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.



[Puppet Users] Dashboard and passenger under /dashboard path

2010-10-15 Thread Radek
I'm currently running a dashboard as a separate process and have a
proxy in apache with authentication to access as 
http://puppet.ourhost.com/dashboard/

I have to start the dashboard with -P /dashboard option to make it
work.

I'm wondering how to achieve this with passenger. The config I found
in ext/passanger seems to run the dashboard under the root of the
virtual host.

--
Radek

-- 
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] Professional Services Engineers at Puppet Labs

2010-10-15 Thread James Turnbull
Hi all

Puppet Labs is expanding again and we're hiring Professional Services
staff.  We're looking for two senior Professional Services Engineers
with Puppet and configuration management experience highly desirable.

You can read about the roles at:

http://puppetlabs.jobscore.com/jobs/puppetlabs/professional-services-engineer/cFchPSZeyr35ZSeJe4bk1X

Feel free to email or call in any questions to me directly!

Regards

James Turnbull

-- 
Puppet Labs - http://www.puppetlabs.com
C: 503-734-8571

-- 
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: ANNOUNCE: Puppet 2.6.2 released!

2010-10-15 Thread Chuck
No changes were needed in my configurations. Other than the expected
deprecation warnings.

On Oct 15, 9:02 am, Todd Zullinger t...@pobox.com wrote:
 Chuck wrote:
  I have migrated my EL5 servers from 0.25.5 to 2.6.2 and have no
  issues now.  I did have some issues with 2.6.1 which are now fixed.
  I would like to see 2.6.2 in the official EPEL repository.

 Thanks for the feedback Chuck!  Were any changes to your config or
 manifests required (aside from changes to silence deprecation
 warnings)?

 --
 Todd        OpenPGP - KeyID: 0xBEAF0CE3 | URL:www.pobox.com/~tmz/pgp
 ~~
 Many a person seems to think it isn't enough for the government to
 guarantee him the pursuit of happiness. He insists it also run
 interference for him.
     -- Anonymous

  application_pgp-signature_part
  1KViewDownload

-- 
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.