構成管理ツール製品比較 Chef, Ansible, Puppet

posted in: ansible, chef, puppet, 構成管理 | 0

はじめまして。DevOpsのDevをメインで担当しています、ヤマシ(山嵐が由来?)です。

サーバの環境構築やデプロイ作業、複数環境へのリリースなどを標準化する一環として、
それらを自動化する構成管理ツールを導入する企業が増えています。
今回は、代表的な製品 Chef, Ansible, Puppet の基本情報を比較して、選定するための判断材料に役立てられればと思います。

なお、変化の激しい分野でもありますので、ここでは調査時点(2018.6)での情報をもとに記載しています。
直接こちらのデータだけで判断せず、最新の情報も調べつつご参考程度に拝見ください。

項目 小項目 Chef(シェフ) Ansible(アンシブル) Puppet(パペット)
公式サイト https://www.chef.io/chef/ https://www.ansible.com/ https://puppet.com/
公式ドキュメント https://docs.chef.io/ http://docs.ansible.com/ansible/ https://puppet.com/ja/docs
ライセンス Apache License 2.0 GPL v3 Apache License 2.0
リリース 調査時点最新バージョン(2018/6/11時点) Chef Client:14.1.1
Chef Server:12.17.33
2.5.4 5.5.2
最終リリース日 2018/5/8 2018/6/1 2018/6/7
初回リリース日 2008/6/16 2012/3/9 2005/8/30
リリース頻度 メジャーリリース:2年に1回程度
マイナーリリース:3か月に1回程度
メジャーリリース:2~3年に1回程度
マイナーリリース:2~3か月に1回程度
メジャーリリース:4→5のアップデートに1年
マイナーリリース:1~2か月に1回程度
リリースノート https://docs.chef.io/release_notes.html https://github.com/ansible/ansible/releases https://puppet.com/docs/puppet/5.5/release_notes.html
コミュニティ 日本Chefユーザ会
あまり活発なコミュニティは見つかりませんでした。
日本Ansibleユーザ会 Japan Puppet User Group
有償版 有無 有(Chef Server Enterprise) 有(Ansible Tower) 有(Puppet Enterprise)
主な機能 権限制御可能な管理コンソール
HA構成
レプリケーション
Web管理コンソール
ジョブスケジューリング
ロールベースのアクセス制御
Web管理コンソール
オーケストレーション機能
情報量 ○(多い)
公式ドキュメント:整備されているが、英語のみ
インターネット上の情報:日本語、英語問わず
和書:多数
洋書:多数
バグ/セキュリティ関連情報:githubで全て公開
リリース情報:公式サイト、githubで公開
開発者向け情報:公式サイト、githubで公開
△(少ない)
公式ドキュメント:整備されているが、英語のみ
インターネット上の情報:日本語、英語問わず
和書:数冊(2016年以降の出版物が多め)
洋書:多数
バグ/セキュリティ関連情報:githubで全て公開
リリース情報:公式サイト、githubで公開
開発者向け情報:公式サイト、githubで公開
△(少ない)
公式ドキュメント:あり
インターネット上の情報:日本語、英語問わず
和書:数冊
洋書:多数
バグ/セキュリティ関連情報:公式サイト
リリース情報:公式サイト
開発者向け情報:公式サイト
開発元 企業名 米 Chef 社
元Opscode社、2013年Chefに会社名変更
RedHat社
2015年10月に米RedHat,Incに買収される
Ansible Towerも開発・リリースしており、Ansibleとその周りのツールについては、今後その発展が期待されます。
Puppet Labs社
実行モジュールのインストール先 スタンドアロン構成:クライアントのみ
クライアント/サーバ構成:クライアントとサーバ
サーバのみ
(エージェントレス)
スタンドアロン構成:クライアントのみ
クライアント/サーバ構成:クライアントとサーバ
環境 サーバ(OS) Win/Mac/Linux Mac/Linux
Win(WinRM, PowerShel3.0以上)
Ansible2.4以降はpython2(2.6 or 2.7)かPython3(3.5以上)を要求
Win/Mac/Linux
クライアント(OS) Win/Mac/Linux Win/Mac/Linux
(SSH接続)
Win/Mac/Linux
実装言語 サーバ ErLang Python Ruby
クライアント Ruby Python Ruby
構成記述ファイル Ruby YAML 独自マニフェスト

よく比較される代表的な構成管理ツールについて、
基本情報をまとめてみました。

やはりスモールスタートで導入するならエージェントレスのAnsibleが使いやすい印象です。
構成定義ファイルもシンプルに記述することができます。
ただ、シンプルさゆえに制約もあるため、実際に運用に当てはめた時に手の届かないところもでてくるかと思います。
※そもそも複雑な環境構成になっている点でおかしいのですが、それはまた別の問題として・・・。
導入を検討する際には、各ツールのチュートリアル等を参考にしてどういったことが実現できるのか?(または実現できないのか?)
というものをあらかじめ吟味した上で、自プロジェクトに適用できるか見極めることが重要だと思います。

LINEで送る
Pocket