基本だけど、胃を痛めながらやったのでメモ。
稼働中の EC2 インスタンスで EBS(Root Device) のサイズを変更。
基本的に、現在の EBS からスナップショット作成→スナップショットから新規 EBS ボリューム作成 → 新しいボリュームをアタッチして再起動、という流れ。
2013年5月30日
by kazoo
0 comments
基本だけど、胃を痛めながらやったのでメモ。
稼働中の EC2 インスタンスで EBS(Root Device) のサイズを変更。
基本的に、現在の EBS からスナップショット作成→スナップショットから新規 EBS ボリューム作成 → 新しいボリュームをアタッチして再起動、という流れ。
2013年2月19日
by kazoo
1 Comment
なんかサーバ設定ばかりメモってる気がするが。
猫も杓子も GitHub。 もはやエンジニアはこれが使えなければ人に非ずな感じの昨今ですが、GitHub では無料アカウントではプライベートリポジトリを作ることができません。また、外部サーバに成果物が保存されることが業務利用上、問題になる場合も多いです。
(とはいえ、月額たった $7 で 5 つのプライベートリポジトリを作れるので、個人あるいは所属組織で問題なければこれで十分と言えそうですが)
そこでクローズド環境で GitHub ライクなサービスを独自で構築できるようにしたものが GitLab だそうです。これもまた GitHub でオープンソース公開されています。
以下、これを Amazon EC2 にインストールした際のメモ。
いや、結局外部サーバやん、って突っ込みは無しで。
2012年10月3日
by kazoo
0 comments
[お題]
現在数名で使っているデスクトップLinux上のsvn、定期バックアップは取っていますが、かなりHDDが圧迫されていること、またいい加減ボロくて怖いので、一部クラウド化を検討したい。
Amazon EC2でsubversion用のインスタンスを稼働させ、リポジトリは Amazon EBS(Elastic Block Store)上に展開します。
参考にさせていただきました。
■Amazon EC2/S3の使い方目次
http://d.hatena.ne.jp/dkfj/20080222/1203658623■Amazon Elastic Block Store (EBS)上に、Subversionのリポジトリを置く
http://d.hatena.ne.jp/dkfj/20080907/1220771766■AmazonEC2へsvnリポジトリ作成
http://d.hatena.ne.jp/oyama1102/20110914/1315955862■’AuthzSVNAccessFile’, perhaps misspelled or defined …..
http://www.svnforum.org/threads/38266-AuthzSVNAccessFile-perhaps-misspelled-or-defined
日本語オフィシャルはこちら
[前提]
以下はコンソールで。
Elastic IP のアドレスに ec2-user でログイン。
1 |
$ ssh -i private_key.pem ec2-user@XX.XX.XX.XX |
とりあえず yum をアップデート。
1 |
$ yum update |
EBSボリュームを ext3 でフォーマットして /svn にマウントする。
デバイスがどのようにマッピングされているかは、AWSコンソールの Attachment Information から見る事ができます。
1 2 3 |
$ sudo mkfs -t ext3 /dev/sdf $ sudo mkdir /svn $ sudo mount /dev/sdf /svn |
確認。
1 2 3 4 5 6 7 8 |
$ mount /dev/xvda1 on / type ext4 (rw,noatime) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) /dev/xvdf on /svn type ext3 (rw) |
念のためインストールされていないことを確認して、subversion と mod_dav_svn をインストール。
1 2 3 4 |
$ yum list installed | grep subversion $ yum list installed | grep svn $ $ sudo yum install subversion mod_dav_svn |
リポジトリを作ります。まずはサンプル。
1 2 3 4 5 6 7 |
$ cd /svn $ mkdir repos $ cd repos $ mkdir sample $ svnadmin create sample $ ls sample/ README.txt conf db format hooks locks |
さらにtrunk, tags, branchesと必要なディレクトリを作る。
1 2 3 4 5 6 7 8 |
$ sudo svn mkdir file:///svn/repos/sample/trunk -m "create" Committed revision 1. $ sudo svn mkdir file:///svn/repos/sample/branches -m "create" Committed revision 2. $ sudo svn mkdir file:///svn/repos/sample/tags -m "create" Committed revision 3. |
apacheとの連携ファイルを編集。
1 |
$ sudo vi /etc/httpd/conf.d/subversion.conf |
以下を追記する。
1 2 3 4 5 6 7 |
DAV svn SVNPath /svn/repos/sample AuthzSVNAccessFile /svn/repos/sample/authzsvn.conf Require valid-user AuthType Basic AuthName "SVN repos" AuthUserFile /svn/repos/sample/.htpasswd |
Basic認証ファイルを作成
1 |
$ sudo htpasswd -cb /svn/repos/sample/.htpasswd ec2-user ec2-user_pass |
認証用設定ファイルを作成。
1 |
$ sudo vi /svn/repos/sample/authzsvn.conf |
以下を記述する。
1 2 3 4 |
[group] dev_grp = ec2-user [/] @dev_grp = rw |
ファイル属性をapacheグループに変更して、httpd を再起動。
1 2 |
$ sudo chown -R apache:apache /svn/repos/sample $ sudo /sbin/service httpd restart |
おや?
1 2 |
Starting httpd: Syntax error on line 2 of /etc/httpd/conf.d/subversion.conf: Unknown DAV provider: svn |
mod_dav_svn を Apache の設定で LoadModule していませんでした。。
1 |
$ sudo vi /etc/httpd/conf/httpd.conf |
適当な場所に、以下を追記してあげます。
1 |
LoadModule dav_svn_module modules/mod_dav_svn.so |
mod_dav_svn は、Apache と subversion を結び付けるモジュールです。
この設定ディレクティヴについては、こちらのサイトが詳しいです。
また、以下も同じく httpd.conf に追記します。
mod_authz_svn は、Apache サーバを通して提供される Subversion リポジトリに、パスベース認証を設定します。(参考)
1 |
LoadModule authz_svn_module modules/mod_authz_svn.so |
再度の再起動。今度こそOK。
最後に、ec2-user が apacheグループじゃない場合は、追加してやる。
1 2 3 4 |
$ sudo /sbin/service httpd start Starting httpd: [ OK ] $ $ sudo usermod -G apache ec2-user |
外部から接続テスト。SVN_SSH を設定してから、svnコマンドを通す。
1 2 3 4 5 6 |
(localhost) $ export SVN_SSH="ssh -i /[path_to_key]/private_key.pem -l ec2-user-q" (localhost) $ svn co svn+ssh://ec2-user@XX.XX.XX.XX/svn/repos/sample ./sample A sample/trunk A sample/branches A sample/tags Checked out revision 3. |
長くなりました。
次は Amazon S3 を使ったバックアップなど検討したい。