AnsibleとChefを比較

    「Ansible」と「Chef」の比較

    「Ansible」と「Chef」は構成管理ツールです。

    ■Ansible

    概要

    Ansibleは、最小限の手間で各種設定を自動化できる特徴があります。

    Ansibleでは、YAML形式テキストファイルである「Playbook」に作業内容をタスクとして記述し、それをAnsibleに実行させることにより、さまざまな処理を実現できます。

    メリット

    Ansibleは、「設定ファイルがシンプル」「使いやすい」「管理対象サーバへのエージェントソフトウェアインストール不要」「軽量」「展開スピードが高速」などの特徴があります。

    ■Chef

    概要

    Chefは、システム各種設定、アプリケーション/ミドルウェア/コンポーネントなどのソフトウェアインストールを自動化できます。インフラ環境構築を簡単に行うための便利な機能が搭載されています。

    Chefは、マスタ/エージェントモデルを使用し、「マスタサーバ」と「エージェント」で動作します。

    Rubyで実装されており、インフラ構成情報もRubyを使ってコードでの管理を行えます。

    メリット

    Chefは、長年使用されていて多くの実績があるため、ドキュメント類も充実しており、安定性を重視する企業ユースにアピールできるメリットがあります。

    ■エージェントインストール

    Ansible

    Ansibleは、エージェントは不要で、管理対象サーバに「Python 2.4」がインストールされていて、sshでログインできれば、そのまま管理できます。

    Chef

    Chefは、管理対象サーバに、エージェント「chef-client」をインストールする必要があります。

    ■シンプル性

    Ansible

    Ansibleは、「手元にあるコードを対象のサーバに対して実行する」という非常にシンプルな構成であるため、学習コストが少ないメリットがあります。

    「インベントリ(ホスト名列挙)」と「Playbook(ymlコード)」の2つだけあれば動作できます。

    Chef

    Chefの場合、「Chef Serverを立てる必要がある」「chef-soloで運用する場合でもコード転送ルートを考慮する必要がある」など、運用面においてネックになります。

    ■コード実行順

    Ansible

    Ansibleでは、コードの上から順に実行されます。

    Chef

    Chefでは「コードが上から順に実行されるとは限らない」という分かりにい面があります。

     

    参考元サイト

    「Ansible」基本情報

    ■概要

    Ansible(アンシブル)とは構成管理ツールです。多数の構築管理対象に対するアプリケーションとシステムの導入を容易にするシンプルなIT環境構築自動化プラットフォームです。

    ■構成管理ツールとは

    構成管理ツールとは、多数のサーバに対して統一的な制御を行い、環境構築を行うツールです。

    あらかじめ作成した設定ファイルに従って「ソフトウェアインストール」「設定ファイル修正」「サービス起動/停止」「ネットワーク設定」などのサーバの各種設定を自動的に実行します。

    構成管理ツールのメリット
    ①環境構築時間の大幅削減
    ②手動オペレーションによるミス発生可能性の低減
    ③作業漏れの低減
    ④直接ログインする機会を最小限にすることによるセキュリティの向上

    代表的な構成管理ツールとして「Ansible」「Chef」「Puppet」などがあります。

    ■Ansibleとは

    Ansibleは、「設定ファイルがシンプル」「使いやすい」「管理対象サーバへのエージェントソフトウェアインストール不要」など、最小限の手間で各種設定を自動化できる特徴があります。

    Ansibleでは、Playbook(YAML形式テキストファイル)に作業内容をタスクとして記述し、それをAnsibleに実行させることにより、さまざまな処理を実現できます。

    「構成管理機能」として、「サーバ構成管理」「ネットワーク設定」「ロードバランサー設定」「クラウドプロビジョニング(クラウドインフラ設定)」などを行えます。

    「デプロイ機能」も有しており、「サーバ上に任意のファイルを配置」「パッケージインストール(アプリケーション展開)」なども行えます。

    Ansibleは、システムが稼働するインフラを含む全体を構築できる「マルチノードオーケストレーションツール」として活用できます。

    ■経緯

    Ansible社は、2015年に、RedHat社に買収されています。

    ■ユースケース

    Ansibleは「Red Hat Enterprise Linux」環境などにおいて、「アプリケーションデプロイ」「ソフトウェアデリバリー迅速化」「OpenStackインストール自動化」「コンテナ導入促進」などに利用されています。

    ■オフィシャルサイト情報

    オフィシャルサイト

    →GitHub →ansible / ansible

    ライセンス情報

    Ansibleのライセンスは「GNU General Public License v3.0」です。

    詳細について、こちらを参照ください。
    →GitHub →ansible / ansible →COPYING

    ダウンロード

    →GitHub →ansible / ansible

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Chef」「Puppet」など。


    基本情報

    概要

    Chef(シェフ)とは、構成管理(プロビジョニング)ツールです。ユーザ作成、パッケージインストール、設定ファイル編集などの展開作業を自動化します。物理環境/仮想環境/クラウド環境などの各種インフラに対応します。

    基本説明

    Chefは、米Chef Software社を中心に開発されています。

    システム各種設定、アプリケーション/ミドルウェア/コンポーネントなどのソフトウェアインストールを自動化できます。インフラ環境構築を簡単に行うための便利な機能が搭載されています。

    Rubyで実装されているのが特徴です。インフラ構成情報もRubyを使ってコードで管理します。

    Windows、Linux、Mac OSなど複数のプラットフォームに対応しています。

    導入メリット

    ・構築/運用コストの削減
    ・構築/運用ノウハウの共有
    ・構築のやり直しがきく
    ・作業時間の短縮
    ・複数サーバへ一括適用
    ・作業ミスが発生しない

    TOPに戻る

    主な特徴

    「Infrastructure as Code」

    「インフラをどのように構築し、維持されるべきか」という定義は、Rubyで記述され、ソースコードのように扱います。

    コードによってインフラの構成管理を行えることが、Chefの大きな特徴であり利点です。

    設定階層構成「Repository」「Cookbook」「Recipe」

    「Recipe」=実際に実行させる構成設定ファイル
    「Cookbook」=特定の構成対象に対して必要なRecipeをまとめるための構成設定ファイルセット
    「Repository」=Chefの実行に必要となる一連の「Cookbook」をまとめる入れ物

    『Repository >Cookbook> Recipe』という階層関係になります。

    Nginxの設定を作成したい場合は、まず「Repository」を作成して、Nginxの「Cookbook」を作成して、その中に実際のNginx設定ファイルとなる「Recipe」を作成していく形となります。

    「Cookbook」

    処理内容や対象とするアプリケーションごとにCookbookを作成するのが一般的です。

    アプリケーションインストール設定(MySQL、Apacheなど)、ユーザ作成、システム管理など、さまざまなCookbookが公開されていて、そのまま利用することもできます。

    「Recipe」

    Recipeは、インフラをあるべき姿に構築し、維持する具体的なプログラムコードというイメージです。

    Rubyの文法を用いて、Chef専用の命令コマンド「Resource」を使用して記述します。

    Resourceを自作したり、Ruby、Perl、Python、bashなどのスクリプトを直接実行することも可能です。

    「べき等性」何度繰り返しても同じ結果に

    「べき等性」とは「ある操作を何度行っても結果が同じになる」という概念です。

    作業手順を記述するのではなく、「システム構成をこのようにしたい」という「あるべき構成」を記述します。

    ただし、自作したCookbookやRecipeの書き方によっては、べき等性が保証されないことがあります。

    「クライアント・サーバ形式」と「スタンドアロン形式」

    大規模インフラ構成向きの「クライアント・サーバ形式」と、小規模インフラ構成向きの「スタンドアロン形式」があります。

    コマンドラインインターフェイス「Knife」

    「Knife」は、Chefのコマンドラインインターフェイスです。

    多数のプラグインが作成されており、「IaaS上にインスタンスを作成し、Chef環境を構築する」などの使い方も可能です。

    システムの状態を容易に確認できる

    設定管理は一貫してChefで行う運用であれば、コード参照のみで設定値などを確認できます。

    TOPに戻る

    同様製品(概要情報)

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Puppet」「Ansible」「Crowbar」など。

    TOPに戻る

    導入事例

    Chefの利用実績としては、
    ・CyberAgent
    ・GREE
    ・nanapi
    ・Facebook
    などがあります。

    Facebookは、数十万台規模のサーバ群をすべてChefで管理しているとされています。

    TOPに戻る

    ライセンス情報

    Chefのライセンスは、「Apache License 2.0」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

    TOPに戻る

    ダウンロード

    ダウンロードページ

    TOPに戻る

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