Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
万国のサーバ管理者よ, 自動化せよ!
Search
sksat
November 16, 2021
Programming
1
6.5k
万国のサーバ管理者よ, 自動化せよ!
さくらのマイクロコミュニティ マイクラサーバー管理者の会 #2 のLT枠で発表しました
sksat
November 16, 2021
Tweet
Share
More Decks by sksat
See All by sksat
3ヶ月でできる! 探査機自作ゼミ教材自作入門
sksat
4
130
セキュリティ・キャンプ全国大会2024 S17 探査機自作ゼミ 事前学習・当日資料
sksat
2
550
AE Rust 勉強会: github-webhook-rs
sksat
0
190
teleka.suを支える技術
sksat
1
14k
ふつうのLinuxプログラミング-プロセスとハードウェア
sksat
25
7.3k
小型ハイブリッド用フライトシミュレータの開発
sksat
0
950
大学生でもできる!ハイブリッドロケット入門
sksat
0
1.3k
CORE 電装講習第1回
sksat
2
680
2019 spring WIP
sksat
1
110
Other Decks in Programming
See All in Programming
GraphQL あるいは React における自律的なデータ取得について
quramy
11
2.9k
Rubyのobject_id
qnighy
6
1.3k
Desafios e Lições Aprendidas na Migração de Monólitos para Microsserviços em Java
jessilyneh
2
150
From Idea to IDE: Developing Plugins for Android Studio
thisaay
1
170
RAGの回答精度評価用のQAデータセットを生成AIに作らせた話
kurahara
0
250
大公開!iOS開発の悩みトップ5 〜iOSDC Japan 2024〜
ryunakayama
0
190
Amazon Neptuneで始める初めてのグラフDB ー グラフDBを使う意味を考える ー
satoshi256kbyte
2
260
watsonx.ai Dojo #2 生成AIを使ったアプリ開発入門編
oniak3ibm
PRO
0
110
月間4.5億回再生を超える大規模サービス TVer iOSアプリのリアーキテクチャ戦略 - iOSDC2024
techtver
PRO
1
930
LangChainでWebサイトの内容取得やGitHubソースコード取得
shukob
0
160
意外とフォントが大事だった話 / Font Issues on Internationalization
fumi23
0
110
マルチモジュールにおけるテスト最適化
fxwx23
0
210
Featured
See All Featured
Faster Mobile Websites
deanohume
304
30k
Scaling GitHub
holman
458
140k
Into the Great Unknown - MozCon
thekraken
29
1.4k
Gamification - CAS2011
davidbonilla
79
5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
41
6.5k
Rails Girls Zürich Keynote
gr2m
93
13k
Mobile First: as difficult as doing things right
swwweet
221
8.8k
A Tale of Four Properties
chriscoyier
155
22k
StorybookのUI Testing Handbookを読んだ
zakiyama
26
5.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
248
20k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
The Pragmatic Product Professional
lauravandoore
31
6.2k
Transcript
万国のサーバ管理者よ, 自動化せよ! sksat (mc.yohane.su 管理者) Администраторы сервера всех стран, автоматизируйте!
さくらのマイクロコミュニティ マイクラサーバー管理者の会 #2
自己紹介 ・sksat ・最近はインターンで人工衛星作ってる ・マイクラはあんまりやってない ・マイクラでオーバーエンジニアリングするのはたのしい ・mc.yohane.su 管理者
mc.yohane.su
mc.yohane.su
None
変なドメインで鯖やってます
構成 ・オンプレ ・PaperMC,ほぼバニラ ・ユーザ管理: ホワイトリスト方式 ・サーバ管理: GitHub ・デプロイ: 全自動 ・プラグイン:
自動更新
オンプレ ・コイツ ・コレを直接公開? → No
Cloudflare Tunnel Cloudflare Accessデータシートより
過労死太郎,過労死! 満 を持 して! 今はこのマシンで動いてます ... 発表1週間前に!
実際の構成(過労死前) 家 𝙄𝙣𝙩𝙚𝙧𝙣𝙚𝙩 𝙬𝙞𝙧𝙚𝙡𝙚𝙨𝙨 自室 AP (応用情報ではない) 𝙢𝙞𝙘𝙧𝙤𝙬𝙖𝙫𝙚 𝙤𝙫𝙚𝙣 𝓭𝓸𝓸𝓻
𝓭𝓸𝓸𝓻 過労死太郎 cloudflared papermc mc.yohane.su cloudflared 25565 MySQL sql-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からは逃げられない