Chef solo versus client/server


#1

I’m wondering what I’d really give up by using chef solo and not running the
server at all. If I have a cron job that pulls down the latest cookbooks
and dna, then runs chef solo on them, doesn’t that basically accomplish the
same thing on the client side as using the client and server together?

My biggest dilemma is that when you put together my own app plus chef
server, it’s a lot of moving parts, and also some duplicated functionality.
For example I already have a web ui, and it already handles uploading
cookbooks and json dna files. And I already have a client/server
architecture for handing off tasks to nodes, getting updates, etc… I’m
tempted to just stick with chef solo.

Chris


#2

On 15/04/2009, at 7:20 PM, snacktime wrote:

I’m wondering what I’d really give up by using chef solo and not
running the server at all. If I have a cron job that pulls down the
latest cookbooks and dna, then runs chef solo on them, doesn’t that
basically accomplish the same thing on the client side as using the
client and server together?

Basically, sure!

Using client and server allows you to query (via full text search) any
node data (“what is the IP address of my syslog server”).

Attributes loaded by the client are also persisted to CouchDB which
are also exposed via the RESTful API.

My biggest dilemma is that when you put together my own app plus
chef server, it’s a lot of moving parts, and also some duplicated
functionality. For example I already have a web ui, and it already
handles uploading cookbooks and json dna files. And I already have
a client/server architecture for handing off tasks to nodes, getting
updates, etc… I’m tempted to just stick with chef solo.

There is a ticket[1] open to extend the functionality of -j, hopefully
giving it the ability to request JSON from a HTTP endpoint - this may
be an itch you are interested in scratching.

Hope this clarifies things.

Regards,

AJ

[1] http://tickets.opscode.com/browse/CHEF-156


#3

There is a ticket[1] open to extend the functionality of -j, hopefully
giving it the ability to request JSON from a HTTP endpoint - this may be an
itch you are interested in scratching.

Hope this clarifies things.

Regards,

AJ

[1] http://tickets.opscode.com/browse/CHEF-156

I’ll take a look, that would be useful. Although eventually you want to
sync cookbooks also, which brings you back around to running the server.

I might end up just running the server but leave solo as an option when an
initial configuration is all that is wanted.

Chris


#4

I’ll take a look, that would be useful. Although eventually you
want to sync cookbooks also, which brings you back around to running
the server.

I might end up just running the server but leave solo as an option
when an initial configuration is all that is wanted.

Chris

This is the key reason to run the server. There are other problems now
with solo. For example, ‘remote_directory’ doesn’t work with it yet.
We use chef-solo to do a few things. First, to bootstrap bare hosts
with the chef-client. Second, to configure and update the chef-server.
The server runs the client too, but solo keeps any unexpected
recursive nastiness from ruining your setup.

Joshua Sierles
37signals


#5

You can also mount the server as a merb slice, and bend it to your whim.

Sent from my iPhone

On Apr 15, 2009, at 1:29 AM, snacktime snacktime@gmail.com wrote:

There is a ticket[1] open to extend the functionality of -j,
hopefully giving it the ability to request JSON from a HTTP endpoint

  • this may be an itch you are interested in scratching.

Hope this clarifies things.

Regards,

AJ

[1] http://tickets.opscode.com/browse/CHEF-156

I’ll take a look, that would be useful. Although eventually you
want to sync cookbooks also, which brings you back around to running
the server.

I might end up just running the server but leave solo as an option
when an initial configuration is all that is wanted.

Chris