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