SVNサーバの移動

VMware(ESXi7.0)の環境を作って2ヶ月。それまで自宅で動かしていたサーバの機能は、一通りVMware上の仮想サーバに移したのですが、一つだけ残していたのがSVNサーバの稼働です。

VMware(ESXi7.0)への環境構築

難しい話でも何でもなく、特に急がなかったから、というのが理由です。では、なぜこの時期に?というのは「風が吹けば桶屋が」的な話ですが、メインで使用しているスマホ SH-51A に、Andoroid 11へのアップデート通知が来たからです。

新しいものを試してみたい、という思いの裏に、ひとつだけ気がかりがあったんですね。

それが、自作のAndroidアプリが動くのか、ということ。10で動いてるので、まぁ11でも動くだろうとは思うのですが、アップデートしてから「ひゃー、動かない!」だけは避けたいので、Android Studio の仮想デバイスで確認しておきたかった、という理由です。

いや、直接の理由になってないですね。

Android Stuido の作成環境をSubversionで管理していたので、サーバを立ち上げなおす必要があった、ということです。もちろん、サーバ間でリポジトリを移動させる、という手間も必要です。

というわけで、まずは、ESXi7.0上にCentOS 7のサーバを作成します。

SVNサーバの設定

まずはSVNサーバのサービス、subversionをインストール。

# yum install subversion

今回は、インストール時の「ソフトウェアの選択」でいろいろなツールを追加したので、インストールは不要でした。

次に、リポジトリ用のディレクトリを作成します。名前のこだわりではないのですが、

/home/svn/repos/

をリポジトリ用のルートディレクトリとします。実際のリポジトリは、この下に作成します。

ですので、subversionの設定を変更します。

/etc/sysconfig/svnserve

# Specify the repository location in -r parameter:
OPTIONS="-r /home/svn/repos/"

他PCからのSVNサーバへのアクセスを行いますので、ポートの開放を行います。

# firewall-cmd --permanent --add-port=3690/tcp
# firewall-cmd --reload

最後に、SVNのサービスを起動時にも有効にして、立ち上げます。

# systemctl enable svnserve.service
# systemctl start svnserve.service

念のためテスト

test というリポジトリをテストで作成します。

# svnadmin create /home/svn/repos/test

testリポジトリの中にファイルを作成するのは後にして、まずは、Tortoise SVNからアクセス。リポジトリブラウザーを使用します。

あれ?
「Unable to connect to a repository at URL 'svn://192.168.xx.xx/home/svn/repos/test’ No repository found in 'svn://192.168.xx.xx/home/svn/repos/test’」
と出て、アクセスできてないですね。

/etc/sysconfig/svnserve での設定を忘れてました。

アクセスは、 svn://192.168.xx.xx/home/svn/repos/test ではなく、svn://192.168.xx.xx/test です。

リポジトリをまとめて移動

元のサーバで、リポジトリから履歴込みでバックアップを取ります。ちなみに、リポジトリ名は、AndroidProjectという名称で運用していました。(新旧サーバともリポジトリの階層は同じです)

# svnadmin dump /home/svn/repos/AndroidProject > AndroidProject.dat

作成した dat ファイルは、WinSCP で、一旦ローカルPCに移しておきました。

新サーバでは、同名のリポジトリを作成しておきます。

# svnadmin create AndroidProject

このファイルをWinSCPで新サーバのリポジトリルートディレクトリにアップロードします。

# svnadmin load AndroidProject < AndroidProject.dat

これだけです。

アクセスできるユーザとパスワードを設定

旧サーバで設定していなかっただけなんですが、リポジトリにアクセスできるメンバーを限定しておきます。

/home/svn/repos/リポジトリ名/conf/svnserve.conf

[general]
# anon-access = read
# auth-access = write
anon-access = none
auth-access = write
password-db = passwd

anon-access を noneにし、password-db に passwd を設定します。

/home/svn/repos/リポジトリ名/conf/passwd

[users]
ユーザー名 = パスワード

# harry = harryssecret
# sally = sallyssecret

これでOKです。

動作確認

せっかくなので、Android Studioと仮想デバイスは、今年1月に購入した OMEN by HP 25L Desktop GT12 で動かしてみたいという思いから、新たに Android Studio をインストールしたうえで、開発環境(ソースコード等一式)を、最新の環境をESXi7.0に設置したSVNサーバから取得しました。

Android Studio に、Android 11.0 のSDKを追加し、AVDマネージャからAndroid 11.0の仮想デバイスを追加して、ビルド後に実行。

問題なく動くことが確認できましたので、いつでも SH-51A を 11 にアップデートできそうです。