
DevOps文化がIT産業内部に取り入れられるようになり、DevOpsはより多くの人々に受け入れられるようになりました。 そのため、Devopsソリューションアプローチの背後にあるマインドセットと方法論を受け入れるだけでなく、Chef、Puppet、Ansibleなどの新しいソフトウェアツールを使用してDevOpsスキルを習得できるITプロへのニーズが高まっています。 これらのツールは、それぞれ特定の強みを持っています。 これらの自動化とオーケストレーションは、インフラのあらゆるサイズを容易にします。

最適なものを選択しながら、あなたのために最もうまくいくツールを見つけてください、それはあなたをより生産的にするので、あなたはどのツールが必要ですか、あなたの要件と現在の環境に依存します。 Chef、Puppet、Ansible などのツールは、必ずしも DevOps サービスだけのためのものではなく、IT 組織での使用により、アプリケーション配信やパッチ適用などの分野を高速化するための基礎を築くことができます。 Puppet は、IT インフラストラクチャの状態を定義する方法を提供し、正しい状態を自動的に強制することを可能にする構成管理システムです。 Puppetは、3つの製品の中で最も大きなシェアを誇っている。 利用可能なアクション、モジュール、ユーザーインターフェイスの点で、最も完成度が高い。 Puppetは、データセンターのオーケストレーションの全体像を表しており、ほぼすべてのオペレーティングシステムを網羅し、主要なOSのための深いツールを提供している
- Linux, CentOS, Debian, Ubuntu, Fedora, BSD, MacOS, Windowsおよびその他で実行できる。
- 独自の「易しい」構文、Puppet DSLあるいはドメイン固有言語を使用している。
- 豊富なレポート機能
- Puppetの既存モジュールの大規模ライブラリ、モジュールの品質はまちまち
- Webユーザインタフェースはエンタープライズ版のみ
- シンプルなアーキテクチャ。 PuppetサーバーとPuppetエージェント
- Puppet は、多数のデバイスの構成を管理するための効率的で拡張性のあるソフトウェアソリューションを提供します。
- システム管理者は、物理および仮想サーバーやネットワークデバイスなどの計算リソースを管理するためにPuppetを使用します。
- Puppet はクライアント/サーバー配置を使用して展開され、サーバーまたは Puppet マスターは 1 つ以上のクライアントノードを管理します。
なぜ Chef か?
Chefは複雑ですが、高速かつ強力で、インフラをコードに変換する自動化プラットフォームです。 多くの Devops サービス会社が Chef を採用するのは、システムをオブジェクトのように扱えるようにするためで、使いやすさには堅牢性の欠如が伴うからです。 Chefは、マスターサーバと管理ノードにインストールされたエージェントがあるという点で、全体のコンセプトとしてはPuppetに似ていますが、Devops Solutions & Servicesとの実際の展開では異なります。
- 設定「レシピ」用の豊富なRuby構文:これは高い学習曲線をもたらす一方で、より強力です
- Webユーザーインタフェースが標準かつフリーです。
- アーキテクチャはより複雑: 設定と管理のためにChefサーバ、Chefエージェント、Chefワークステーションが必要です。
- 質の異なる既存のレシピの大きなライブラリです。
- Simple cross-platform and self-contained installation procedure.
- Faster performance.
なぜ Ansible か?
Ansible は Python で書かれており、設定するサーバに Python ライブラリが存在するだけでよいです。 Windowsはサポートしていませんが、非常に簡単、高速、軽量で、ChefやPuppetとはまったく異なります。 Ansibleは、合理的で高速であること、ノードエージェントのインストールが不要であることが特徴です。 そのため、Ansibleはすべての機能をSSHで実行します。 システム、データベース、クラウド管理まで、多くのモジュールが用意されています。 独自のモジュールを作成することも比較的容易です。 多くの言語がサポートされていますが、pythonに慣れていれば、独自のモジュールを作成するのにそれほど時間はかからないと思います。 AWS, Rackspace, Digital Ocean, GCE, OpenStack などの主要なクラウドプロバイダーのコアサービスをすべてサポートしている。
- Ansible は Python ベース
- これら 3 つの技術のうち最も若く、したがってコミュニティも最も小さい
- エージェントなしで機能するが、複雑な操作を始めると多くの python 依存性がある
- シンプルなアーキテクチャ: Ansible ワークステーションと SSH サーバーだけが必要である。 エージェントもサーバーもありませんが、クライアントマシンに Python の依存関係があります。
- Web ユーザーインターフェースがありますが、メインプロジェクトとは別に開発されているため、機能は限定されています。
- Scripts and modules can be built in any language, a limited library is provided
- No Windows support
- asiest syntax and lowest learning curve
- Ansible can use Paramiko, a Python SSH2 implementation or standard SSH for communications, also a accelerate mode that allows faster and larger-scale communication.The system is not available.
- Ansible には、さまざまなシステムや、Amazon EC2 や OpenStack などのクラウド基盤を管理するために使用できるモジュール群があります
Puppet か Chef か Ansible か?
- PuppetとChefは開発者や開発指向の組織を支援し、Ansibleはシステム管理者のニーズにより柔軟に対応します
- Ansible のシンプルなインターフェースとユーザビリティは、システム管理者の心理にぴったりで、Linux や Unix システムが多い組織では、Ansible は比較的迅速かつ容易に実行することができます。
- Puppet は、ユーザビリティの観点からは3つの中で最も成熟しており便利ですが、Ruby の確かな知識があることが強く推奨されます。
- Puppet は Ansible ほど合理的ではないし、その設定は時に複雑になることがあります。
- Chef は非常に安定した、よく設計されたレイアウトを持っており、生の機能という点では Puppet のレベルに達していないものの、非常に有能なソリューションであると言えます。 Chef は、重要なプログラミング経験のない管理者に最も難しい学習曲線をもたらすかもしれませんが、開発志向の人や開発組織には最も論理的にフィットするかもしれません。