#author("2022-10-14T02:47:41+00:00","default:wikiadmin","wikiadmin") #author("2022-10-14T05:08:26+00:00","default:wikiadmin","wikiadmin") #contents *Ansible実験途中 [#u739f1d2] **CentOS8 Stream [#n82f756d] -CentOS8が2021年末で終わりかつCentOS7もいろいろ古くなってきてつらいので対応開始。 -Fail2banがインストール時にエラー -PythonはOS標準で3.9とかあるので分岐させるべし -上記問題はあるが、一応最後まで完走した(2021/07/23) **CentOS8 [#c60a9223] -パッケージ名が変わりまくり、コケまくる -minimalだとpython入ってないので手動インストール。jpロケールも入ってない(未解決) -python3に変わったので、pipでこける -ntpdがなくなって、chronyに(CentOS7でもあるので!) -pipでインストールするものがコンパイルエラー! **Mariadb 10.3 [#c348362b] mysqlのインポート時にuserテーブルがあるとのエラー、なんでだ? MariaDB 5.5から10.3なので互換性がなかったのかも?一度本体をupdateしてからチャレンジ? *再構築時に自宅サーバーを一時的に使う方法 [#p45d1ce4] +comsumer停止 +slaveからmasterへ昇格 +wordpress自宅を参照するように書き換え(IP直!) +cakephpをremoteuserに(IP直) +動作確認 *移行後の確認 [#o5ab8332] -各バッチファイルの実行確認(IPが変わるとJCBがこけた時があった。ブラウザで入りなおしたら、大丈夫。AUもなぜか実行失敗) -cloudfrontのinvalidateはなくても大丈夫っぽい -GMO遅い,KAGOYAは早い *ansible実行効率化 [#v8db077f] |自宅setupタスク|60分程度| |自宅recoverタスク|DW25分程度+展開はすぐ| **不要なダウンロードを削る [#gb413049] -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 ***いらないもの [#r28ece8e] 管理ツール入れないのならば、cakephp以外はいらぬという -solr -jenkins(rpmのはず) -maven,gradle(skdmanのはず) -pukiwiki(影響ないサイズだけど、移行前提ならいらない) *ansible 2018 スリム版実行状況 [#ac0a6f47] 主に家向け |Kagoya|〇|30分はかかるな| |VMware on MACBook 2013|〇|時間かかるけど| *ansible 2017年度版実行状況 [#b0b0a5ea] |AWS|〇|| |Azure|〇|| |Sakura|〇|| |Kagoya|〇|所要時間30分。mvn compileで固まる| |GMO|〇|| |VMware on MACBook 2013|〇|時間かかるけど| -2Gだとzabbix,jenkins(100M),elasticsearch(1G),sonar(1G),kibana,td-agent(100M)はあきらめろ。特にelasticsearchとsonarqubeがlessも使えないほどメモリを食う *cron 空白時間帯 [#qe9b0a58] |平日|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移行手順 [#w1b04009] -さくらの場合はsecureタスク実施後、PermitRootLogin noをyesに変更する必要がある。 +secure +setup +apps(maven以外はなくてもOK) +myapps +cron +移行元でS3へバックアップ +recover(--tags=prepare,web,mysql のち postgres,svn) +migrate(間に合わなかった場合個別DB移行) -起動確認を忘れて取り逃がしが過去頻発しているので注意。 **移行元手作業(なくしたいが、今のところレアなので) [#c387e053] -wordpressの接続先を新サーバーに -toolsはいったんそのまま(cronもあるので) **移行先手作業 [#h86d09ae] -toolsを旧サーバーに向ける(デフォルトをリモートへ) -移行後にlocalhostに戻す。 **移行定番作業 時間差DB移行 [#q35ac8bc] ansible taskにしたのでそちらを利用せよ。DBを指定して一度にexportとimportを実施できる。 ***移行元 [#zebebcb5] mysqldump -u root -p cakephp | gzip > cakephp.sql.gz scp cakephp.sql.gz NEW_SERVER:/var/tmp ***移行先 [#z9bddd45] drop database cakephp create database cakephp default charset utf8; mysql -u root -p cakephp < /var/tmp/rooms.sql ***アプリの接続先をlocalhostに変更する [#h5a7eb6f] **移行に必要な時間 [#n044da8d] azureは移行元でも時間がかかるし、移行先にしても時間がかかる。(体感ではSakuraVPSの5倍!)azure同士の移行だとまず15分に収まらないので注意。 (db+svnのインポートで12分で時間オーバー!エクスポートも5分は見ておく!) *残作業 [#u6ec7302] -KAGOYA不正アクセスログをスナップショットから復元 -Jarticをいい加減バックアップとAnsible化 -その他必要なものバックアップして4月後半までにsakuraリニューアルさせたい。 **Ansible対応状況 [#wdd67cec] |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分で終わる| ***チェックリスト [#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分ごとに実行だとでないのに! *wordpressのサブディレクトリからサブドメインへ移行 [#r1f14d3d] +http://blog.shun-ichiro.com/howto/move-wordpress/ *各VPSの特徴 [#befc41ca] **さくらのVPS [#k08a6438] カスタムOSを入れるときはChromeじゃないと操作できない致命的な欠点はあるが、性能は一番安定している。スナップショットが取れないのがいまどき時代遅れ感。 **Azure [#ea0ee128] IOが遅い。あとOpenLogicのCentOS7.1を使っているが、それ以外に変えると不具合出たりしてこまったもんだ。 **Kagoya VPS [#f3efa16c] 最初は何も入ってなくて苦労したけれども、ノウハウをためていくうちにAzureよりセットアップが早いので利用しまくり。スナップショット機能がお気に入りだ。 ただし保証メモリが1Gなのでメモリ不足は一番陥りやすい。 **さくらのクラウド [#f97ef0be] 最低ランクだと起動までに時間がかかる(体感できるほど)。セットアップは最低ランクでもAzure以上! 現実的な2Gのプランだとセットアップは5分。移行タスクは6分で完了優秀。 *pukiwiki バージョンアップ/移行手順 [#ja8d3462] **各フォルダコピー(data,wiki,attache,counter,cacheはいらん?) [#w460b4a6] 478 rm -rf attach/ backup/ diff/ cache/ wiki/ counter/ 479 cp -ir ../wiki/wiki ./ 480 cp -ir ../wiki/attach ./ 481 cp -ir ../wiki/backup ./ 482 cp -ir ../wiki/diff ./ 483 cp -ir ../wiki/cache/ ./ 484 cp -ir ../wiki/counter ./ 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の設定 [#zd6f9675] $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の設定 [#l742e5af] -パンくずを有効に define('SKIN_DEFAULT_DISABLE_TOPICPATH', 0) **lib/html.php [#dbfdc872] -CDN対策(閲覧ドメインと編集ドメインを分けて置き、編集時のみ別ドメインに飛ばす) -lib/html.php -mydomainを書き換える! -編集URLにmydomainをつける $mydomain = "https://wikiedit.rutake.com/wiki/"; $_LINK['edit'] = "$mydomain?cmd=edit&page=$r_page"; -編集URLも $_LINK['edit'] = "$mydomain?cmd=edit&page=$r_page"; ***20190812実行 [#kde890aa] -CloudFrontログイン連携がうまくいかなくなった。POSTがCloudFrontへ行ってしまう。 -ログインフォームのURLが相対パスになったためである。なのでログイン画面でhttpsに飛ばさないとだめ -ログインメニューまで相対パスになっているので、素直に打ち直しましょう。 ***上記の改造対応 [#u9944189] // この関数が呼ばれるようになった $script = get_base_uri(); // ここを変える。 $_LINK['edit'] = "$script?cmd=edit&page=$r_page&custom=true"; #counter