はじめに
最近は Github が主流かと思いますが、まだまだ諸事情などで社内で Subversion を使い続けているケースもあると思います。
今回は、Subversion のリポジトリ管理とユーザ利用権限が一元で管理ができる SCM Manager を利用して、既存のSVNリポジトリを SCM Manager 配下に管理し、Active Directory と連携して、適切な権限管理とリポジトリ管理をWEBインターフェース上から操作してみます。
解決したい課題
これまではリポジトリの作成、ユーザ認証の設定などはサーバ管理者が行っていたが、それぞれの部署で非サーバ管理者が簡易的にできるようにしたい。
利用サービスの増加やスタッフの部署移動などで、それぞれのサービス毎に行っていた認証許可を一元管理で行いたい。
解決手段
リポジトリ・ユーザ認証管理をWEBインターフェース上から操作のできる「SCM Manager」を活用し、Active Directoryサーバと連携をする。
事前調査
ソフトウェア選定にあたり事前調査したところ、以下の3つが候補として上がってきました。
「Submin」「SVN Manager」も試してみたのですが、Active Directory と連携するにはひと手間必要でした。
「SCM Manager」はプラグインを提供しており、その中に Active Directory プラグインを使ってみたところ、すんなり連携可能でした。
Submin
SVN Manager
SCM Manager
What is SCM Manager ?
公式HPトップの内容を和訳してみました。
https://www.scm-manager.org/
HTTP経由で Subversion / Git / Mercurial とのリポジトリを容易に管理することができます。
・非常に簡単なインストール
・SCM Managerは、そのウェブインターフェースから完全に構成可能であり、設定ファイルをハックする必要はありません
・Apache + DataBase をインストールする必要はありません
・ユーザ、グループ、およびアクセス許可の管理
・Gitは、 MercurialのとSubversionのためのボックスのサポートのうち
・完全なRESTfulなWebサービスAPI (JSON / XML)
・リッチユーザーインターフェース
・簡単なプラグインAPI
・利用可能な便利なプラグイン( LDAPベース / ActiveDirectory / PAM認証)
・BSDライセンス
SCM Manager の起動
コンテンツをダウンロードして、ファイルを展開後、SCM Manager を起動します。
起動には java の環境が必要になります。
tar xzvf scm-server-1.45-app.tar.gz cd scm-server/bin ./scm-server
http://localhost:8080/
ID: scmadmin
PW: scmadmin
既存Subversion リポジトリの移行
今回は 既存のSubversion サーバとは別のサーバに構築しているので、リポジトリのお引越しを行います。
移行先サーバからダンプファイルを取得し、そのままロードまで行います。
cd ${SVN_HOME} for REPO in repo1 repo2 repo3 repo4 repo5 ; do svnrdump dump --username USER --password 'PASSWORD' http://repo.example.local/svn/${REPO} > /var/tmp/${x}.svndump svnadmin create ${REPO} svnadmin load ${REPO} < /var/tmp/${REPO}.svndump chown -R tomcat. ${REPO} done
SCM Manager 側の設定
リポジトリのインポート
先ほどお引越ししてきたリポジトリ達を SCM Manager 側にインポート処理を行います。
左側ナビゲーションのメインにある「Import Repositories」→「Subversion」→「Import from directory」で
インポートされたリポジトリが表示されたら完了です。
Active Directoryサーバとの連携
左側ナビゲーションのメインにある「Config」→「Plugins」 →「scm-auth-ldap-plugin」の Install をクリックし、SCM Manager を再起動します。
※scm-activedirectory-auth-plugin はホストOSが Windows Server の場合に利用可能。
ログイン画面表示後、Active Directory のアカウント情報でログインができれば連携成功です。
利点
.htpasswd ファイルベース管理からの開放
Git / Mercurial も利用可能
プラグインが豊富
注意点
管理画面が英語
リポジトリURLが変更となるため、切替設定をする必要がある
リポジトリ以下のディレクトリ単位で権限設定ができない(?)
まとめ
Subversion + SCM Manager + Active Directory でリポジトリ・ユーザ管理が効率的になりました。
サーバ管理者以外でもリポジトリ管理が容易になったので、委譲したらどんどん活用してもらいたいです。
参考文献
SCM-Managerの認証をActiveDirectoryで行う
[amazonjs asin=”4774164283″ locale=”JP” title=”チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)”]
[amazonjs asin=”4822298280″ locale=”JP” title=”ひと目でわかる Active Directory WindowsServer 2012 R2版 (TechNet ITプロシリーズ)”]