Showing posts with label Chef. Show all posts
Showing posts with label Chef. Show all posts

Friday, January 2, 2015

Devops (3): Chef (and some fun cooking)

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.
Tools
  • 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.

Finally
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
Author: Guy

Monday, December 29, 2014

Devops and Docker

The holiday period between Christmas and New Year is an ideal period to catch up on some reading and experimenting. Devops and tools such as Docker, Vagrant, Chef, Puppet and Ansible were on my radar for a while. So finally some time to dive into this topics.


Nested VMs
Not to mess up my machine, I use VMWare workstation to spin up some test machines. As these Devops tools are all about creating and provisioning virtual machines, one must enable "Nested VMs" support. This allows one virtual machine to run in another.

Docker


Docker appeared on my radar while learning about Micro Services. Docker focuses on the creation of light-weight containers in which applications are configured in an automated manner.



The Linux Containers are very small by leveraging OS level virtualization of Linux. Is it some "chroot on rocks". The chroot system call on Unix/Linux changes the root directory for a program and all of its children. chroot allows programs - e.g. a web server - to run in a more protected mode. The OS level virtualization can limit all the resources used by child processes: CPU, memory, disk space, ... Because containers are so light-weight, many of them can be run on a single machine. This mechanism allows each application to run in its own container, its own virtualized OS.


To have a quick try of Docker, there is a great Online Tutorial consisting of 10 steps. Recommended!


As there aren't any books available on Docker, I watched the brand new training material of LiveLessons. As I couldn't find the text material, had to type over the instructions from the paused video. After wasting some time trying to get access the Fedora Atomic container on the Fedora 21 host, decided to switch to another topic, Vagrant. If I have some more time, I'll come back and retry with RHEL as used in the video training. Or switch to Windows and take a look boot2docker.

Author: Guy