After having looked into Vagrant, it became clear that Puppet and Chef are “the” tools to do the structured and repeatable configuration of machines. I picked the recent book “Learning Chef” to learn and experiment a bit.
- The book uses the recent Chef Development Kit which should gradually replace the tool called Knife.
- The tool “Chef” uses the the Recipe DSL to write recipes (Domain Specific Language, based on the Ruby programming language)
- VirtualBox is used for running the VM’s that are going to be cooked and baked
- Complemented with our good friend Vagrant (see previous DevOps blog)(actually kitchen-vagrant)
- Finally the tool kitchen is used
The focus op Chef really lies on getting the software on the machine installed, configured, and up and running. On the target machine, a Chef Client is installed that will retrieve (new and updated) recipes from a Chef Server. So the Chef clients each pull the recipes from the Chef Server.
Note: the tool Ansible does the opposite, pushing configuration data to the machines.
Many cookbooks or recipes can be downloaded from the Chef Supermarket and others.
After spending some time look around in the world of DevOps and its tools, I have a few general Observations:
- Devops is strongly focused on Linux
- Diverse programming languages such as Ruby and Erlang are used
- This is a domain in full flux, new initiatives and companies pop up, things evolve rapidly
- First time I see the file format YAML actually being used