OSS紹介

Chef

Chef最新情報

NRIのOpenStandiaが提供するChef最新情報

Chefの概要

Chef(シェフ)とはインフラにおけるサーバ構成管理や、サーバへのファイル展開作業(プロビジョニング)を自動化するオープンソース・ソフトウェアです。
物理、仮想、クラウドといったさまざまなインフラに対して、サーバのあるべき構成(OS/ミドルウエア/アプリケーションなど)をセットしておくと、サーバの台数によらずその構成どおりにインフラを自動セットアップします。
複数台のサーバに対し、何度も同じ設定作業を行う必要がなくなり、サーバのデリバリーの効率化、設定時の人的ミス防止につながる便利なソフトウェアとして、近年では「Redmine」「Jenkins」と並んでIT現場での「新3種の神器」と呼ばれるほど人気があります。

Chef自体はRubyで実装されています。Chefには、「Infrastructure as Code」という基本概念があり、インフラの構成管理の設定自体もプログラミング言語のコードとして扱い、RubyのDSL(Domain Specific Language: ドメイン固有言語)で記述します。この構成管理の情報を「レシピ(Recipe)」、レシピの集合体である「クックブック(Cookbook)」として定義します。
Chefは、米国Chef 社(旧Opscode社)がOSSプロジェクトとして開発を進めており、コミュニティによって開発された多くの「クックブック(Cookbook)」が公開され、それらを自由に再利用することができます。

Chefには、構成を管理する「Chef Server」、設定対象のサーバにインストールして動作する「Chef Client」によるクライアント・サーバでの集中管理形式と、ローカルマシンから直接設定対象のサーバを管理するスタンドアロン形式「Chef Solo」があります。

■Chefの構成の違い

クライアント・サーバ形式では、インフラの集中管理サーバである「Chef Server」上でセットアップ対象の各サーバ情報(設定ファイル)を保存・管理し、「Chef Client」が「Chef Server」からの指示によってインフラを構築します。

OpenStandia Chefクライアント・サーバ形式

スタンドアロン形式は「Chef Solo(Chef Client local-mode)」と呼ばれ、「Chef Server」を使わずにセットアップ対象の各サーバ情報に「Chef Client」と設定情報をインストールして管理します。「knife solo」というCLIツールを利用することで、複数のセットアップ対象サーバにChefをインストールし、Chef Soloを実行する環境を構築できます。

OpenStandia Chefスタンドアロン形式



Chefは多くの場合、同じ作業を実行しても同じ結果になる(※)ため、複数台のサーバに対して同じOS/ミドルウエア/アプリケーションなどをインストールしたり、パラメータ設定をする際などに大変便利なソフトウェアです。
そのため、最初に小さな単位でインフラを構築し、徐々にサーバ台数を追加して大規模構成に成長させていくことも容易に実現できます。
また、設定ファイルである「レシピ(Recipe)」や「クックブック(Cookbook)」は、スタンドアロン形式、クライアント・サーバ形式で共通して利用できるため、設定対象のサーバ台数が少ない場合は「Chef Solo」を利用し、サーバ台数が増加していった際には「Chef Server」に切り替えるということも可能です。

近年では、国内外を問わず、インターネット広告事業、SNS事業、ゲーム事業、クラウド事業などをはじめとする大規模システムでのChefの採用事例が増加しています。Facebook社で数十万台規模でChefを利用している事例は有名です。

Chef(シェフ)の最新バージョンは、Chef 11.12.9、12.13(2016年8月時点)となっています。

※数学における冪等性(べきとうせい)という概念と同じものです。処理の内容によってはこの性質が確保されないことがあります。

TOPに戻る

Chefのライセンス

Chef(シェフ)のライセンスは、Apache License 2.0です。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と使用、複製、再頒布などが認められています。
また、開発元にOpscode社が提供する、機能拡張した有償版「Private Chef」、クラウド型の「Hosted Chef」といったサブスクリプションライセンスも提供されています。 Chef(シェフ)のライセンスについてご不明な点がありましたら、お気軽にお問い合わせください。

TOPに戻る

Chefの動作環境

前提となる動作環境は、以下のとおりです。(バージョン11.12.8-2の場合)

  • Chef Server OS
    ・Red Hat Enterprise Linux 5, 6 (x86_64)
    ・Ubuntu Server 10.10以降
  • Chef Client OS
    ・Red Hat Enterprise Linux 5, 6
    ・Ubuntu Server 10.04以降
    ・Debian GNU/Linux squeeze 以降(i686, x86_64)
    ・FreeBSD 9
    ・Mac OS X 10.6 以降
    ・SUSE Enterprise 11.2
    ・Solaris 5.9 以降
    ・openSUSE 12.1
    ・Windows 7以降
    ・Windows Server 2003R2 以降

プラットフォームによってサポートされるアーキテクチャが細かく異なるので、Chefのインストールページを参照ください。
必要なアプリケーションなどは上記インストールページに表示されます。
基本的にはWindows以外ではインストールページで指定されるシェルスクリプトを実行するだけで、必要なファイル一式インストールされます。
(インストール先は/opt/chefで、Chefに必要なRubyなども全てこの配下にインストールされます)

TOPに戻る

Chefの主な機能

主な機能は以下のとおりです。

  • コンフィギュレーション管理機能
     - プログラミング言語(Ruby)によるインフラ設定と管理
     - 手順書(Cookbook)による作業の簡略化と共通化
  • プロビジョニング機能
     - 設定ファイルの自動配布と反映
  • システムインテグレーション機能
     - サーバ間の動的なシステムインテグレーションと大規模インフラの構築の実現
     - Chef Soloでの小規模なサーバ構築
  • データ収集機能
     - 各ノードと通信し、運用環境に関するさまざまなデータを保存
  • 世代管理機能
     - 過去の設定ファイルの保存とロールバックの実現

TOPに戻る

Chefと同類のソフトウェア

商用ソフトウェア製品では、HP Insight Orchestration、Microsoft System Center Orchestrator 2012、同じOSSではPuppet、Ansible、Crowbarが同様の機能を提供しています。

TOPに戻る

Chefの特徴

Chef(シェフ)は、次のような特徴があります。

  • 構成管理の自動化によるサーバデリバリーの効率化、設定時の人的ミス防止
  • 構成管理プロセスを記載するのではなく、最終的な設定状態を記載する
  • プログラミング言語(Ruby)を用いたインフラ構築・設定管理ができる
  • ライセンス費用はゼロで、無料で使用できる(有償保守サポートを依頼する場合は別途費用がかかる)
  • 冪等性
  • スケーラビリティ
  • 設定ファイルが多数公開されている
  • 料理を意識した用語である

TOPに戻る

Chefのダウンロード

Chef ダウンロードページ

TOPに戻る

Chefに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気OpenAM
  • 注目MongoDB
  • OpenIDM
  • MongoDB
  • Corosync
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • Joomla!
  • Apache Struts
  • PostgreSQL
  • Pentaho
  • Chef
  • Apache Tomcat
  • Solr
  • Dovecot
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Liferay
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • BIND
  • OpenDJ
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Spring Framework
  • CentOS
  • Courier-IMAP
  • CVS
  • MosP
  • Heartbeat
  • Hibernate
  • Hinemos
  • ADempiere
  • LISM
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO
  • sendmail
?
<--!-->