amari3のはてなダイアリー このページをアンテナに追加 RSSフィード

2008-05-28

[][]ファイル管理に悩むサーバエンジニア

サーバにあるドット系ファイルやapache のコンフィグ、認証鍵等の管理方法について悩んでる。

今の僕のなんちゃってファイル管理ポリシーは、プロジェクトやプロダクトに関係するファイルは svn で管理。どっちかというとサーバ固有のファイルは、当該サーバにて RCS で管理している。(apache のコンフィグはプロジェクトに関係しているとも取れますが)

で、最近悩み始めたのは、RCS で管理しているファイルも全部 svn で管理した方がいいんじゃねってこと。考えられるメリットは

  • VC を一つにまとめられる
  • svn の方が RCS より色んな意味で便利
  • サーバにログインしなくてもファイルを確認できる

メリットが大きいと思うけど、apache のコンフィグとかを別な場所(リポジトリ)に置くのがちょっと気持ち悪い気もする。(個人的主観が強し)

そんなこんなで、ファイル管理ポリシーを決められないでいます。とはいえ部署内で使うなら svn で一本化(いやいや兄さん今は git の時代ですよも可)の方が、余分なことを覚えなくてすむので良いかもしれない。

う〜ん、書いてるとまた悩んできた。。

2008-02-09 Subversionのメンテ

[][][]Subversionリポジトリ移行

土曜深夜から日曜未明にかけて、自宅でこっそり、会社のリポジトリ移行作業(コピー)をやりますた。

やり方は非常に簡単。手順はこんな感じ。

  1. 移行元のリポジトリをダンプ
  2. リポジトリを作成
  3. 移行先のリポジトリへロード

実際に発行したコマンドはこれ。

% svnadmin dump /home/svn/repos > dump-repos
% svnadmin create repos-new
% svnadmin load repos-new < dump-repos

時間がかかるので、その間に仕事のメールに返信とかして暇つぶし。小一時間ほどで無事完了。

別ラインの開発中に、間違ってコミットしたくないとかで依頼されたんだけど、ブランチを切って、pre-commitのフックでアクセス権を確認するやり方も有りな気がする。(ちなみにsvn+sshでやってます)

リポジトリの運用って、他の人や会社ではどうやってんだろう??すごく気になる。

Subversion実践入門?達人プログラマに学ぶバージョン管理

Subversion実践入門?達人プログラマに学ぶバージョン管理

2007-07-06 Subversion

[][]Subversionをインストール。

会社ではソース管理にSubversionを使ってるので、自宅でもまじめにやろうと思い、自宅サーバ(Fedora Core 4)にインストールしてみる。忘れないようにインストール手順と各種設定方法をめもめも。

Subversionのインストール

% sudo yum install subversion

svn+sshを使ってリポジトリに接続するので、svnserveの設定をしておきます。今回はxinetd経由で起動するように設定します。

svnserve用のユーザを作成

# adduser svn
# passwd svn

リポジトリはsvnユーザのホームディレクトリ直下(/home/svn)に置くことにします。

xinetdの設定は、/etc/xinetd.d/svnserveに以下のように設定しました。

service svnserve
{
    disable         = no
    socket_type     = stream
    wait            = no
    user            = svn
    server          = /usr/bin/svnserve
    server_args     = -i -r /home/svn
    log_on_failure  += USERID
}

xinetdに設定ファイルを再読み込みさせる

# ps aux |grep xinetd
root     29767  0.0  0.1   3124   920 ?        Ss   02:21   0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
# kill -HUP 29767

サービス名と使用ポート番号を/etc/servicesに追加する

svnserve             3690/tcp                        # Subversion
svnserve             3690/udp                        # Subversion

svnserveを起動するように設定する

# chkconfig --add svnserve

xinetdを再起動する

# service xinetd restart

グループ管理(svnグループ)でリポジトリへのアクセス制限をするので、リポジトリにアクセスさせたいユーザを以下のコマンドで追加

# gpasswd -a USER

リポジトリを作成する。/home/svn/reposにリポジトリを作成します。svnグループの読み書きが出来るように設定。

# su - svn
% svnadmin create /home/svn/repos
% chmod -R g+rw /home/svn/repos/

リポジトリの認証設定。公開鍵認証でのアクセスとなるので、/home/svn/repos/conf/svnserve.confを以下のようにしました。

[general]
anon-access = none   # 匿名ユーザは許可しない
auth-access = write  # 認証されたユーザにRead/Writeを許可
realm = Test Repository

ここまででサーバ上の基本的な設定は終わりです。あとはauto-props設定とかやっておくと素敵です。

今回のインストールで参考にしたのはこちらです。no title

Subversion実践入門?達人プログラマに学ぶバージョン管理

Subversion実践入門?達人プログラマに学ぶバージョン管理