ユビレジのサーバを変更しました
なんかVirtuozzoのシステムが気に入らないので(曖昧な表現)、VPSの業者を変更しました。
事前に準備したこと
- 契約する
- メモリ、HDD容量、OSを合わせた仮想マシンを作った
- 必要なソフトウェアのインストールから設定、ユビレジの導入までやってみる
- 利用者にサービスの停止を伝えるメールを送る
事前準備の時点ではまったこと
Ubuntuをインストールすると「ホームディレクトリを暗号化するか?」と聞かれるので、ついyesと答えてしまっていた。これ大失敗。
SSHでパスワード認証をoffにすると、別にログインしない状態で、sshでログインできなくなった。なぜかというと、ログインするまで、ホームディレクトリが暗号化されていて、sshの公開鍵が読めないから。
なんかworkaroundはあるみたいなんだけど、なんか変なことになったので、潔く暗号化を切ることにした。
移行開始
この段階では、事前準備で練習したことを繰り返すだけ。必要なソフトウェアをインストールしていく。
$ cap production deploy
したら、gitインストール忘れてて、エラーになるというのは練習と2回ともやってしまった。べつにどってことないけど。
DNSを書き換えるわけにはいかないので、ローカルホストの/etc/hostsを書き換える。
はまったこと
新VPSは、今のところ、外へのSMTP接続が禁止されているよう。最初、なにが起きてるのかわからなくて、ちょっと困った。なんか、しばらく調べて、解除する方法がよくわからなかったので、前のサーバをsubmissionに使うことにした。
移行作業
- Twitterで「止めるよ」と宣言する
- 旧サーバのMonit、apache2、Postfixを停止
- MySQLのバックアップをコピー
- SSLの関係ファイルをコピー
- メールサーバを設定
- crontabとか設定
- Monitでの監視を設定
- DNSの設定を更新
- Twitterで「復活したよ(するよ)」と宣言する
などなど。
良くわからないこと
httpで動いてるやつは、手元の/etc/hostsを修正するとか、LAN内のDNSサーバの設定を変更する*1とかで、比較的安全にテストできる。また、実際に移行作業を行うときも、インターネットのDNSサーバを変更していなければ、うっかりサービス停止に気づかずに旧サーバにアクセスしてしまっても、httpdをあらかじめ止めるなりしておけば、アクセスできないだけである。
でもメールサーバはそうはいかない。うっかり気づかずに、変なタイミングでメールを送っちゃうと、まだセットアップが完了していない、新サーバの方に届いたりしそう。
これをどうやって準備すれば良いのかとか、ちょっと良くわからなかった。結局ぶっつけ本番。
練習の段階では、手元にSMTPサーバを作って、そこを通してメール送信すると、なんかうまいことチートするというのは思い付く。それで練習して、本番はえいやでやるしかないのかな。
どうにかしないといけないこと
嬉しいこと
これからはCentOSを使わなくてすむこと。