# [![](https://raw.githubusercontent.com/itamae-kitchen/itamae-logos/master/small/FA-Itamae-horizontal-01-180x72.png)](https://github.com/itamae-kitchen/itamae) [![Gem Version](https://badge.fury.io/rb/itamae.svg)](http://badge.fury.io/rb/itamae) [![Maintainability](https://api.codeclimate.com/v1/badges/1de79e271cff2a43091f/maintainability)](https://codeclimate.com/github/itamae-kitchen/itamae/maintainability) [![test](https://github.com/itamae-kitchen/itamae/actions/workflows/test.yml/badge.svg)](https://github.com/itamae-kitchen/itamae/actions/workflows/test.yml) [![Slack](https://img.shields.io/badge/slack-join-blue.svg)](https://join.slack.com/t/itamae/shared_invite/enQtNTExNTI3ODM1NTY5LTM5MWJlZTgwODE0YTUwMThiNzZjN2I1MGNlZjE2NjlmNzg5NTNlOTliMDhkNDNmNTQ2ZTgwMzZjNjI5NDJiZGI) Simple and lightweight configuration management tool inspired by Chef. - [CHANGELOG](https://github.com/itamae-kitchen/itamae/blob/master/CHANGELOG.md) ## 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`: ```ruby 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](https://github.com/itamae-kitchen/itamae/wiki). Enjoy! ## Documentation https://github.com/itamae-kitchen/itamae/wiki ## Run tests Requirements: Vagrant ``` $ bundle exec rake spec ``` ## Get Involved - [Join Slack team](https://itamae-slackin.herokuapp.com) ## Presentations / Articles ### in Japanese - [Itamae - Infra as Code 現状確認会](https://speakerdeck.com/ryotarai/itamae-infra-as-code-xian-zhuang-que-ren-hui) - [クックパッドのサーバプロビジョニング事情 - クックパッド開発者ブログ](http://techlife.cookpad.com/entry/2015/05/12/080000) - [Itamaeが構成管理を仕込みます! ~新進気鋭の国産・構成管理ツール~:連載|gihyo.jp … 技術評論社](http://gihyo.jp/admin/serial/01/itamae) ## Contributing If you have a problem, please [create an issue](https://github.com/itamae-kitchen/itamae/issues/new) 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