Chef (ソフトウェア)

Chef

開発元|  Chef Software Inc.
初版|  2009年1月 (16年前) (2009-01)[1]
最新版|

* 18.6.2(クライアント) 2024-12-13[2]
* 15.10.27 (サーバ) 2025-01-09 [3]

リポジトリ|  github.com/chef/chef
プログラミング
言語|

* Ruby (クライアント)
* Ruby / Erlang (サーバ)

対応OS|  GNU/Linux, AT&T Unix, MS Windows, FreeBSD, Mac OS X, IBM AIX, illumos
サポート状況|  Active
種別|  構成管理、システム管理、ネットワーク管理、クラウド管理、継続的デリバリー、DevOps、Infrastructure as Code
ライセンス|  Apache License 2.0
公式サイト|  www.chef.io
テンプレートを表示

Chef（シェフ）は、同名の企業によって開発されるRubyとErlangで記述された構成管理ツールである。システム構成の「レシピ」の記述には、ピュアRubyのドメイン固有言語 （DSL）を使用する。 Chefは、サーバーの構成と保守のタスクを合理化するために使用され、Internap、Amazon EC2、Google Cloud Platform、Oracle Cloud、OpenStack、SoftLayer、Microsoft Azure、Rackspaceなどのクラウドベースのプラットフォームと統合して、自動的にプロビジョニングし、新しいマシンを構成する。 Chefには、小規模システムと大規模システムの両方に対応するソリューションが含まれており、それぞれの範囲に応じた機能と価格が設定されている。

## 機能

[編集]

ユーザーは、Chef がどのようにサーバアプリケーションやユーティリティ (例えば Apache HTTP Server、MySQL や Hadoop) を管理・設定するかを「レシピ」に書き込む。 レシピは管理の簡単のために「クックブック」としてまとめることができる。 レシピには一連のリソースがどのような状態であるべきか、例えばパッケージがインストールされているとか、サービスが起動している、あるいはファイルが書き込まれている状態であるべきことを記述する。 これらのリソースは、実行するソフトウェアを特定のバージョンに設定することができ、ソフトウェアが依存性に基づいて正しい順番でインストールされることを保証することが可能である。 Chefは、それぞれのリソースが正しく設定されるようにし、望ましい (desired) 状態でないリソースを修正する。 [4]

Chef はクライアント/サーバモードで、あるいは「chef-solo」と呼ばれるスタンドアローン設定で実行できる。 クライアント/サーバモードでは、Chef クライアントはノードの様々な属性を Chef サーバへ送信する。 サーバーは Elasticsearch を使ってこれらの属性をインデックスし、この情報を問い合わせる API をクライアントに提供する。 Chef レシピはこれらの属性を問い合わせ、結果のデータを使ってノードを設定するのに役立てることができる。[要出典]

もともと Chef は Linux を管理するのに使われていたが、後のバージョンでは Microsoft Windows にも同様に使用できるようになった[5]。

Linux では CFEngine（英語版）、Ansible、Puppet に並んでメジャーな構成管理システムの1つである[6][7]。 構成管理ツールである一方、Chef は Puppet や Ansible と並び Infrastructure as Code (IAC) ツールの1つでもある[8]。

## プラットフォームサポート

[編集]

Chefは、クライアントおよびサーバー製品のサポートされるプラットフォームマトリックスに従って、複数のプラットフォームでサポートされる [9]。クライアントの主要なプラットフォームサポートには、AIX、RHEL / CentOS、FreeBSD、OS X、Solaris、Microsoft WindowsおよびUbuntuが含まれる。 追加のクライアントプラットフォームには、Arch Linux、Debian、 Fedoraが含まれる。Chef Serverは、RHEL / CentOS、Oracle Linux、Oracle Cloud、Ubuntuでサポートされている。

## 利用企業

[編集]

Chefを採用する企業には、Facebook [10]、AWS OpsWorks、Prezi [11]、BlackLine（英語版）、およびアメリカ合衆国移民・関税執行局などがある[12]。

## 出典

[編集]

1. ^ “Announcing Chef”. chef.io (2009年1月15日). 2017年1月9日閲覧。
2. ^ “Chef Infra Client 18.6.2 Released!”. chef.io (2024年12月13日). 2025年2月9日閲覧。
3. ^ “Chef Infra Server 15.10.27 Released!”. chef.io (2025年1月9日). 2025年2月9日閲覧。
4. ^ Chef - Code Can | Chef, https://www.chef.io/ 2015年7月4日閲覧。
5. ^ Cade Metz (2011-10-26), “The Chef, the Puppet, and the Sexy IT Admin”, Wired, https://www.wired.com/2011/10/chef_and_puppet/ 2015年7月4日閲覧。
6. ^ Alan Sharp-Paul (2013-03-04), Puppet vs. Chef - The Battle Wages On, http://www.scriptrock.com/blog/puppet-vs-chef-battle-wages 2015年7月4日閲覧。 .
7. ^ Lueninghoener, Cory (2011-03-28), “Getting Started with Configuration Management” (PDF), ;login:（英語版） (Usenix) 36 (2), https://www.usenix.org/system/files/login/articles/105457-Lueninghoener.pdf 2015年7月4日閲覧。[[;login:]]（[[:en:;login:|英語版]]）&rft.aulast=Lueninghoener&rft.aufirst=Cory&rft.au=Lueninghoener, Cory&rft.date=2011-03-28&rft.volume=36&rft.issue=2&rft.pub=Usenix&rft_id=https://www.usenix.org/system/files/login/articles/105457-Lueninghoener.pdf&rfr_id=info:sid/ja.wikipedia.org:Chef_(ソフトウェア)">
8. ^ Keiser, John (2016年11月14日). “Chef Provisioning: Infrastructure As Code”. 2020年8月18日閲覧。
9. ^ “Platforms — Chef Docs”. chef.io. 2017年1月9日閲覧。
10. ^ “Facebook uses a seasoned Chef to keep servers simmering”. pcadvisor.co.uk. 2014年1月6日閲覧。
11. ^ How Chef Enables the DevOps Culture at Prezi - Zsolt Dollenstein. 2024年3月25日時点のオリジナルよりアーカイブ。YouTubeより。
12. ^ “A Personal Message From the CTO” (英語). Chef Blog (2019年9月20日). 2019年9月21日閲覧。

## 関連項目

[編集]

* Ansible (ソフトウェア)
* オープンソース構成管理ソフトウェアの比較（英語版）
* DevOps
* DevOpsツールチェーン（英語版）
* Otter
* Puppet
* Salt（英語版）
* Juju（英語版）

## 外部リンク

[編集]

* 公式ウェブサイト
* chef \- GitHub