Ansible実験途中

CentOS8 Stream

CentOS8

Mariadb 10.3

mysqlのインポート時にuserテーブルがあるとのエラー、なんでだ? MariaDB 5.5から10.3なので互換性がなかったのかも?一度本体をupdateしてからチャレンジ?

再構築時に自宅サーバーを一時的に使う方法

  1. comsumer停止
  2. slaveからmasterへ昇格
  3. wordpress自宅を参照するように書き換え(IP直!)
  4. cakephpをremoteuserに(IP直)
  5. 動作確認

移行後の確認

ansible実行効率化

自宅setupタスク60分程度
自宅recoverタスクDW25分程度+展開はすぐ

不要なダウンロードを削る

-rw-r--r--. 1 root root   6142197  8月 16 07:59 apache-tomcat-6.0.18.tar.gz
-rw-r--r--. 1 root root 118543435  8月 16 08:14 solr-4.1.0.zip
-rw-r--r--. 1 root root    996444  8月 16 08:28 mysql-connector-java-5.1.42-bin.jar
-rw-r--r--. 1 root root   8042383  8月 16 08:48 apache-maven-3.3.3-bin.tar.gz
-rw-r--r--. 1 root root   9375265  8月 16 08:48 apache-tomcat-8.5.13.tar.gz
-rw-r--r--. 1 root root  63124132  8月 16 08:53 jenkins.war
-rw-r--r--. 1 root root    413172  8月 16 08:53 pukiwiki-1_5_0_utf8.zip
-rw-r--r--. 1 root root   6773205  8月 16 08:54 wordpress-4.2.2-ja.tar.gz
-rw-r--r--. 1 root root    747520  8月 16 08:54 phpPgAdmin-5.1.tar.gz
-rw-r--r--. 1 root root   9368791  8月 16 08:55 phpMyAdmin-4.4.12-all-languages.tar.gz
-rw-r--r--. 1 root root   1509582  8月 16 08:55 cakephp-2.8.5.tar.gz
-rw-r--r--. 1 root root  67523890  8月 16 09:00 gradle-4.0-bin.zip
-rw-r--r--. 1 root root  10177671  8月 16 09:01 liquibase-3.4.2-bin.zip

いらないもの

管理ツール入れないのならば、cakephp以外はいらぬという

ansible 2018 スリム版実行状況

主に家向け

Kagoya30分はかかるな
VMware on MACBook 2013時間かかるけど

ansible 2017年度版実行状況

AWS
Azure
Sakura
Kagoya所要時間30分。mvn compileで固まる
GMO
VMware on MACBook 2013時間かかるけど

cron 空白時間帯

平日45-00
土日40-00

JavaがDNS固定なので、切り替え後まではConsumerを止めておく。 実質土日00から15分の間しかできぬ!土日の23時以降なら株式データ取得はとまっているので00分にこだわらんでもOK。

0,20,40道路情報(HPの更新は05,20,45なのでずらし検討)
0,15,30,45道路情報jpeg
0,15,30,45株式情報5時に終了して7時に開始。更新間隔は10分未満・・
0,30鉄道情報。4-23まで
15空室情報、10-24まで
13:30スキーエリア情報

結論毎時00-15か45-00までが一番あいている時間帯。 株式情報が止まっている土日であれば40分でも作業可能。 jpegも20分単位にできないか見直す。

Azureの書き込みがある場合は、そろそろ15分ではきつくなって来た。 Azure同士だと30分は必要で段階移行必須。A4にして実施したけどもやはり15分ギリギリ。I/Oが遅い!

Ansible移行手順

  1. secure
  2. setup
  3. apps(maven以外はなくてもOK)
  4. myapps
  5. cron
  6. 移行元でS3へバックアップ
  7. recover(--tags=prepare,web,mysql のち postgres,svn)
  8. migrate(間に合わなかった場合個別DB移行)

移行元手作業(なくしたいが、今のところレアなので)

移行先手作業

移行定番作業 時間差DB移行

ansible taskにしたのでそちらを利用せよ。DBを指定して一度にexportとimportを実施できる。

移行元

mysqldump -u root -p cakephp | gzip > cakephp.sql.gz
scp cakephp.sql.gz NEW_SERVER:/var/tmp

移行先

drop database cakephp
create database cakephp default charset utf8;
mysql -u root -p cakephp < /var/tmp/rooms.sql

アプリの接続先をlocalhostに変更する

移行に必要な時間

azureは移行元でも時間がかかるし、移行先にしても時間がかかる。(体感ではSakuraVPSの5倍!)azure同士の移行だとまず15分に収まらないので注意。 (db+svnのインポートで12分で時間オーバー!エクスポートも5分は見ておく!)

残作業

Ansible対応状況

CentOS 6 さくらのVPSセットアップ完了。DBの移行断念
CentOS 6 nagoya VPSセットアップ完了。DBの移行断念
Azure OpenLogic CentOS 7.1セットアップ完了。移行も完了
Azure OpenLogic CentOS 7.2セットアップ完了。Sonhrqube以外OK
さくら CentOS 7.2セットアップ完了。セットアップタスクが5分程度(ほか14-15分)で終わるので、一番早い!
KAGOYA CentOS 7.0セットアップ完了。TybeBだとセットアップ5分、リカバー2分で終わる

チェックリスト

  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分ごとに実行だとでないのに!

wordpressのサブディレクトリからサブドメインへ移行

  1. http://blog.shun-ichiro.com/howto/move-wordpress/

各VPSの特徴

さくらのVPS

カスタムOSを入れるときはChromeじゃないと操作できない致命的な欠点はあるが、性能は一番安定している。スナップショットが取れないのがいまどき時代遅れ感。

Azure

IOが遅い。あとOpenLogicのCentOS7.1を使っているが、それ以外に変えると不具合出たりしてこまったもんだ。

Kagoya VPS

最初は何も入ってなくて苦労したけれども、ノウハウをためていくうちにAzureよりセットアップが早いので利用しまくり。スナップショット機能がお気に入りだ。 ただし保証メモリが1Gなのでメモリ不足は一番陥りやすい。

さくらのクラウド

最低ランクだと起動までに時間がかかる(体感できるほど)。セットアップは最低ランクでもAzure以上!

現実的な2Gのプランだとセットアップは5分。移行タスクは6分で完了優秀。

pukiwiki バージョンアップ/移行手順

各フォルダコピー(data,wiki,attache,counter,cacheはいらん?)

rm -rf attach/ backup/ diff/ cache/ wiki/ counter/
cp -ir ../wiki/wiki ./
cp -ir ../wiki/attach ./
cp -ir ../wiki/backup ./
cp -ir ../wiki/diff ./
cp -ir ../wiki/cache/ ./
cp -ir ../wiki/counter ./

pukiwiki.ini.phpの設定

$nowikiname = 1;
$adminpass変更
# 閲覧制限
$read_auth = 1;
$read_auth_pages = array(
       // Regex                   Groupname or Username
       '/^.*personal.*$/'              => 'USER',
       '#PageForAllValidUsers#'        => 'valid-user',
       '#HogeHoge#'            => 'hoge',
       '#(NETABARE|NetaBare)#' => 'foo,bar,hoge',
);
# 編集制限
/////////////////////////////////////////////////
// Edit auth (0:Disable, 1:Enable)
$edit_auth = 1;
$edit_auth_pages = array(
       // Regex                   Username
       '/^.*$/'                => 'USER',
       '#BarDiary#'            => 'bar',
       '#HogeHoge#'            => 'hoge',
       '#(NETABARE|NetaBare)#' => 'foo,bar,hoge',
);
# user追加

skin/pukiwiki.ski.phpの設定

define('SKIN_DEFAULT_DISABLE_TOPICPATH', 0)

lib/html.php

$mydomain = "https://wikiedit.rutake.com/wiki/";
$_LINK['edit']     = "$mydomain?cmd=edit&amp;page=$r_page";

20190812実行

上記の改造対応

// この関数が呼ばれるようになった
$script = get_base_uri();
// ここを変える。
$_LINK['edit']     = "$script?cmd=edit&amp;page=$r_page&amp;custom=true";
Counter: 5244, today: 3, yesterday: 4

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-10-14 (金) 14:08:26