On 5/23/2011 3:12 PM, la Bigmac wrote:
Hello list,

Seems to be a few people recently wanting to discuss Gentoo as a server
:-) so thought I would pose a question that has been bugging me.

What would you guys recommend to manage multiple servers and the package
versions?

While I have a central emerge server (*rsync)* and sync all of my
servers to it I still manually update the packages.

Example, openssh how should I be updating openssh on all of my servers
other than logging onto each one in turn and running emerge openssh.

Should I cron schedule an /emerge/ --/update world /and control the
repository of packages or is there a more elegant solution?

I've become a huge Puppet nerd over the last year. I'm not managing Gentoo on it, but it's supported and Puppet Labs does seem to fix Gentoo bugs in a reasonable time.

First you'll need Ruby 1.8.7 as 1.9.2 support in Ruby isn't quite there yet. I'd also run unstable for Puppet and Facter. You're better off jumping in at 2.6.x than 0.25.x.

Puppet requires facter which is very cool in it's own right. It's local discovery of the OS and those facts about your system can be used in templates to make decisions. Here's an example for setting higher thresholds on my large machines.

<% if processorcount.to_i >= 12 then -%>

and here's an example of a module to make sure sudo is the latest version and add a config file for my local sudoers additions.

class sudo {
  package { "sudo": ensure => latest, }

  file { "/etc/sudoers.d/my_additions":
    ensure  => present,
    owner   => root, group => root, mode => 440,
    require => Package["sudo"],
    source  => "puppet:///modules/sudo/my_additions",
  }
}

In order to make this work you'd really need to have modules for each package in your world file and set ensure => latest rather than just present. However it does make it easy to keep configs, users, settings, which packages in sync across machines.

That's Puppet in a very very tiny nutshell. They are some unique challenges with using it well with Gentoo, but it would ultimately make your system easier to reproduce.

kashani

Reply via email to