2013 11
01
  • このエントリーをはてなブックマークに追加

Amazon EC2+EBSにSubversion+Redmine環境を作ってみる

カテゴリ:開発環境構築

先日、こんなことをしたんですが。

Amazon EC2+EBSにSubversionを突っ込んでみた

後になって「BitNami」なんてものがあると知りましてね。

というかRedmineについて調べてたら、このBitNamiっていうAWS Marcketにあるイメージの中に入ってるよってね。

で、どーもSubversionも入ってるっぽいわけですよね、これね。

そうだよね、Redmine使うっつったら、SVNとかMySQLあたりは普通入ってるよね。

おいらびっくり。

というわけで、今日は先日やった作業を全部破棄して、こっちに乗り換えてみようと思います。

破壊の先に創造ありって言うじゃん! 俺が創造してるわけじゃないけどね!!

まずはここからEC2インスタンス作ります。
http://bitnami.com/stack/redmine/cloud/amazon
%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89  Amazon EC2+EBSにSubversion+Redmine環境を作ってみる 2013 10 31 06h54 22

なんら難しい事はなく、先日やったようにクリックして、EC2のページ飛んで、インスタンス作ってーっていう作業は一緒です。

注意点としてはEBSはデフォルトだとボリューム一つだけになってるので、20GBぐらいのを一つ追加。

特に変わりなく、後は先日やった作業と同様にキーペアの紐づけしたりセキュリティグループの設定したり。

ここらへんは先日やった分の設定が残っているので、決して無駄ではなかったと。

後、IPの設定なんかもしました。

とりあえずインスタンス自体は前と同じぐらいの状況まで持っていってます。

ちなみに今回の参考元は下記。

【EC2】 Subversion+Redmine環境の構築 (1/6)
以前はそこまでやってなかったんですが、参考URL見てると色々してるので、折角なのでやっておきます。

ログインユーザーはbitnamiだとの事なので、ログイン。

まずはSSH周りの設定から。
$ sudo vi /etc/ssh/sshd_config

地味に参考元のコマンドがタイポしてるからエラー出てちょっとびっくりしたのは秘密。
PermitRootLogin no
Port 適当に

こんな感じで、ここらへんの設定項目を変更します。

設定を変えてSSH再起動する前にサーバーのポートは空けておく事。

でないと、再起動したはいいけど、ポートが開放されてないから使えません的な話になる。

心の準備が出来たら、再起動。
/etc/init.d/ssh restart
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
 * Restarting OpenBSD Secure Shell server sshd start-stop-daemon: warning: failed to kill 552: Operation not permitted

こんなん出た。Permitted。あ、うん。
$ sudo /etc/init.d/ssh restart

権限あかんかったわ。てへぺろ。

設定変更後にSSHで22番ポートに接続できない事、設定したポートで接続できる事の確認が取れたら、セキュリティグループの設定からSSHを削除。

続いてシステムのアップデート。

以前は yum で行けてたけど、今回はみんな大好きUbuntuさんになっているのでコマンド変わります(ていうかyum入ってないだけ)
$ sudo apt-get update
$ sudo apt-get dist-upgrade
$ sudo apt-get upgrade

最後にロケールや時間周りの設定をします。
$ sudo dpkg-reconfigure tzdata

Asiaを選んでTokyoを選択。
Current default time zone: 'Asia/Tokyo'
Local time is now:      Thu Oct 31 07:40:28 JST 2013.
Universal Time is now:  Wed Oct 30 22:40:28 UTC 2013.

でけた。最後にNTPサーバーの変更。
$ sudo vi /etc/default/ntpdate
#NTPSERVERS="ntp.ubuntu.com"
NTPSERVERS="ntp.nict.jp"

これでサーバー環境の設定は完了どす。
先日やったばかりなんですが、再度やります。

ところがどっこい、今回の設定については良く分からんところが多々見受けられたので、わからんなりに進めます。

まずSVNは入っている状態なので、リポジトリの作成を行います。
$ sudo mkdir repos
$ sudo chown -R daemon:daemon repos/
$ sudo -u daemon svnadmin create /opt/bitnami/repos/test

ユーザーの権限設定とリポジトリの作成がすんなり出来たところ。

なお、BitnamiのRedmineスタックはapacheの実行ユーザがdaemonになってます。
リポジトリには、apache経由でアクセスすることを想定しているので、所有者はdaemonユーザにしました。

だ、そうなので、準拠してます。頑張るところでもない気がしたので。
$ svn info file:///opt/bitnami/repos/test/

接続確認を行って問題なければ次へ。

そして放置していたhttp接続を……後、ブラウザから操作できるようにも設定します。

ブラウザ操作とか出来るのかー。知らんかったわー。出来て不思議はないけどもー。そうかー。

って感じ。

Apacheの設定ファイル(/opt/bitnami/apache2/conf/httpd.conf )に下記を追加。
# SVN Configuration File
Include "/opt/bitnami/apache2/conf/extra/httpd-svn.conf"

コメントは好み。

で、インクルードで設定したファイルを新規作成して、SVNの設定を纏めます。

以前設定したものとほぼ同じはず。

と思って記事見てきたら結構違ってた。あっちはあっちで残しますけどもね。
# Subversion
<Location /svn>
    DAV svn
    SVNParentpath "/opt/bitnami/repos"
    SVNListParentPath On
 
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile /opt/bitnami/apache2/conf/.htpasswd.svn
    Require valid-user
</Location>

続いて、Basic認証用のパスワードファイル作成。

場所は一階層戻って、confんところでやってます。
$ sudo htpasswd -c ./.htpasswd.svn koujienami
New password:
Re-type new password:
Adding password for user koujienami

/opt/bitnamiに下記のようなスクリプトがあるみたい。ほぇー。

これ使ってApacheを再起動します。
$ sudo ./ctlscript.sh restart apache

http://サーバー名/svn/test でログイン出来るか確認して、行けたらOK。

今回は何事もなく上手くいった。さて、どこでつまずくかな……。

続いてブラウザ上からSVNを色々操作出来るようにします。

WebSVN Administrator なるものを使います。
$ sudo mkdir /opt/bitnami/download
$ sudo cd /opt/bitnami/download
$ sudo wget 'http://sourceforge.jp/frs/redir.php?m=osdn&f=%2Fwebsvn-admin%2F50678%2Fwebsvn-admin-0.2b2.tar.gz'
$ sudo mv redir.php\?m\=osdn\&f\=%2Fwebsvn-admin%2F50678%2Fwebsvn-admin-0.2b2.tar.gz websvn-admin-0.2b2.tar.gz

適当なダウンロードフォルダ作って、そこにダウンロードして、リネームします。

続いて、Webアクセス可能な場所へ配置。
$ cd /opt/bitnami/apps/
$ sudo tar zxvf ../download/websvn-admin-0.2b2.tar.gz
$ sudo chown -R bitnami:daemon websvn-admin-0.2/
$ cd ../apache2/htdocs/
$ ln -s ../../apps/websvn-admin-0.2/ websvnadmin

websvn-admin-0.2/include/config.phpを編集。
$strSvnCmdPath = '/opt/bitnami/subversion/bin/';
$strBaseDir = '/opt/bitnami/repos/';
$strBackupDir = '/opt/bitnami/backup/repos/';

アクセス時にパスワードファイルの書き換えが発生するようなので権限を設定。
$ chmod 775 /opt/bitnami/apps/websvn-admin-0.2/data/

phpのタイムゾーンを設定。
$ vi /opt/bitnami/php/etc/php.ini

date.timezone = "Asia/Tokyo"

$ cd /opt/bitnami
$ sudo ./ctlscript.sh restart apache

最後にwebsvn-admin-0.2直下にあるindex.phpのsvnadmin createをしているところに下記を追加。
exec($strSvnCmdPath."svn mkdir file://".$strBaseDir.$strRepo."/branches -m 'Created branches' 2>&1", $arrStdout, $nResult);
exec($strSvnCmdPath."svn mkdir file://".$strBaseDir.$strRepo."/tags -m 'Created tags' 2>&1", $arrStdout, $nResult);
exec($strSvnCmdPath."svn mkdir file://".$strBaseDir.$strRepo."/trunk -m 'Created trunk' 2>&1", $arrStdout, $nResult);

個人的趣味趣向によるものですが、まぁ、trunk,branches,tagあたりは作るよねーと。

この状態で初のブラウザアクセスかましてみます。
%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89  Amazon EC2+EBSにSubversion+Redmine環境を作ってみる 2013 11 01 00h13 21

出来た。これにてSVNの設定は完了。

一応テストがてらリポジトリを作り直したりしてみたけど、出来たので問題なし。

解説してない範囲で言うと、backupフォルダを作成して権限を適切に設定しておかないと削除が出来ないってぐらい。

続いてRedmineの設定……と思わせておいて、まずはSSLの設定やります。
俗に(?)オレオレ証明書と言われているものを作成して、httpsでの接続を確立します。
$ sudo /opt/bitnami/common/bin/openssl genrsa -des3  -out /opt/bitnami/apache2/conf/privkey.pem 1024
Generating RSA private key, 1024 bit long modulus
.++++++
................++++++
e is 65537 (0x10001)
Enter pass phrase for /opt/bitnami/apache2/conf/privkey.pem:
Verifying - Enter pass phrase for /opt/bitnami/apache2/conf/privkey.pem:

CSRの作成。
$ sudo /opt/bitnami/common/bin/openssl req -new -key /opt/bitnami/apache2/conf/privkey.pem -out /opt/bitnami/apache2/conf/cert.csr

指定された項目に従って入力していきます。FQDNだけ気をつけるぐらいかな。

独自ドメイン設定している人はそのままになると思いますが、そうじゃない場合はnslookupなどでFQDN調べましょう。

続いて自己署名証明書の作成。
$ sudo /opt/bitnami/common/bin/openssl rsa -in /opt/bitnami/apache2/conf/privkey.pem -out /opt/bitnami/apache2/conf/server.key
$ sudo /opt/bitnami/common/bin/openssl x509 -in /opt/bitnami/apache2/conf/cert.csr -out /opt/bitnami/apache2/conf/server.crt -req -signkey /opt/bitnami/apache2/conf/server.key -days 3650

後はApache再起動して、SSLが繋がれば無問題。

SSLの設定はIncludeしなくても、bitnamiの場合はデフォルトでhttpd.conf内に記述されている模様。

接続確認をしたら、やっとこさRedmineの設定。
https://サーバーのアドレス/redmine/ にアクセスするとRedmineが既にインストール済みのはず。
%e9%96%8b%e7%99%ba%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89  Amazon EC2+EBSにSubversion+Redmine環境を作ってみる 2013 11 01 00h53 16

初期ユーザー名はuser 初期パスワードはbitnami との事なのでそれでログイン。

まずはここらへんを参考に設定。

adminユーザの使用言語の変更
日本語での利用に適した設定
ログインしているユーザーのみ情報を閲覧可能にする

後は、サンプル的にプロジェクトを作成して、プロジェクトの管理からリポジトリを設定して、SVNとの連携が出来るかを確認すればOK。

で、自分のところでは問題なく繋がったのだけれど、人によってはRedmineで自己署名証明書でのhttps接続が出来ないご様子。

そうなった方はこちらを参考にして下され。

【EC2】 Subversion+Redmine環境の構築 (4/6) : Redmine の設定
redmineでSubversionリポジトリにhttpsでアクセスする

これで一通りのSubversionとRedmineの設定は完了! オワタ! 疲れた!

残りは好みに応じて、httpのポートを閉じたりとかすれば良いかと思われまする。

次はJenkinsでも用意して、サーバー周りは完全に終了させたいところ。
関連記事

コメントはこちらから




?
© 2017 Peace & Piece. All rights reserved.