- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
*2012/04 [#yb2216ef]
さくらのVPS512から1Gへ移行。
**スケジュール [#od6163e2]
-2012/04/04
apacheコンテンツ移行。DBインポート完了。設定まだ。wiki.rutake.com移行完了
-2012/04/05
DB設定完了。cakephp,blog.rutake.com移行完了
-2012/04/09
SVN移行完了。SSLはIP指定をしているのでそこを変えないといけなかった。
-2012/04/11
Cronジョブ移行。バックアップでDBパスワードが変わっていたためそれなりにシェルを変更
**トラブル [#rfb3a05e]
-PostgreSQLのEUC_JPのDBを作成するときにそのままだとエラーが出るようになった。-T template1で回避
-PostgreSQLの仕様変更により、date型をsubstrする場合は明示的にtext型にする必要が生じた。substr(userdate::text,4,3)
-MySQLの全部のデータを移行したが、ユーザ認証のみできない。コマンドラインから権限変更もできない状態だったので、phpMyAdminから該当ユーザ削除→追加で復旧。後日flush privilegesでOKということが判明
*2013/07 自宅内サーバー移行 [#r60f5665]
一か月かけて準備。普段からrsyncでデータの同期はとっていた。
**トラブル [#x95ab77f]
IP変えて再起動したら反応せず。コンソールから復旧させたが、原因不明だった。
ファイヤーウォールでSquidのポートを通していなかった。こちら設定漏れが多いので注意。Sambaのユーザー移行漏れ!
*2013/12 さくらVPS再構築 [#z9c8448e]
**下準備 [#j9750ef5]
まずは、それほどアクセスのないページや自分専用コンテンツなどを自作サーバーに移行する。基本的にhttpd.confとssl.confを持ってきて、SVNのアクセス制限元を変更するぐらいで動いた。ssl.conf持ってこないとSSLに強制接続になるので今後の課題。
**移行対象 [#g835d28e]
+tools.rutake.com以下のアプリ
+wiki.rutake.com
**要塞化 [#sa5fcb6d]
-SSHDのアクセス元制限。ポートを閉じる。
**tools.rutake.comのpostgres移行 [#c056dfdb]
+postgres自動起動の設定
+DBインポート(DB作成必要)
+PHPツール移植(ツールは問題なしだが、DB接続で下記問題発覚)
-トラブル発生
psql: FATAL: Ident authentication failed for user "postgres"
SQLSTATE[08006] [7] FATAL: Ident authentication failed for user "postgres"
-pg_hda.confを下記のように編集し再起動。ローカルからのUNIX接続をOKにした。
# "local" is for Unix domain socket connections only
local all all trust
-PHPからの接続は元の設定をコメントアウトし、パスワード認証をかけるようにした。
#host all all 127.0.0.1/32 ident sameuser
host all all 127.0.0.1/32 md5
-12/4 toolsのpostgres部分移行完了(一部svn登録モレモジュールがあり消滅・・・)
-CakePHPをTools配下へ移植
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
-12/5 cakephpのツールを移行完了。残る大物はblogのみ
-12/7 バックアップを実施だが、mysqlがパスワードなしでバックアップできている理由が不明。コマンドラインにもろ記載が後日判明
-12/30 blogの移行テスト。DB移動とblog以下一括移動が一番楽とのことでそれで実施。コンテンツ領域20MとDBが2M
目的のディレクトリの一階層上に移動
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
-12/31 空室情報取得バッチの移植に苦労。理由は<?phpを入れてなくてバッチ実行クラスが見つからないというなんとも初歩的なもの。翌日に移植完了とhtml形式の違いで取得できなかったものにも対応。
-1/1 テーブル移行
移行元
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
-1/1 httpdのカウントテーブル作成
mysql> CREATE TABLE httpd_count (
-> recorded DATETIME not null,
-> httpd_count int unsigned not null
-> );
mysql> LOAD DATA LOCAL INFILE '/var/log/httpd_count.log' INTO TABLE httpd_count FIELDS TERMINATED BY ',';
-1/6 svn移行
svnadmin dump /home/svn/repos | gzip > /var/tmp/myrepos.tar.gz
-1/6 夜移行
サーバー再インストールからコンソール上がりきるまで10分は見ておいたほうがよい。DNSがなかなか切替わらず見切り発車で実施。SSLの秘密鍵のバックアップを忘れてSSL月だと起動失敗したのでSSLは後日。blogとwikiは移行完了。cronの改行コードがおかしくてエラーとなっていた。LFじゃないとNG
-1/16 セキュリティ設定
SVN移行,hosts設定,
-1/17 IP設定
210.148.59.13,serverToken除去,php.iniの設定変更など
*移行漏れ [#z9bb5946]
SSL証明書,.htpasswd
*移行前の下準備 [#a93e7d30]
+公開鍵のバックアップ(OK)
+blog関係バックアップ
+cron関係チェック(OK)
+yumの履歴(OK)
+SVNバックアップ(OK)
-2/4 UTF-8移行
createdb homedb_uft -E UTF-8 -T template0
ダンプSQLをUTF-8に変換
SET client_encoding = 'UTF-8';
-4/19 cakephp戻し
データベース移行は順調。
シンボリックリンクを介してのリライトはNGのようなのでディレクトリ名変更
DBアクセス。ユーザーを追加していなくてアクセス失敗。
simple_dom_htmlライブラリを入れてなくて失敗
-6/02 pukiwiki更新検討
*2015/04 攻撃を受けてセキュリティ強化とアプリケーション分離と作り直し [#jf9aea84]
**基本方針 [#w97e0c01]
内部向けは自宅サーバーにおいておくか?
wikiはアクセス数が減少しているのでどうする?
旧MTのコンテンツを廃止したい。
**対象 [#ff1e215a]
**作業手順 [#da913c76]
**トラブル [#y09767b6]
*2015/11 一部アプリケーション分離 [#r71a0eb0]
**移行スケジュール [#c2a9a26b]
|11/17-12/07|KAGOYA VSPでCentOS7検証。wiki|
|12/07-|Azureにてより自動構築重視の設定。wiki,postgresqlのtools|
**空白時間帯 [#qe9b0a58]
|0,20,40|道路情報|
|0,15,30,45|道路情報jpeg|
|0,15,30,45|株式情報5時に終了して7時に開始|
|毎時10分|鉄道情報。4-23まで|
|毎時15分|空室情報、10-24まで|
|毎日13時5分|スキーエリア情報|
結論毎時45-00までが一番あいている時間帯。
jpegも20分単位にできないか見直す。
**全体計画 [#jba4e101]
|項目|計画日|実施日|備考|
|wiki|11/16|11/16||
|S3バックアップ|11/16|11/17|バックアップスクリプト修正|
|toolsアプリのみ|11/17|11/17|cake2.6で動かしてみる。.htacessではまった|
|バッチをローカルDBにて動かす|11/17|11/17|すんなり動いた。|
|cake2.6プロビジョニング|11/18|11/19|ちょいと後回しで、無事成功。|
|cronプロビジョニング|11/18|11/18|ansible化するが、cronファイルを復元するのでもよいかも|
|postgresリモート接続にて、tftool移植|11/18|11/18|postgresql.conf,hg_hda.conf,iptables,postgresユーザー以外での接続に変更など結構大変だったがphpモジュールは普通に動いた|
|postgres移植|11/20|11/20|ローカルから接続させる|
|postgresバックアップansible化|11/20|11/20|ローカルから接続させる|
|CentOS7 iptables化|11/25||ほんとはfirewalldにしたいが、共存させたいので!|
|Azureに舞台を移し,postgresアプリAnsible化|12/05|12/05|OK|
|postgre設定をAnsible化|12/07|12/07|ローカル接続はOK!|
|IP更新できない理由を突き止める|12/07||publicipは取得できている|
|S3バックアップジョブ分離|12/16|12/18|credential周りでcron経由だとトラブルあり!|
|svn移行|12/26|12/25|ほぼ自動で行けた。svnだけ証明書があるので手動となる。|
|tools移行|12/25|12/25|MySQLと管理ツールは残して、postgresは完全移行|
|Kagoyaのcron|12/26|12/28|なぜか動かなかったがいろいろインストールしてたら動くようになった。cronie-noanacronかな?|
|cakephp DB完全移行|01/09|01/09|DB単位の移行が思いのほか簡単だったので一気に作り込みしてbatchはリモートを見るようにしてみた。|
|cakephp バッチ部分移行|01/10|01/10|SNOW,ROOM,TRAIN,ROADでSTOCKのみ残り。起動スクリプトコミット漏れ発覚で注意|
|cakephp バッチ部分移行|01/10|01/10|SNOW,ROOM,TRAIN,ROADを早朝移行。STOCKは午後までに移行。起動スクリプトコミット漏れ発覚で注意|
***チェックリスト [#zee56420]
+認証周りがキチンとされているか?(管理画面に入ること)
+旧コンテンツ(blog/techmemo)やwikiのリダイレクトが完璧であること。
+アクセス制限が移行されていること
***postgresのユーザーに権限付与(シーケンスリード権限がなかった) [#tb2938a8]
GRANT ALL ON テーブル名 TO ユーザー名;
GRANT ALL ON シーケンス名 TO ユーザー名;
***cron移行周りのはまり(現在進行中) [#m7a684ef]
-ntpdateが見えない
フルパスに変更
-さくらでaws configureの内容が見えてない。翌日cron経由だと動かなくて発覚。
→単なる設定ミス。
aws s3 lsで設定の確認をすること
-未解決
/etc/cron.daily/s3_backup.shがさくらだけ上記のエラーがでる。
5分ごとに実行だとでないのに!
#counter