-

複数人でのバージョン管理時のサーバー保守について質問です。
svn・gitなどの種類は問いませんが、公開サーバーとテストサーバーという環境があり、それとは別に開発者全員のローカルに開発環境があるとします。

通常はそれぞれの開発環境(ローカル)で、制作・プレビューをし、pushあるいはcomitを行うと思います。
公開サーバーの仕様を変更する際、同時にテストサーバーや複数の開発サーバーにも同様の変更をする必要がある場合(たとえばphpライブラリのインストールなど)、これを手作業でサーバー台数分修正するのはとても骨が折れることが想像できます。たとえば、開発者が10人いる場合、それぞれのPC台数分
の設定が必要になります。

このような状況時、一般的にはどのような方法で、公開サーバー、テストサーバー、ローカル開発サーバーの仕様同期を維持していくのでしょうか。

みんなの回答 6 件

名無しさんの回答

最近はChefが流行ってるんじゃないですかね。
使ったこと無いのでどのくらい簡単に導入できるかは分からないけど、想像するにすでに構築済みのサーバー郡に途中から導入ってのは、手間かかりそうな予感はしますね。
手動でやる手間とこういう仕組みの導入コストを天秤にかける必要はあると思います。

Rubyist Magazine - Chef でサーバ管理を楽チンにしよう! (第 1 回)

http://jp.rubyist.net/magazine/?0035-ChefInDECOLOG
名無し

回答ありがとうございます。
chefを導入できれば楽になりそうですね。
ただ、一見したところ、情報や事例が多くない印象ですね。
chef以外では、みなさんどのように管理されているんでしょうか。やっぱり手動?

名無し

貼ったリンク先にも書いてあるけど、Chef登場以前はPuppetが使われてました。というかまだ使ってるところはあると思います。

名無し

選定編にありましたね。見落としてました。すいません。

名無しさんの回答

pdshや、findとxargs の組み合わせって方法もあるみたいですね。サーバのバージョンが古くて、そういうのが使えない人は、自分でスクリプトを書いてる例もある模様。

名無し

なるほどー
参考になります。
早速調べてみます。
情報ありがとうございます。

名無しさんの回答

PEARのライブラリも手動でincludeしてgitで管理しています。
コマンドラインで管理しているとズレるし面倒なので。
最近はJenkinsが流行りのようですが、あれは自動テストとか用途が違うのかな。

名無し

> PEARのライブラリも手動でincludeしてgitで管理しています。

gitのリポジトリとしてサーバー設定ファイルも対象にしてるってことでしょうか?

名無し

Jenkinsはテストサーバーに自動でデプロイして、問題が無いかを確認するためのものすな。もちろん、何が問題かは言語や作ってるものによって違うから、自分で最初に定義しないとですけど。

名無し

Jenkinsがサーバー設定ファイルもしくはサーバー全体の同期をとれるのであれば、可能性がありそうですね。ただ、プロジェクトファイルのみが同期対象であれば、gitのhookを使ったほうがスマートな気がしないでもないですね。

名無し

いやJenkinsってそういう為のものじゃないんで・・・

名無しさんの回答

どなたかrsyncでやってる方いらっしゃいますかね?

名無しさんの回答

公開、テスト、ローカルのOSやそのバージョンなどが元々バラバラなら別々に管理するしかないんじゃないでしょうか。
全て全く同じ環境であればライブラリがあるディレクトリをrsyncしても大丈夫な気もしますけど。

名無し

ありがとうございます。
これから新しく環境をつくるところで、今のところ、それぞれを異なるOSやバージョンを使用しなければならない制限はありません。手間を考えると最初からすべて同じ環境にしたいところです。rsyncでも考えてみます。

名無し

あ、ローカルはMac上で行うので、そういう意味では環境が違いますね。。

名無し

更新するファイルによっては、サーバーのrestartが必要になってくるので、rsyncによる自動同期はちょっと無理があるかもしれませんね。自動同期ではなくスイッチ的な何かを用意することになるのかもしれませんね。

名無し

新しく構築するならChef使えば良いのに。rsyncに慣れててrsyncでやる方法なら大体イメージ作ってんなら話は別だけど

名無し

なるほど。Chefは便利なんですね。rsyncにこだわっているわけじゃないですが、Chefの情報が少なかったので並列に情報を探ってました。情報ありがとうございます。

名無しさんの回答

ローカル環境廃止して、全員テストサーバにsshログインして開発というのはどうでしょうか?

名無し

そうなんですよ!私もそれがスマートに感じたのですが、そうなると今度は開発者全員のエディタやgit&svnのツールが制限されることになるのかなあと危惧しまして。全員がコンソール使えるわけではないことを考えると、ちょっと無理があるかもしれません。もしくは、私が使い方を知らないだけかも。

名無し

A「httpd.conf書き換えたからApache再起動します」B「え、あと5分待って・・・」C「いまテスト走らせてるんだけど・・・」

最終更新日:2012-10-18 (3,385 views)

関連するトピックス

ページ上部に戻る