itamae is a free, open source cloud infrastructure management project written in Ruby and released under MIT. It has 1,135 GitHub stars, 117 forks and 38 open issues, and was last pushed 18 hours ago. On this registry it ranks #70 of 76 tracked projects in Cloud Infrastructure Management, with 5 head-to-head comparisons available. It gained 2 stars over the last 30 tracked days.

What is itamae?

Itamae is a simple, lightweight configuration management tool written in Ruby, inspired by Chef, and intended for developers and operators who want to describe machine state in recipe files and apply those recipes either to a local machine or to remote hosts over SSH.

What it is

Itamae is an MIT-licensed Ruby project, formerly known as Lightchef, that implements configuration management through a Chef-like domain-specific language. It lives in the Ruby ecosystem and is distributed as a RubyGem, with its documentation hosted in the project wiki and its home page at itamae.kitchen. The stated concept is deliberately narrow: a Chef-like DSL that is not compatible with Chef, simpler and lighter weight than Chef, consisting of only recipes, and idempotent. The project is tagged under chef, infrastructure, infrastructure-as-code, itamae, and ruby, and is catalogued in this registry under Infrastructure & Operations / Cloud Infrastructure Management.

The problem it solves is the weight of a full configuration management stack for teams that do not need one. Chef is the named reference point here: Itamae borrows the recipe-and-resource style that Chef users already recognise, such as declaring a package to install and a service to enable and start, while dropping the surrounding machinery. Because it keeps only recipes and runs them directly, the workflow replaces a Chef-style provisioning run with a single command against a target machine, whether that machine is local, remote, or a Vagrant virtual machine. The trade-off is explicit in the project's own concept statement: the DSL is Chef-like but not Chef-compatible, so existing Chef cookbooks are not the input format.

Key capabilities

  • Chef-like Ruby DSL for recipes, using resources such as package 'nginx' do action :install end and service 'nginx' do action [:enable, :start] end in a file conventionally named recipe.rb.
  • Local application of a recipe with itamae local recipe.rb, which reports each resource and the planned change, for example installed will change from 'false' to 'true'.
  • Remote application over SSH with itamae ssh --host host001.example.jp recipe.rb.
  • Vagrant integration through itamae ssh --vagrant --host vm_name recipe.rb.
  • Idempotent execution, so re-running a recipe reports changes rather than blindly reapplying them.
  • Recipes only, with no Chef compatibility layer, which keeps the resource model small.
  • Test suite executed with bundle exec rake spec, which requires Vagrant.

Who uses it and how

  • Individual developers provisioning a single workstation or server with itamae local, where a full central configuration management server would be overkill.
  • Operators applying recipes to remote machines by SSH, using itamae ssh with an explicit --host target.
  • Teams working against Vagrant development machines, using the --vagrant flag so recipes run in the same way locally and in development VMs.
  • Ruby-oriented teams that prefer to keep infrastructure definitions in the same language and toolchain as their application code.
  • The project has been presented and written about in Japanese, including a write-up on Cookpad's server provisioning, which indicates production provisioning use in addition to local experimentation.

Getting started

Install the gem with gem install itamae, write a recipe file such as recipe.rb, and apply it with itamae local recipe.rb or itamae ssh --host host001.example.jp recipe.rb. Further information is collected in the Itamae Wiki.

How it compares

Among the tools named in the project's own materials, Itamae sits next to Chef as a lighter alternative: it shares the recipe and resource idiom and the Ruby DSL, but its own concept notes state that it is simpler and lighter weight than Chef and not compatible with Chef recipes. Vagrant is the other named tool, and it is complementary rather than competing, since itamae ssh --vagrant targets Vagrant machines directly. No list of paid products that this project replaces is provided in the facts available here.

When to use it — and when not to

A self-hoster needs a working Ruby environment and the gem installed, plus Vagrant if the project's own test suite is to be run locally; the README names no external database, object storage, or mail service, so the operational surface is small. It is a poor fit for anyone who needs Chef compatibility, since the DSL is explicitly not compatible, and for anyone who wants a central server, roles, environments, or a web dashboard, because the project offers recipes only. Documentation is concentrated in a GitHub wiki rather than a published manual, and the repository carries a modest footprint of roughly 1,132 stars and 38 open issues, so users should expect a focused tool rather than a broad platform.

project readme (upstream, from github) — read inline

Gem Version Maintainability test Slack

Simple and lightweight configuration management tool inspired by Chef.

Concept

  • Chef-like DSL (but not compatible with Chef)
  • Simpler and lighter weight than Chef
  • Only recipes
  • Idempotent

Installation

$ gem install itamae

Getting Started

Create a recipe file as recipe.rb:

package 'nginx' do
  action :install
end

service 'nginx' do
  action [:enable, :start]
end

And then execute itamae command to apply a recipe to a local machine.

$ itamae local recipe.rb
 INFO : Starting Itamae...
 INFO : Recipe: /home/user/recipe.rb
 INFO :    package[nginx]
 INFO :       action: install
 INFO :          installed will change from 'false' to 'true'
 INFO :    service[nginx]
 INFO :       action: enable
 INFO :       action: start

Or you can apply a recipe to a remote machine by itamae ssh.

$ itamae ssh --host host001.example.jp recipe.rb

You can also apply a recipe to Vagrant VM by itamae ssh --vagrant.

$ itamae ssh --vagrant --host vm_name recipe.rb

You can find further information to use Itamae on Itamae Wiki.

Enjoy!

Documentation

https://github.com/itamae-kitchen/itamae/wiki

Run tests

Requirements: Vagrant

$ bundle exec rake spec

Get Involved

Presentations / Articles

in Japanese

Contributing

If you have a problem, please create an issue or a pull request.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Frequently asked questions

Is itamae free to use?

itamae is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does itamae do?

Configuration management tool inspired by Chef, but simpler and lightweight. Formerly known as Lightchef.

What is itamae written in?

itamae is primarily written in Ruby. Its source is publicly available at https://github.com/itamae-kitchen/itamae, and it has 1,135 GitHub stars.