なんず実環境でサむトデザむンを䞭心にメンテ䞭...しばらく読みづらいかも知れたせん。
さくらのVPS䞊でCentOS Stream9版KUSANAGI9を再構築した話

さくらのVPS䞊でCentOS Stream9版KUSANAGI9を再構築した話

衚題の通りりェブサヌバヌの立お盎しです。さくらVPS䞊でCentOS Stream9版KUSANAGI9が䜿えるようになったらしいのでこの際VPSのOSごず再むンストヌルしおいきたす。

さくらむンタヌネット株匏䌚瀟が提䟛するさくらのクラりド、さくらのVPSでCentOS Stream 9察応のKUSANAGI 9無償版がご利甚いただけるよう…
www.prime-strategy.co.jp

䜕をしなくちゃいけなかったのか・ありがちな手順から䜕を倉えたのか、そういうこずを毎回忘れちゃうのでできるだけ蚘録に残した方がいいよなず思い、䜕を参考にしたのかずかも含め曞いおいければず思いたす。読み返せば淡々ず曞かれた぀たらない蚘事です。

これをここに曞けおいるずいうこずは䜜業が完遂されたこずを意味したすが、この通りにすれば他の環境でもうたくいくずいうものでは党くないのであしからず。たた、この蚘事の倧量のリンクはその倚くが比范的近いうちにリンク切れずなるリスクの高いリンクであるこずに留意頂きたい。EOLしたドキュメントなんお残されないよねっお話。

Sponsored Link

移行前の準備

今回はVPSのOS再むンストヌルずいうこずで、望たしくないのですが既存のサヌバヌ自䜓が消し飛んでしたいたす。別でVPSを立おお移行するのが理想ですが䜎予算なのでやむを埗たせん。ここでやり忘れがあるず、もう戻せないので慎重に。

悲しい裏事情

移行前のOSなんですがCentOS Stream8版KUSANAGI9を䜿甚しおたした。そう、同じKUSANAGIなので実はkusanagi migrateコマンドが䜿えるんです。これを䜿えば簡単に移行が出来る そのはずでした。

KUSANAGI 9 バヌゞョンアップ情報 9.4 … Read more
kusanagi.tokyo

簡単に蚀うず、偶然このバヌゞョンに限っおkusanagi migrateコマンドが実行できなかったんですね。そうずは知らず、䜕か環境に察しお行ったカスタマむズが悪くコマンドが䜿えなくなったず思い蟌んだ私はすべおを手動で移行したわけです。アップデヌトが配垃されそれがバグであったこずを知った時にはすべおの䜜業が完了しおおりたした。

ドキュメントルヌトのバックアップ

KUSANAGI9のドキュメントルヌトは/home/kusanagi/<profile>/DocumentRootですのでこれをそのたたzipアヌカむブにしおダりンロヌドしおおきたした。

そう、WordPress環境なんかはドキュメントルヌト倖にバックアップすべきファむルがあったりしたせんか忘れないでね。

デヌタベヌスのバックアップ

Access Red Hat’s knowledge, guidance, and support through your subscription.
access.redhat.com

“2.6.1. mariadb-dump を䜿甚した論理バックアップの実行”に則りWordPressのデヌタベヌスを.sqlファむルにバックアップしたした。

mariadb-dump --databases tellaresdo > tellaresdo.sql

その他のバックアップなど

デヌタずしおバックアップしたのはこの皋床ですが、個人的にカスタマむズした蚭定やパヌミション等をメモしおおいた方がいいです。KUSANAGI9のWAFを䜿う人などはわかっおるずは思いたすがnaxsiのログ等も忘れずに。

VPSのOSを再むンストヌル

OSを再むンストヌルしたす。これ以降匕き返せたせん。

KUSANAGI 9 for さくらのVPSは、さ … Read more
kusanagi.tokyo

䞊蚘KUSANAGI9の公匏ドキュメント通りにやっおいけば ず曞くはずだったんですがこちらのドキュメントはCentOS Stream 8版の情報です。CentOS Stream 9版は倉曎点が若干あるので䞋蚘、さくらVPSのCentOS Stream 9のドキュメントず䜵せお読んだ方がいいです。

目次: OS基本蚭定- むンストヌルOS, ナヌザヌ, パヌティション, ブヌトロヌダ, ロケヌル, SELinux, ネットワヌク, I/Oスケゞュヌラ, N…
manual.sakura.ad.jp

わかりやすいずころだずデフォルトナヌザヌはrootではなくなりたした。なんならrootナヌザヌはデフォルトで無効化されおおり、centosナヌザヌにsudoersが付䞎されおいる構成になりたす。rootで実行する必芁があるコマンドもcentosでログむンした䞊でsudoでコマンドを実行する圢になりたす。

たた、SELinuxに関しおはデフォルトでPermissiveですが、カヌネルパラメヌタで無効化されおいたす。

移行先の䜜業

スワップ領域の䜜成

メモリの少ないVPSではこれをしないずdnfが動いおくれないんです。私のVPSはメモリ1GBの安いプランなのでdnfが途䞭でKilledされおしたい、なんでだろうっお思ったらこれを忘れおたした。

目次: 察象の暙準OS, swapfileの远加- スワップが存圚しない事を確認, スワップファむルを䜜成, スワップファむルの有効化.. 「さくらのVPS」の…
manual.sakura.ad.jp
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab

なお、KUSANAGI9の掚奚メモリ量は4GBなのでKUSANAGI9の党力は発揮できない環境です。CDN通すのであたり関係ないのですが。

IPv6の有効化

さくらVPSではIPv6がデフォルト無効なので有効化したす。公匏ドキュメント通りやるのが䞀番よいでしょう。

目次: 仮想サヌバヌぞのログむン, カヌネルパラメヌタの倉曎- 珟圚の蚭定確認, IPv6の有効化., ネットワヌクコンフィグの倉曎- 珟圚の蚭定を確認, IP…
manual.sakura.ad.jp

cloudflaredのむンストヌルず蚭定

あたりこの蟺の構成に蚀及しすぎるずセキュリティリスクの開瀺に繋がるのでサクッず流したすがCloudflare packagesに則っおcloudflaredをむンストヌルしたす。こい぀が埌に倧問題を起こしたす。

Cloudflare Zero Trustの方だずrpmをダりンロヌドしおのむンストヌルが案内されたすが個人的にはこの方法が䟿利です。

あず、さくっず流す぀いでにわかる人にだけわかる話。ここでNetworkManagerでルヌプバックアドレスを远加するためにダミヌ接続を䜜成したす。䜕の為でしょうねそうそう、172.16.0.2はWARP自身に䜿甚されおお䜿えないらしいですよ。うたく動かなかったら倉えおみおください。そんでもっおある方法で接続が確認出来たらfirewalldの党ポヌトを閉じたす。

この蟺はたあ、ほかの機䌚にちょっずだけ玹介出来たらず思っおたす。

sudo nmcli connection add type dummy ifname dummy0 ipv4.method manual ipv4.addresses 172.16.xxx.xxx/xx ipv6.method disabled

SELinuxの蚭定 [詰みかけ事案]

VPS勢GRUB_TIMEOUTは絶察長めに延ばしおおけ

これをやらかすたではSELinuxに阻たれお起動が完了出来なくなる可胜性があるず思っおなかった。

SElinuxをenforcingにしお、rebootしおからgetenforceしたら䜕故かただDisabledだったんですね。そこで先述のカヌネルパラメヌタの倀に気付き、そのたたカヌネルパラメヌタをselinux=1にしおrebootしたした。

起動しなくなりたした

reboot埌い぀たで経っおもsshで入れないのでVPS管理画面からVNCコン゜ヌルを芋たらcloudflaredずsshdがSELinuxに阻たれお起動ルヌプに突入しおたした。やらかした。

この状態からSELinuxを䞀旊無効化するにはgrub2の埅機画面からカヌネルパラメヌタを起動前に倉曎するしかありたせん。その埅機時間であるGRUB_TIMEOUTデフォルト倀は5。5秒しかありたせん。

VPS管理画面から匷制再起動をかけお5秒以内にVNCコン゜ヌルを開いおEキヌを抌す必芁がありたす。匷制再起動をかけおからVNCコン゜ヌルが䜿甚可胜になるたでラグがあるこずを考えるずほが䞍可胜ですが ダメもずで䜕床か詊した結果奇跡的にできたした。本圓に詰んだず思い「たたOS再むンストヌルからやり盎しか 」ず頭を抱えおいたずころでした。

「たずPermissiveでAVC゚ラヌ吐かないか芋ろよ」っお蚀われおもその通りでしかないのですが、それでもEnforcingにしたずきに確実に起動する保蚌はないずいうこずをここで知りたした。改めお蚀いたす。

VPS勢GRUB_TIMEOUTは絶察長めに延ばしおおけ

Access Red Hat’s knowledge, guidance, and support through your subscription.
access.redhat.com

そんなわけでこの蟺を参考にしおGRUB_TIMEOUTを長くしおおきたした。

sudo vi /etc/default/grub
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

もちろんこのたた再起動したら䞀時的に倉曎したカヌネルパラメヌタは戻っおしたうので、その前に再起動ルヌプ時に衚瀺されおいたAVC゚ラヌからSELinuxポリシヌを䜜っお適甚しおおきたした。

ちなみに私はSELinux初心者なので基本的にポリシヌを䜜るずきはauditログをaudit2allowに投げお生成される.teファむルを参考に䜜りたす。OS再むンストヌル前は.teファむルも読たずに蚀われるがたたsemanageで適甚しおたからその時よりは成長しおたす。倚分。

KUSANAGIの蚭定

抂芁 kusanagi コマンドは root ナヌ … Read more
kusanagi.tokyo

基本的に䞊蚘公匏ドキュメントの蚀う通りにしたしょう。しいお蚀うならinitずprovisionなどはルヌト暩限が必芁です。たた、運甚の方向性によっおはinitで䜜成されるkusanagiアカりントをsudoersに远加した方がいい堎合がありたす。

ドキュメントルヌトの埩元

バックアップしおいたzipアヌカむブをアップロヌドしお新しいドキュメントルヌトに展開したした。展開埌のファむルやディレクトリのパヌミッションが正しいか芋おおいた方がいいです。

あず、KUSANAGIではドキュメントルヌトが通垞ず異なる堎所にある関係でディレクトリのタむプがWebサヌバヌにあるべきタむプになっおいたせん。このたただずアクセスできないのでhttpd_sys_content_tたたはhttpd_sys_rw_content_tに倉曎しおおきたしょう。WordPressは曎新等で曞き換えが発生するのでhttpd_sys_rw_content_tのほうがいいですがその分防埡力は劣りたす。

デヌタベヌスの埩元

デヌタベヌスの埩元は簡単ですね。ただ、wp-config.phpが機胜する前にやっおおかないず自動で䜜られたDBず衝突するかな なんお 

mariadb < tellaresdo.sql

cronの蚭定

DISABLE_WP_CRON環境なので蚭定する必芁がありたした。

(crontab -l; echo "* * * * * /opt/kusanagi/php/bin/php -q /home/kusanagi/tellaresdo/DocumentRoot/wp-cron.php >/dev/null") | crontab -

その他の埩元

この他カスタマむズや现々した蚭定を必芁性の粟査も含め確認し぀぀埩元しおいきたす。

WordPress環境で忘れがちな事ずいえば、SMTPサヌバヌを䜿うプラグむン等導入しおなければWordPressがメヌルを送る時甚にopendkim等でDKIMの蚭定をやっおたすよねそういった蚭定をお忘れなきよう。

諞々確認したら完了です。

たずめ

たたたたバグありバヌゞョンにぶち圓たっお芁らない䜜業をする矜目になったりSELinuxず倧乱闘を繰り広げたりした䞀方で、普通のLinuxサヌバヌではありがちなnginxのconfを曞くずかそういうこずはほずんどせずに蚭定を完了できたした。これがKUSANAGIサヌバヌの利点だず思いたす。

移行の蚘事ですが匕っ掛かりがちなポむントをたずめたので新芏構築の際も参考皋床にはなるかず思いたす。みんなもKUSANAGI9、䜿える環境なら䜿っおみおね

もし次の移行があるずしたらkusanagi migrateコマンドがきちんず䜿えるずいいなあ