2012/04

さくらのVPS512から1Gへ移行。

スケジュール

apacheコンテンツ移行。DBインポート完了。設定まだ。wiki.rutake.com移行完了

DB設定完了。cakephp,blog.rutake.com移行完了

SVN移行完了。SSLはIP指定をしているのでそこを変えないといけなかった。

Cronジョブ移行。バックアップでDBパスワードが変わっていたためそれなりにシェルを変更

トラブル

2013/07 自宅内サーバー移行

一か月かけて準備。普段からrsyncでデータの同期はとっていた。

トラブル

IP変えて再起動したら反応せず。コンソールから復旧させたが、原因不明だった。 ファイヤーウォールでSquidのポートを通していなかった。こちら設定漏れが多いので注意。Sambaのユーザー移行漏れ!

2013/12 さくらVPS再構築

下準備

まずは、それほどアクセスのないページや自分専用コンテンツなどを自作サーバーに移行する。基本的にhttpd.confとssl.confを持ってきて、SVNのアクセス制限元を変更するぐらいで動いた。ssl.conf持ってこないとSSLに強制接続になるので今後の課題。

移行対象

  1. tools.rutake.com以下のアプリ
  2. wiki.rutake.com

要塞化

tools.rutake.comのpostgres移行

  1. postgres自動起動の設定
  2. DBインポート(DB作成必要)
  3. PHPツール移植(ツールは問題なしだが、DB接続で下記問題発覚)
psql: FATAL:  Ident authentication failed for user "postgres"
SQLSTATE[08006] [7] FATAL: Ident authentication failed for user "postgres"
# "local" is for Unix domain socket connections only
local   all         all                                trust
#host    all         all         127.0.0.1/32          ident sameuser
host     all         all         127.0.0.1/32          md5

2.4にしてみた。いつものようにhttpd.confの設定が必要。 appのみSVNからコピーして無事接続成功

DB単位でエクスポート
mysqldump -u root -p MYDATABASE > /var/tmp/MYDATABASEdmp.sql
移行元のDBを消す。
[root@epox cake2.4]# mysqladmin -u root -p drop MYDATABASE
空のDBを作成
mysql> create database MYDATABASE default charset utf8;
インポート
mysql -u root -p MYDATABASE < MYDATABASEdmp.sql
目的のディレクトリの一階層上に移動
cd /var/www/UPPER_DIR
tar cvzf blog.tar.gz blog/
DBも同じようにバックアップして圧縮しておく(18Mが十分の一に)
受け取りサーバー側では同じく一階層上で解凍
DBもインポートしておく
空のDBを作成(utf-8でOK)
mysql> create database MYDATABASE default charset utf8;
インポート
mysql -u root -p MYDATABASE < MYDATABASEdmp.sql
移行元
mysqldump -u root -p --add-drop-table cakephp rooms > rooms.sql
gzip rooms.sql
移行先
gzip -d rooms.sql.gz
mysql -u root -p cakephp < /var/tmp/rooms.sql
svnadmin dump /home/svn/repos | gzip > /var/tmp/myrepos.tar.gz

サーバー再インストールからコンソール上がりきるまで10分は見ておいたほうがよい。DNSがなかなか切替わらず見切り発車で実施。SSLの秘密鍵のバックアップを忘れてSSL月だと起動失敗したのでSSLは後日。blogとwikiは移行完了。cronの改行コードがおかしくてエラーとなっていた。LFじゃないとNG

SVN移行,hosts設定,

移行漏れ

SSL証明書,.htpasswd

移行前の下準備

  1. 公開鍵のバックアップ(OK)
  2. blog関係バックアップ
  3. cron関係チェック(OK)
  4. yumの履歴(OK)
  5. SVNバックアップ(OK)
createdb homedb_uft -E UTF-8 -T template0 
ダンプSQLをUTF-8に変換
SET client_encoding = 'UTF-8';
データベース移行は順調。
シンボリックリンクを介してのリライトはNGのようなのでディレクトリ名変更
DBアクセス。ユーザーを追加していなくてアクセス失敗。
simple_dom_htmlライブラリを入れてなくて失敗

2015/04 攻撃を受けてセキュリティ強化とアプリケーション分離と作り直し

基本方針

内部向けは自宅サーバーにおいておくか? wikiはアクセス数が減少しているのでどうする? 旧MTのコンテンツを廃止したい。

対象

作業手順

トラブル

2015/11 一部アプリケーション分離

移行スケジュール

11/17-12/07KAGOYA VSPでCentOS7検証。wiki
12/07-Azureにてより自動構築重視の設定。wiki,postgresqlのtools

空白時間帯

0,20,40道路情報
0,15,30,45道路情報jpeg
0,15,30,45株式情報5時に終了して7時に開始
毎時10分鉄道情報。4-23まで
毎時15分空室情報、10-24まで
毎日13時5分スキーエリア情報

結論毎時50-00までが一番あいている時間帯。 鉄道情報は更新状況を整理して15分ヘッドにできないか見直す。jpegも20分単位にできないか見直す。

全体計画

項目計画日実施日備考
wiki11/1611/16
S3バックアップ11/1611/17バックアップスクリプト修正
toolsアプリのみ11/1711/17cake2.6で動かしてみる。.htacessではまった
バッチをローカルDBにて動かす11/1711/17すんなり動いた。
cake2.6プロビジョニング11/1811/19ちょいと後回しで、無事成功。
cronプロビジョニング11/1811/18ansible化するが、cronファイルを復元するのでもよいかも
postgresリモート接続にて、tftool移植11/1811/18postgresql.conf,hg_hda.conf,iptables,postgresユーザー以外での接続に変更など結構大変だったがphpモジュールは普通に動いた
postgres移植11/2011/20ローカルから接続させる
postgresバックアップansible化11/2011/20ローカルから接続させる
CentOS7 iptables化11/25ほんとはfirewalldにしたいが、共存させたいので!
Azureに舞台を移し,postgresアプリAnsible化12/0512/05OK
postgre設定をAnsible化12/0712/07ローカル接続はOK!
IP更新できない理由を突き止める12/07publicipは取得できている
S3バックアップジョブ分離12/1612/18credential周りでcron経由だとトラブルあり!
svn移行12/2612/25ほぼ自動で行けた。svnだけ証明書があるので手動となる。
tools移行12/2512/25MySQLと管理ツールは残して、postgresは完全移行
Kagoyaのcron12/2612/28なぜか動かなかったがいろいろインストールしてたら動くようになった。cronie-noanacronかな?

チェックリスト

  1. 認証周りがキチンとされているか?(管理画面に入ること)
  2. 旧コンテンツ(blog/techmemo)やwikiのリダイレクトが完璧であること。
  3. アクセス制限が移行されていること

postgresのユーザーに権限付与(シーケンスリード権限がなかった)

GRANT ALL ON テーブル名 TO ユーザー名;
GRANT ALL ON シーケンス名 TO ユーザー名;

cron移行周りのはまり(現在進行中)

aws s3 lsで設定の確認をすること

/etc/cron.daily/s3_backup.shがさくらだけ上記のエラーがでる。 5分ごとに実行だとでないのに!

Counter: 5657, today: 1, yesterday: 2

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS