+1 for foreman ;)

generally, external nodes parameters can be complex data structures (e.g.
arrays and hashs) but you should know what you are doing ;)

one solution would be to define variables in difference levels, e.g. put
your dns settings in the domain/subnet level, put your ipaddress in the
host.

foreman supports this kind of parameter merge (based on all kind of criteria
- see
http://theforeman.org/wiki/foreman/External_Nodes#Define-classes-and-variables-per-host

cheers,
Ohad


On Thu, Dec 3, 2009 at 2:01 AM, jw2dot...@gmail.com <jw2dot...@gmail.com>wrote:

> There's been off-and-on discussion on this list about external nodes,
> and it's provided a lot if insight as to how others are using this
> feature.  We're trying to move toward it, but struggling with how to
> manage all the parameters that we use in our node manifests today.
>
> All of our modules and manifests are in git with separate puppet
> environments (development, testing and production).  However, this
> also includes all of our node definitions, which is the root of the
> problem.  What we're trying to avoid is having to commmit changes in
> git just to add a new server.  Adding a new server should not require
> touching the puppetmaster (other than a new cert).
>
> Below is snippit of a node definition for one of our J2EE application
> servers.  We use modules for just about everything, but each module
> typically has a lot of parameters passed to it...
>
> node app1.example.com {
>
>   network::interface { "bond0":
>     address => "192.168.28.71",
>     gateway => "192.168.28.1",
>     onboot  => "yes",
>     master  => "yes",
>     slave   => ["eth0", "eth1"],
>     vlan    => "no",
>     netmask => "255.255.255.0",
>   }
>   network::interface { "bond0:1":
>     address => "192.168.28.72",
>     netmask => "255.255.255.0",
>     require => Network::Interface["bond0"],
>   }
>   network::route { "eth0":
>      gateway => ["192.168.12.1",   "192.168.12.1",  "192.168.12.1"],
>      netmask => ["255.255.255.0",  "255.255.255.0", "255.255.255.0"],
>      address => ["192.168.16.21",  "192.168.16.22",
> "192.168.16.177"],
>   }
>   mount { mymount:
>      ensure    => mounted,
>      device    => 'nfshost:/path/to/something',
>      fstype    => nfs,
>      name      => '/nfs',
>      dump      => "1",
>      pass      => "2",
>      options   =>
> 'rw,rsize=32768,wsize=32768,hard,tcp,intr,nfsvers=3',
>   }
>   tomcat::instance { "my-tomcat-instance":
>    address  => "192.168.28.106",
>    ensure   => "present",
>    version  => "5.",
>    ssl      => false,
>    dmz      => false,
>    shared   => true,
>    vhosts   =>
> ["localhost","vhost1.example.com","vhost2.example.com"],
>    cluster  => "true",
>    mport    => ["45574", "45575", "45576"],
>    lport    => ["4018","4019","4020"],
>   }
>   jboss::instance { "my-jboss-instance":
>     ensure    => present,
>     ip        => "192.168.18.56",
>     opts      => "-server -Xms192M -Xmx1024M -
> Dapache.axis.admin.host.allow=\$SERVER_IP,
>     mclose    => "8186",
>     tomcatver => "50",
>     jbossver  => "3",
>     lvmname   => "myjb",
>   }
> }
>
> Leaning toward using Cobbler to hold this data, since we use it
> anyway.  Adding puppet classes to a Cobbler system is easy, but adding
> all these parameters just seems like a daunting task.  LDAP or Foreman
> are possibilities as well.
>
> Jason
>
> --
>
> 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<puppet-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.


Reply via email to