29

質問

シェルプロビジョナーではなく、パペットまたはシェフの放浪者プロビジョナーを選択する方がよい理由を誰かが説明できますか?

バックグラウンド

私はVagrantを使い始めようとしています。私が問題を抱えていることの1つは、使用するプロビジョナーを決定することです。これまでのところ、シェルプロビジョナーを使用してある程度の成功を収めていますが、確実に実行するために予想していたよりも多くの作業が必要でした。

現時点では、ルビー、人形、シェフに慣れていませんが、必要に応じて、それらのいずれかまたはすべてを学ぶことができてうれしいです。人形とシェフと遊んだ私の初期の経験は、誰かがあなたが望むことを正確に行うレシピを持っている場合、それは本当にうまくいくということですが、非標準的なことをすることはルビーでソリューションをコーディングすることをフォールバックすることを意味します。

私は人形とシェフを比較している記事を知っています、そして私はそれらをいつそしてなぜ使うべきかを知るよりも、どちらを使うべきかについてあまり心配していません。

4

3 に答える 3

27

完全開示:私はPuppetLabsの従業員です。しかし、私は彼らに加わる前に、2年以上にわたって製品としてPuppetを選びました。

構成がa)ある程度複雑で、b)時間の経過とともに変化する場合、またはインストール環境自体が変化する可能性がある場合は、PuppetまたはChefovershellを使用することをお勧めします。デプロイメントが実行されます。スクリプトは非常に優れている可能性がありますが、最終的には、スクリプトに関するすばらしいプログラミングプラクティス、テスト、QAなどを行わない限り、ある時点で失敗します。

DevOpsの周りには、この概念について議論している識字者全員がいますが、それは「技術的負債」の原則に帰着します。私たちは今、物事を簡単な方法で行う傾向があるため、複雑さと難しさを増すことを犠牲にして、それらをより単純なものとして認識します。後で。

Puppetの強みの1つは、その決定論的性質です。作成するマニフェストは、Puppetによって、構築しているサーバーのモデルにプログラムで変換できる必要があります。これは人々によってより「困難」であると認識されていますが、テクノロジーのライフサイクルの曲線に沿って平均すると、困難は軽減されると私は主張します。言い換えれば、Puppetはあなたに今あなたの思考を強制しますが、後で考えてあなたが行くにつれて再設計するのではなく、簡単に拡張するために展開します。後で、利息を付けて、クレジットではなく、今すぐ現金で支払います。

他の人のマニフェストを純粋にプルダウンしている場合は、ある時点で問題が発生する可能性があります-そうではないようにしたいと思いますが、今日のPuppetでの作業は確かにそうです。なぜなら、彼らはそれらをアドレス指定するために書いているからです。一般的なケースであり、特定のシステムではありません。多くの汎用マニフェストは、Puppetをよりよく理解した場合にのみ役立ちます。

そこで、そこから始めるのではなく、優れたLearning Puppetガイドを読み進めて、基本を理解し始めます。Puppetの学習曲線は急ですが、しばらくすると横ばいになります。

他のプロビジョナーやツールを使用する理由は他にもありますが、シェルスクリプトが想定どおりに動作することを確認するよりも、PuppetまたはChefの方が優れていると確信しています。新しい環境を生み出す必要があります。

于 2011-10-21T04:50:16.037 に答える
10

ああ、選択の自由には、自分に合ったものを選択するという複雑さが伴います。

Chef Solo -Chefを使い始めたばかりの場合、またはChefサーバーが状況に対して単純に重すぎる場合は、ChefSoloが最適です。Chef Soloを使用すると、すべてのクックブックをプロジェクト内に埋め込むこともできます。これは、同じリポジトリ内でクックブックを追跡したいプロジェクトに最適です。Chef Soloはスタンドアロンで実行されます。通信するために、chefサーバーやその他のサーバーは必要ありません。VM上で単独で実行されるだけです。

Chefサーバー-Chefサーバーは、複数のプロジェクト間でクックブックを共有できるため、多くのプロジェクトを管理する企業や個人に役立ちます。クックブック自体はサーバーに保存され、クライアントは実行時にクックブックをダウンロードします。

Puppet -PuppetプロビジョナーはスタンドアロンのPuppetマニフェストを実行します。このマニフェストはサーバーに保存され、作成時にクライアントVMにダウンロードされます。プロビジョナーはPuppetサーバーを必要とせず、VM自体で実行されます。

Puppetサーバー-PuppetサーバープロビジョナーはPuppetサーバーに接続し、そのサーバー上のノード構成を使用してクライアントVMを構成します。

その他のツール、シェルスクリプトなど-Vagrantに組み込まれているもの以外のものを使用していますか?プロビジョナーは、Vagrant :: Provisioners :: Baseのサブクラスにすぎません。つまり、必要に応じて、独自のプロビジョナーを簡単に作成できます。

ドキュメント、docs.vagrantup.com/v2を確認することもできます

于 2011-10-20T04:54:45.700 に答える
4

シェルプロビジョナーを選択してから、シェルスクリプトにgithubまたはbitbucketからpuppet/chefリポジトリのクローンを作成させます。スクリプトはsshキーを設定して、自動gitクローンを作成できます。利点は、ほとんどのクラウドプロバイダーがこれもサポートしているため、同じスクリプトを使用できることです。このブログでは、git、puppet、vagrantについて、1人の男性とクラウドブログで詳しく説明しています。

于 2012-07-08T16:12:34.900 に答える