さくらのマイクロコミュニティ マイクラサーバー管理者の会 #2 のLT枠で発表しました
万国のサーバ管理者よ,自動化せよ!sksat (mc.yohane.su 管理者)Администраторы сервера всех стран, автоматизируйте!さくらのマイクロコミュニティマイクラサーバー管理者の会 #2
View Slide
自己紹介・sksat・最近はインターンで人工衛星作ってる・マイクラはあんまりやってない・マイクラでオーバーエンジニアリングするのはたのしい・mc.yohane.su 管理者
mc.yohane.su
変なドメインで鯖やってます
構成・オンプレ・PaperMC,ほぼバニラ・ユーザ管理: ホワイトリスト方式・サーバ管理: GitHub・デプロイ: 全自動・プラグイン: 自動更新
オンプレ・コイツ・コレを直接公開?→ No
Cloudflare TunnelCloudflare Accessデータシートより
過労死太郎,過労死!満を持して!今はこのマシンで動いてます ...発表1週間前に!
実際の構成(過労死前)家𝙄𝙣𝙩𝙚𝙧𝙣𝙚𝙩𝙬𝙞𝙧𝙚𝙡𝙚𝙨𝙨自室AP(応用情報ではない)𝙢𝙞𝙘𝙧𝙤𝙬𝙖𝙫𝙚𝙤𝙫𝙚𝙣𝓭𝓸𝓸𝓻𝓭𝓸𝓸𝓻過労死太郎cloudflaredpapermcmc.yohane.sucloudflared25565MySQLsql-exporterオタク共
PaperMC・Spigotのフォーク(なんか速いらしい)・paperclipという便利システムがある・公式のjarに対してバイナリパッチ的にパッチ適用するやつ(初回のみ)・これを含んだコンテナは再配布しても大丈夫: papermc-dockerを自作・開発速度がそこそこ速い
papermc-docker・コンテナイメージ作りました・paperclip.jarしか入ってないので再配布OK・GitHub Actionsでpaperclip.jarをビルド・自動でPaperMC/Paperのmasterに追従・複数のベースイメージに対応・元々はイメージのビルドもmc.yohane.suでやっていたが分離
デプロイするのダルい
自動デプロイ: compose-cd・自作の雑自動更新スクリプト: compose-cd・systemd timerでremote repo見に行って更新あったらgit pull・イメージも新しいのがあったらdocker pull・更新したらdocker-compose down/up -d
サーバ更新・PaperMC:結構開発速い(し,リリース打たない)・プラグイン:ほぼバニラなのであんまりない・とはいえ入れたいものはある・DiscordSRV,CoreProtect,Prometheus Exporter
更新するのダルい
それ,Renovateでできるよ・Renovate: 依存関係を監視してプルリク送ってくれる太郎https://renovatebot.com
Renovateで諸々を更新・諸々の言語,設定ファイルに対応・Cargo.toml, docker-compose.ymlなど・対応してないやつも正規表現でマッチできる・コンテナは別repoにしてdigestを更新・https://github.com/sksat/papermc-docker/
ユーザ管理・最初はなにも考えずに全開放・荒らしが来た→ホワイトリスト
whitelist.json
SSHして追加するのダルい
GitHubに置いてしまえ
whitelist.jsonの検証ダルい
minecraft-whitelist-validator・Rustで雑に書いた・GitHub marketplaceに公開(簡単に使える)・誰が使うんだこんなの
サーバの様子・ゲーム内の問題もIssueで!・やたら昆布がある・やたら卵がある・やたら人参がある
やたらって何個?
正しい評価は正しい計測から
無茶振り・手近な異常プラグイン開発者に依頼
できた
できた・kory33/itemstack-count-infrastructure
サーバ管理・発表: sksat
僕の無茶振りでプラグインを開発: Kory__3
ロシア語監修: hsjoihs
いくら自動化しようがdisk fullからは逃げられない