3

As I understand Chef is about pull model, means cookbooks are uploaded to chef server and while running chef-client command on node, cookbooks will be downloaded and installed on chef client.

Rundeck is a push model, means rundeck can be installed on a machine and we can register nodes to that rundeck. Rundeck will run a job on a node based on filter applied.

Now my question is:

  • If we can install rundeck and push jobs towards nodes then why we need chef?
  • Why will we integrate rundeck with chef?
  • What is the thing which chef can do and rundeck can't?
  • Does chef also support push jobs?
Mohamed Ali JAMAOUI
  • 14,275
  • 14
  • 73
  • 117
sourav
  • 33
  • 5

2 Answers2

7

If we can install rundeck and push jobs towards nodes then why we need chef?

With rundeck, you execute commands. Chef follows a desired state model and applies that desired state, similar to tools like Puppet, CFEngine and Ansible.

This includes the idea of idempotency: Imagine, you have clean servers and older ones and want to make sure that a certain state is configured on all of them. Running a couple of command with rundeck will now work on the clean nodes, but fail on the older ones, because it has been done a while ago. In contrast, Chef's model would be that it recognizes that the system is already in the desired state and does nothing.

Why will we integrate rundeck with chef?

IMHO you would integrate it to run chef-client on your nodes, i.e., to switch to a more push model instead of waiting for chef-client to start (often in intervals of 30min).

What is the thing which chef can do and rundeck can't?

See above. Rundeck in contrast allows to execute single ad-hoc commands, e.g., "what's the CPU load on my servers". This is not supported by chef.

Does chef also support push jobs?

Kind of, not really. There are Chef Push Jobs, which allow you to run pre-configured commands, e.g., to kick off chef-client on your nodes. There was a recent blog article explaining that Chef Inc. sees this as the main goal of Chef Push Jobs and does not plan to extend it any further. So you can't run ad-hoc commands with that.

codeforester
  • 39,467
  • 16
  • 112
  • 140
StephenKing
  • 36,187
  • 11
  • 83
  • 112
0

Rundeck is not meant to be compared to chef. Chef is a tool that rundeck uses. Think of rundeck as running a heterogeneous environment and one of those pieces is chef. Running the "commands" is a very small feature, if you ask me, from rundeck. The important part is jobs.

"What list of steps can we take using these 10 tools to solve this problem for a customer?"

Step 1. (build phase) define rundeck job step 2. (run phase starts) rundeck is configured to talk to chef just to get node information so we can run code against those clients talk to vault do this w/ CI do this w/ CD etc

Chef is just a small piece in the ebonflow the rundeck tool offers. It is merely a possible step in a run-list.