ユビレジのサーバを変更しました

なんかVirtuozzoのシステムが気に入らないので(曖昧な表現)、VPSの業者を変更しました。

事前に準備したこと

  1. 契約する
  2. メモリ、HDD容量、OSを合わせた仮想マシンを作った
  3. 必要なソフトウェアのインストールから設定、ユビレジの導入までやってみる
  4. 利用者にサービスの停止を伝えるメールを送る

事前準備の時点ではまったこと

Ubuntuをインストールすると「ホームディレクトリを暗号化するか?」と聞かれるので、ついyesと答えてしまっていた。これ大失敗。

SSHでパスワード認証をoffにすると、別にログインしない状態で、sshでログインできなくなった。なぜかというと、ログインするまで、ホームディレクトリが暗号化されていて、sshの公開鍵が読めないから。

なんかworkaroundはあるみたいなんだけど、なんか変なことになったので、潔く暗号化を切ることにした。

移行開始

この段階では、事前準備で練習したことを繰り返すだけ。必要なソフトウェアをインストールしていく。

$ cap production deploy

したら、gitインストール忘れてて、エラーになるというのは練習と2回ともやってしまった。べつにどってことないけど。

DNSを書き換えるわけにはいかないので、ローカルホストの/etc/hostsを書き換える。

はまったこと

VPSは、今のところ、外へのSMTP接続が禁止されているよう。最初、なにが起きてるのかわからなくて、ちょっと困った。なんか、しばらく調べて、解除する方法がよくわからなかったので、前のサーバをsubmissionに使うことにした。

移行作業

  1. Twitterで「止めるよ」と宣言する
  2. 旧サーバのMonit、apache2、Postfixを停止
  3. MySQLのバックアップをコピー
  4. SSLの関係ファイルをコピー
  5. メールサーバを設定
  6. crontabとか設定
  7. Monitでの監視を設定
  8. DNSの設定を更新
  9. Twitterで「復活したよ(するよ)」と宣言する

などなど。

良くわからないこと

httpで動いてるやつは、手元の/etc/hostsを修正するとか、LAN内のDNSサーバの設定を変更する*1とかで、比較的安全にテストできる。また、実際に移行作業を行うときも、インターネットのDNSサーバを変更していなければ、うっかりサービス停止に気づかずに旧サーバにアクセスしてしまっても、httpdをあらかじめ止めるなりしておけば、アクセスできないだけである。

でもメールサーバはそうはいかない。うっかり気づかずに、変なタイミングでメールを送っちゃうと、まだセットアップが完了していない、新サーバの方に届いたりしそう。

これをどうやって準備すれば良いのかとか、ちょっと良くわからなかった。結局ぶっつけ本番。

練習の段階では、手元にSMTPサーバを作って、そこを通してメール送信すると、なんかうまいことチートするというのは思い付く。それで練習して、本番はえいやでやるしかないのかな。

どうにかしないといけないこと

  1. MonitでPostfixを監視しているが、なにかあったらPostfixでメール/SMSが送信されることになっている。なんて無意味!! *2
  2. 自分のTwitterアカウントにDM送るとか、そういう感じが良いかなぁ
  3. TwitterのDMなら、iPadでもPushしてもらえる

嬉しいこと

これからはCentOSを使わなくてすむこと。

*1:これはiPadのため

*2:ではないけど。Apacheとかあるし