Slide 1

Slide 1 text

万国のサーバ管理者よ, 自動化せよ! sksat (mc.yohane.su 管理者) Администраторы сервера всех стран, автоматизируйте! さくらのマイクロコミュニティ マイクラサーバー管理者の会 #2

Slide 2

Slide 2 text

自己紹介 ・sksat ・最近はインターンで人工衛星作ってる ・マイクラはあんまりやってない ・マイクラでオーバーエンジニアリングするのはたのしい ・mc.yohane.su 管理者

Slide 3

Slide 3 text

mc.yohane.su

Slide 4

Slide 4 text

mc.yohane.su

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

変なドメインで鯖やってます

Slide 7

Slide 7 text

構成 ・オンプレ ・PaperMC,ほぼバニラ ・ユーザ管理: ホワイトリスト方式 ・サーバ管理: GitHub ・デプロイ: 全自動 ・プラグイン: 自動更新

Slide 8

Slide 8 text

オンプレ ・コイツ ・コレを直接公開? → No

Slide 9

Slide 9 text

Cloudflare Tunnel Cloudflare Accessデータシートより

Slide 10

Slide 10 text

過労死太郎,過労死! 満 を持 して! 今はこのマシンで動いてます ... 発表1週間前に!

Slide 11

Slide 11 text

実際の構成(過労死前) 家 𝙄𝙣𝙩𝙚𝙧𝙣𝙚𝙩 𝙬𝙞𝙧𝙚𝙡𝙚𝙨𝙨 自室 AP (応用情報ではない) 𝙢𝙞𝙘𝙧𝙤𝙬𝙖𝙫𝙚 𝙤𝙫𝙚𝙣 𝓭𝓸𝓸𝓻 𝓭𝓸𝓸𝓻 過労死太郎 cloudflared papermc mc.yohane.su cloudflared 25565 MySQL sql-exporter オタク共

Slide 12

Slide 12 text

PaperMC ・Spigotのフォーク(なんか速いらしい) ・paperclipという便利システムがある ・公式のjarに対してバイナリパッチ的にパッチ適用するやつ (初回のみ) ・これを含んだコンテナは再配布しても大丈夫 : papermc-dockerを自作 ・開発速度がそこそこ速い

Slide 13

Slide 13 text

papermc-docker ・コンテナイメージ作りました ・paperclip.jarしか入ってないので再配布 OK ・GitHub Actionsでpaperclip.jarをビルド ・自動でPaperMC/Paperのmasterに追従 ・複数のベースイメージに対応 ・元々はイメージのビルドも mc.yohane.suでやっていたが分離

Slide 14

Slide 14 text

デプロイするのダルい

Slide 15

Slide 15 text

自動デプロイ: compose-cd ・自作の雑自動更新スクリプト : compose-cd ・systemd timerでremote repo見に行って更新あったらgit pull ・イメージも新しいのがあったら docker pull ・更新したらdocker-compose down/up -d

Slide 16

Slide 16 text

サーバ更新 ・PaperMC:結構開発速い(し,リリース打たない) ・プラグイン:ほぼバニラなのであんまりない ・とはいえ入れたいものはある ・DiscordSRV,CoreProtect,Prometheus Exporter

Slide 17

Slide 17 text

更新するのダルい

Slide 18

Slide 18 text

それ,Renovateでできるよ ・Renovate: 依存関係を監視してプルリク送ってくれる太郎 https://renovatebot.com

Slide 19

Slide 19 text

Renovateで諸々を更新 ・諸々の言語,設定ファイルに対応 ・Cargo.toml, docker-compose.ymlなど ・対応してないやつも正規表現でマッチできる ・コンテナは別repoにしてdigestを更新 ・https://github.com/sksat/papermc-docker/

Slide 20

Slide 20 text

ユーザ管理 ・最初はなにも考えずに全開放 ・荒らしが来た →ホワイトリスト

Slide 21

Slide 21 text

whitelist.json

Slide 22

Slide 22 text

SSHして追加するのダルい

Slide 23

Slide 23 text

GitHubに置いてしまえ

Slide 24

Slide 24 text

whitelist.jsonの検証ダルい

Slide 25

Slide 25 text

minecraft-whitelist-validator ・Rustで雑に書いた ・GitHub marketplaceに公開(簡単に使える) ・誰が使うんだこんなの

Slide 26

Slide 26 text

サーバの様子 ・ゲーム内の問題もIssueで! ・やたら昆布がある ・やたら卵がある ・やたら人参がある

Slide 27

Slide 27 text

やたらって何個?

Slide 28

Slide 28 text

正しい評価は正しい計測から

Slide 29

Slide 29 text

無茶振り ・手近な異常プラグイン開発者に依頼

Slide 30

Slide 30 text

できた

Slide 31

Slide 31 text

できた ・kory33/itemstack-count-infrastructure

Slide 32

Slide 32 text

サーバ管理・発表: sksat

Slide 33

Slide 33 text

僕の無茶振りでプラグインを開発: Kory__3

Slide 34

Slide 34 text

ロシア語監修: hsjoihs

Slide 35

Slide 35 text

いくら自動化しようが disk fullからは逃げられない