Puppetを使用したアプリケーションのデプロイメント


10

私はPuppetを初めて使用し、* nixシステムを長年使用してきましたが、sysadminとしても、opsとしても働いたことはありません。

現在、一連の(PHP / MySQL / MongoDB、git内のコード)WebアプリケーションをホストするためのPuppetマニフェストを作成しています。各ホストに仮想ホストを設定するため、Puppetが実際のアプリケーションについてある程度の知識を持っている必要があることは明らかですが、Puppetがコードのデプロイやデータベースの作成などを管理する必要があるかどうかはわかりません。

Puppetはアプリケーションのデプロイメントに適したツールですか?そうでない場合、より適切なツールを推奨できますか?


3
後でこれに進む場合は、すべての回答が適切です。回答として選択した回答を読むだけではありません。
michaeltwofish

回答:


10

展開については、カピストラーノまたはファブリックのいずれかを検討します。

これら2つのツールを使用すると、展開がどのように行われるかをより適切に制御できます。


2つの解決策が得られたので、この回答を+1しました。
フランソワボーソレイユ

ポインタに感謝します。スタックのどこかにRubyがあるので、カピストラーノを見てみましょう。
michaeltwofish

9

Puppetは、多くの大規模な組織でのデプロイメントに使用されますが、常に完全であるとは限りません。その多くは、展開方法に依存します。一度に多くのマシンにデプロイしていますか?ローリング展開を行いますか?

一部の組織では、Puppetを使用してデプロイメントのパッケージを作成し、そのパッケージの適切なバージョンになるようにpuppetにポリシーを適用させています。puppetには環境の概念が含まれているため、環境を使用して段階的にデプロイメントを行うことができます(たとえば、dev、test、prod)。

他の組織はパペットを使用して、rsync、gitチェックアウト、またはパペットを使用して再帰的にファイルコピーを起動することによりデプロイメントを調整します(ただし、かなり低速です)。

展開に利用できる他のかなり良いツールもあります。私は過去にWhiskey Disk(シンプルなルビーツール)を使ったことがあり、とても気に入りました。

(免責事項、私はパペットラボで働いています)


ありがとう。デプロイメントは、現在手動​​のrsyncを使用している2つのバランスの取れたサーバーに対して行われます。
michaeltwofish 2012年


4

私の意見では、Puppetはアプリケーションをデプロイするための適切なツールではありません。

Jenkinsを使用して、コードをビルドおよびデプロイし、テストとステージングを行います。

Jenkinsはもともと継続的インテグレーションサーバーですが、本当に柔軟でモジュール式です。アプリケーションのデプロイに役立つJenkinsのプラグインはたくさんあります。

私たちのアプリケーションでは、正常に構築されたWARファイルを宛先サーバーにコピーし、バックアップと展開を行うスクリプトを実行するSSH経由で発行するようにJenkinsを構成しました。お役に立てれば!


私たちはCIにJenkinsを使用しているので、これは間違いなく探求する興味深いオプションです。
michaeltwofish 2012年


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.