プロジェクトごと、案件ごとの
- CapistranoのCapfileやdeploy.rb
- Chefのcookbook (Ansibleのplaybook)
- Serverpecの*_spec.rb
といったデプロイ/プロビジョニング用のファイルをどのように管理されていますか?
もしくはどのように管理するのが良いと思いますか?
「プロジェクトのソースコードのリポジトリ内で一緒に管理している」とか、はたまた「プロジェクトを横断して全部まとめて管理している」など、参考になる意見をお待ちしております。
その際に、採用している方法(良いと思う方法)についてメリットとして感じていること、デメリットとして感じていることもお聞かせください
いろいろ試行錯誤しつつ、変更しつづけてたりするけど、現状を回答してみます。
ちなみに、fabric/ansible/serverspec を使っております。
各プロジェクト毎に、アプリケーションとは別に server という名前でリポジトリを別(または、Subversion ならディレクトリを別) にして管理してます。
で、その中身は、
みたいな構成になってます。
fabric や ansible については、どのプロジェクトでも共通な部分は、
できるだけ社内共通ライブラリにまとめて、pip でインストールして使う、みたいな感じになってきています。
たとえば、ansible の module や、fabric のタスク( http://www.backlog.jp/blog/2013/09/fabric-advanced.html ) とか。
どのプロジェクトでも上記構成で統一されていると、
どこになにがあるかわかるのはいいですよね。
共通な部分をまとめてライブラリ化するのは、
全体を見てて、かつ「良い塩梅」でまとめてくれる人が必要かと思います。
( 僕はあまりやれません... )
回答になってますでしょうか?
コメント(0件)