web-dev-qa-db-ja.com

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

私は最近、人形について研究しており、デプロイメントパイプラインに統合することは有用だと思います。

現在、手動でユーザーを追加し、vhostを作成し、ディレクトリを設定してから、GitHubからリポジトリのクローンを作成してアプリをデプロイしています。単純なGitプルで変更をデプロイします(Gitフックがデータベースの移行、キャッシュのクリアなどを処理します)。

Puppetを使用すると、マニフェストをセットアップして、ディレクトリの作成、アクセス許可、仮想ホストの管理を行うことができます。アプリをdev/prod環境にデプロイするには、GitHubからマニフェストをプルしてローカルで実行します。また、Puppetは、GitフックにPuppetマニフェストプロセスを追加して、すべてのプル、Puppetがディレクトリのアクセス許可に問題がないことを確認できるようにすることも考えていました。

このアプローチに問題はありますか?私がもっとうまくできることは?

3

これは効果的なアプローチのようです。私は創造性が好きです。コメントを求めたので、いくつか提供します。

1)puppetは非常に強力なツールですが、ディレクトリの作成とアクセス許可だけでは少しやり過ぎのようです。単純なbashスクリプトは、Puppet実行可能ファイルの依存関係なしで、Puppetと同じくらい多くの行でトリックを実行する可能性があります。

2)Puppetを使用してデプロイを行うことも検討してください: PuppetLabsは、gitリポジトリからチェックアウトするためのマニフェストを提供します 。その後、定期的に、または他の形式のトリガーで実行できます。これは明らかにデプロイメントの方向性を逆転させ、「プッシュ」モデルから「プル」モデルに変えます。シンプルさなどの利点があります。

3)Puppetのより高度な使用法では、アプリのインストールを含め、実稼働環境全体を最初からセットアップする必要があります。これにより、アプリの完全に自動化されたインスタンスが作成され、仮想化されたインスタンスが簡単でポータブルになり、水平方向のスケーリングが簡単になります。

2
nrobey