自宅サーバの再構築をしようとしているが、役割を考えると4つくらいに分けたくなる
- システム管理(メール、DNS)
- サービスのフロント系
- サービスのバックエンド系
- プロジェクト管理(svn,git,trac,redmine)
この中でサービスとシステム管理・プロジェクト管理は別にしたい。システム管理には自宅サーバの管理(UPSの監視とか)もはいっているので動かしづらいが、プロジェクト管理系は外においても良い気がした、もともと匿名アクセスは許しているし、トラフィックが多くなりそうなものはgithubに置くようにしているし。そもそも必要かという話もあるけど、もともと自宅サーバを立ててるのは勉強、好奇心でやっているので、いろいろ使うのもまた勉強ということでVPSを使ってみることにした。
- redmine(ruby), trac(python),mysql,apache,subversion,gitを動かす
- 個人開発用なので帯域はそれほど必要ない
- 現在のデータを調べたがせいぜい1GB
- 安定性重視
ServerManのVPSがちょっと気になっていたが、どうも障害が起きたり、アナウンスなしに設定ファイルが書き換えられて動かなくなるなど、微妙な評判もちらほらしているので、おとなしくさくらのVPSを使うことにした。
さくらのVPSをは現時点で
- 月980円
- メモリ512MB
- HD20GB
- CentOS(Default), Fedora, Debian, Ubuntuが利用可
などとなっている。
申し込みをするとメールが送られてきて、二週間無料でお試しできる(お試し期間はメール送信、帯域が制限されている)
OSはデフォルトではCentOSが入っていてsshでリモート接続できる状態になっている。ただCentOSは微妙にパッケージが古かったり、なかったりでリポジトリ探しとかが面倒くさい。ソースから入れればいいんだが管理が煩わしい。パッケージの新しさからFedoraやUbuntuでもいいんだけど、入れるものは決まっているのでここは冒険するところでもない。よく考えると自宅サーバとの負荷分散もしたいし、VPS辞めたときにまた自宅サーバに戻さないといけないことも想定するとOSは揃えた方が良いと判断し、CentOSである程度設定したものの、Debian amb64でやり直すことにした。
カスタムOSのインストール
OS は コントロールパネルというページから、再インストール > カスタムOSのインストール で好きなOSを選択すると、JavaのVNCコンソールが立ち上がりインストールウィザードをすすめることができる。
- keyboardでJapaneseを選択
- ネットワーク情報を入れる
- Guided -use entre disk
- パーティションをguideでやったらswap 1GBだったのでmanualをえらんでデフォルトのパーティション状態の19.3GBの領域を削除して/を設定。これでデフォルトのswapは2GB。また動かす物を考えるとこれくらいで十分だろう。
Debianのインストーラもさくらでカスタマイズされたのだと思うが、デフォルトでsshdが動いている。
インストールしたら、ssh root@wwwXXXX.sakura.ne.jp
で接続する。普段自宅鯖ではWindows+cygwinかMacOSXで接続しているのでそれをそのまま使っている。
aptの設定
rootで処理する。Debianもパッケージは新しくないのでunstableを使う。
1. unstableを入れる
deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main
deb ftp://ftp.jp.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ unstable main contrib non-free
を2行を最後に追加。
必要なときしか使わないのでデフォルトはstableにする。
APT::Default-Release "stable";
2. とりあえず更新
apt-get update
aptitude update
sshの設定
rootで作業。とりあえず公開鍵でユーザしかつがらないようにしておく。
1. sudoいれとく
aptitude install sudo
visudo
# User alias specification
username ALL=(ALL) ALL
usernameは自分のユーザに変える。
2. 公開鍵方式を有効にする
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
再起動
/etc/init.d/ssh restart
3. 鍵を送信
cygwinかMacOSXのターミナルより
ssh-keygen -t rsa -b 768
# パスワードは入れない(空リターン)
ssh-copy-id username@wwwXXXXX.sakura.ne.jp
次のコマンドでパスワードなしではいれたら成功
ssh username@wwwXXXXX.sakura.ne.jp
4. root、パスワードログインの禁止
#PermitRootLogin yes
PermitRootLogin no
...
#PasswordAuthentication yes
PasswordAuthentication no
再起動して、ssh root@wwwXXXXX.sakura.ne.jpがこけてssh username@wwwXXXXX.sakura.ne.jpが良ければおk。
/etc/init.d/sshd restart
長くなりそう、というかまとめるのが面倒なので今日はここまで。