push a few config files to dozen or so servers

Paul Mather paul at gromit.dlib.vt.edu
Thu Feb 5 17:34:03 UTC 2015


On Feb 5, 2015, at 10:47 AM, Greg Byshenk <freebsd at byshenk.net> wrote:

> On Thu, Feb 05, 2015 at 03:07:46PM +0100, Guido Falsi wrote:
>> On 02/05/15 13:20, Ronald Klop wrote:
>>> On Thu, 05 Feb 2015 13:02:34 +0100, Marko Cupa?? <marko.cupac at mimar.rs>
> 
>>>> thanks to virtualization, my fleet of FreeBSD hosts have grown to more
>>>> than dozen, and it still grows. There are some files that need to be
>>>> identical on all of them (aliases, sudoers, root crontab, pkg repo
>>>> files etc.).
>>>> 
>>>> I was looking at puppet and cfengine but learning and implementing those
>>>> seem like an overkill for my purpose.
>>>> 
>>>> Are there any other elegant solutions which can help me achieve my goal?
>>> 
>>> Cron and rsync.
>>> Or create a pkg which you install on all servers.
>> 
>> He could also use an VCS system (subversion, git, fossil, whatever) and
>> some scripts.
>> 
>> This adds the advantage of having history.
> 
> If it's really limited, you should be able to wrap svn/git
> and scp/rsync in python/bash/<tool of your choice> and have
> something that works.
> 
> 
>>> Just some quick ideas. In the end you just want to use something like
>>> puppet. :-)
>> 
>> I Agree, in the end that kind of solution is definitely more robust.
> 
> But, agreeing here, as well, there are some real advantages
> in ensuring consistency, etc. with something like puppet.
> 
> And a basic, minimalist puppet is pretty basic and minimal.
> Puppet can get very complex, but that comes from managing
> complex environments.


I'm familiar with Puppet and agree with your observations above.  One 
thing that concerns me with Puppet, though, is that Puppet is not 
considered as a Tier 1 platform by Puppet Labs and so FreeBSD support 
is inconsistent.  With the current emphasis on modules and the Puppet 
Forge, the focus on the RedHat and Debian OS families in many modules 
makes it harder for FreeBSD users to use Puppet without reinventing the 
wheel.  Unfortunately, with Puppet, a lot of the "magic" happens under 
the covers in these modules, via Types and Providers, and if they don't 
support FreeBSD then they're not much use.  (This is another way of 
saying, "Puppet works great when it works.":)  I know this is a 
manifestation of the general "Linuxism" of *nix, so I know I'm swimming 
against the tide in a sense in hoping for better support. :-)

However, I don't get a sense of the vibrancy of the community around 
FreeBSD and Puppet.  Is it thriving?  (Because Puppet abstracts away 
the OS from a sysadmin point of view, people might argue, "why run 
FreeBSD if you're using Puppet?")  Also, Puppet seems to have evolved 
rather than being the product of a clean, simple design.  (Maybe this 
is endemic to any Ruby-based project.:)  The orchestration (e.g., 
Marionette Collective) seems a bit bolted-on to me.

Despite all that, there is still lots and lots to recommend Puppet.  
However, if there's another configuration management framework that is 
more "FreeBSD-friendly," then it would be good to know of that.  With 
large-scale system installations becoming more and more prevalent, so 
too does the importance of configuration management and orchestration 
systems.  I've been looking at Salt recently, which I've heard is 
supposed to be quite "FreeBSD-friendly."  Does anyone know of any 
others that have a great FreeBSD community and support behind them?

Cheers,

Paul.



More information about the freebsd-stable mailing list