Geekzone: technology news, blogs, forums
Welcome Guest.
You haven't logged in yet. If you don't have an account you can register now.

677 posts

Ultimate Geek


# 94647 15-Dec-2011 22:50
Send private message

Hi all.
I have been looking at many and varied ways of managing the configuration of  large number of hosts, invariably I am drawn back to either cfengine3 or Puppet as being reasonable options.
Both have good and bad qualities, cfengine for example has a learning curve that makes hard to sell in any meaningful way to an ops team.

I was pointed towards Chef today though and am left wondering if anyone is using it.

It seems sane and usable, so i must be missing something.

So the question is, has anyone here used it before?

I am going to do an eval on it so I will post what i find but actual accounts of how it has worked would be very useful.


meat popsicle

Create new topic
3 posts

Wannabe Geek

  # 558554 16-Dec-2011 07:56
Send private message


(disclaimer: I work at CFEngine, but I'll try to be balanced here)

Chef is a nice and mature system (and they are very nice guys - I got to meet several of them last week at LISA'11 in Boston). One of its very strong points is that it's very approachable and easy to get started, and they have a good collection of "cookbooks" for managing many different components. One of its disadvantages is that, being written in Ruby, it requires Ruby and a lot of dependencies to be installed. On a clean Ubuntu system, running "apt-get install chef chef-server" brings in around 290 packages as dependencies. To install just the client ("apt-get install chef") requires installing around 50 packages as dependencies.

On the other hand, in my opinion, CFEngine's reputation for having a steep learning curve is greatly exaggerated, particularly in recent releases. Since CFEngine 3.2.0, you can bootstrap both servers and clients with a single command (cf-agent --bootstrap), which gives you a bare-ones install with policies that do nothing except update themselves. So you can easily install CFEngine and have it running without any adverse effects, and then gradually add policies that manage different parts of the system. CFEngine is very lightweight - its only dependencies are OpenSSL, PCRE and a BerkeleyDB (or equivalent, I prefer using Tokyo Cabinet).

For learning CFEngine, I would suggest starting with the Concept Guide and the Quick Start Guide. Neil Watson's CFEngine 3 tutorial is also very good. And if I may do a shameless plug, my book "Learning CFEngine 3" is now available as an Early Release, which contains already all the "basic concepts" and "getting started" chapters of the book, as well as some of the more advanced topics.

All the documents I mentioned (and many others) can be found from The forum at is a very friendly place to ask questions. For information about the book see

Hope this helps,
--Diego Zamboni

677 posts

Ultimate Geek


  # 558560 16-Dec-2011 08:22
Send private message

Thanks for that.
I must admit i used cfengine3 before it had the --bootstrap option, so it was a fair amount of work to get something useful, and functional.

I am not so worried about the learning curve for myself, more for the people that would end up using this on a daily basis, or have to trouble shoot it.

I hear you on the dependency tree, there is also a stigma to ruby, as there is any language, can generally start a religious war of what the superior language is.

All accounts welcome, even if they may be biased;)

meat popsicle


3 posts

Wannabe Geek

  # 558563 16-Dec-2011 08:49
Send private message

Always happy to help. Sorry for the lack of links in my replies, but being new here, the forum doesn't yet let me post links.

About ease of maintenance: one of the nice new things in CFEngine 3 is the ability to compose promises into higher-level, reusable blocks. This makes it much easier to write policies and to understand them, since you can look at the policies only at the level that is necessary, hiding lower-level details. There is already a collection of pre-made blocks in the CFEngine standard library ( )

For example, if you want to edit the sshd configuration file, you can use a bundle like the one I posted here: . The edit_sshd() bundle uses the set_config_values() bundle, which is the one that knows how to edit the file (and in turn uses stuff from the stdlib). But at the top level, you use it like this:

bundle agent configfiles
"sshdconfig" string => "/etc/ssh/sshd_config";

# SSHD configuration to set
"sshd[Protocol]" string => "2";
"sshd[X11Forwarding]" string => "yes";
"sshd[UseDNS]" string => "no";

"sshd" usebundle => edit_sshd("$(sshdconfig)", "configfiles.sshd");
Which is very clear and easy to understand.

Best regards,

Create new topic

Twitter and LinkedIn »

Follow us to receive Twitter updates when new discussions are posted in our forums:

Follow us to receive Twitter updates when news items and blogs are posted in our frontpage:

Follow us to receive Twitter updates when tech item prices are listed in our price comparison site:

News »

Logitech introduces new Made for Google keyboard and mouse devices
Posted 16-Oct-2019 13:36

MATTR launches to accelerate decentralised identity
Posted 16-Oct-2019 10:28

Vodafone X-Squad powers up for customers
Posted 16-Oct-2019 08:15

D Link ANZ launches EXO Smart Mesh Wi Fi Routers with McAfee protection
Posted 15-Oct-2019 11:31

Major Japanese retailer partners with smart New Zealand technology IMAGR
Posted 14-Oct-2019 10:29

Ola pioneers one-time passcode feature to fight rideshare fraud
Posted 14-Oct-2019 10:24

Spark Sport new home of NZC matches from 2020
Posted 10-Oct-2019 09:59

Meet Nola, Noel Leeming's new digital employee
Posted 4-Oct-2019 08:07

Registrations for Sprout Accelerator open for 2020 season
Posted 4-Oct-2019 08:02

Teletrac Navman welcomes AI tech leader Jens Meggers as new President
Posted 4-Oct-2019 07:41

Vodafone makes voice of 4G (VoLTE) official
Posted 4-Oct-2019 07:36

2degrees Reaches Milestone of 100,000 Broadband Customers
Posted 1-Oct-2019 09:17

Nokia 1 Plus available in New Zealand from 2nd October
Posted 30-Sep-2019 17:46

Ola integrates Apple Pay as payment method in New Zealand
Posted 25-Sep-2019 09:51

Facebook Portal to land in New Zealand
Posted 19-Sep-2019 18:35

Geekzone Live »

Try automatic live updates from Geekzone directly in your browser, without refreshing the page, with Geekzone Live now.

Support Geekzone »

Our community of supporters help make Geekzone possible. Click the button below to join them.

Support Geezone on PressPatron

Are you subscribed to our RSS feed? You can download the latest headlines and summaries from our stories directly to your computer or smartphone by using a feed reader.

Alternatively, you can receive a daily email with Geekzone updates.