無料でLinuxの勉強ができる!SadServersとは?
SadServersとは、問題が起きているLinuxサーバのトラブルシューティングを通して、Linuxを学習することができる無料WEBサイトです。自分でLinux環境を作る必要がないため、気軽に取り組むことができます。 以下に使い方をご紹介するので、ぜひやってみてください。
使い方
Welcome
SadServersにアクセスすると、以下のようにWelcome画面が表示されます。
【日本語訳】
トラブルシューティングで悲しいサーバーをハッピーに!
"LeetCode※1 のLinux版です"
Capture The Flag※2 に挑戦。あなたのデバッグスキルを鍛え、証明しましょう。
次のSRE/DevOps※3 面接の練習をしましょう。
問題のあるフルリモートのLinuxサーバーを入手し、それを修正します。
※1 LeetCode:オンラインでコーディングの練習ができるWEBサイト
※2 Capture The Flag:情報セキュリティなどの分野で開催される、謎解き課題のタイムを競うイベントの総称
※3 モダンなソフトウェア開発と運用のアプローチ (SRE:信頼性エンジニアリング DevOps:開発と運用の統合)
問題一覧
Show Me Sad Servers
を押下すると、以下のように問題一覧が表示されます。
2024/1/14現在、EasyからHardまで計34問の問題が用意されています。
TypeにNo Registrationと記載されている問題は、ユーザ登録せずに取り組むことができます。
一番上のタグを選択すると、タグと関連する問題のみが表示されます。
問題画面
問題名を押下すると、以下のような問題画面が表示されます
【記載項目 日本語訳】
Senario : タイトル
Level : 難易度(Easy,Medium,Hard)
Type : 種類(Fix,Do,Hack)
Description : 説明
Test : 課題
Time to Solve : 制限時間
Run
を押下すると、仮想サーバーが起動します。
しばらく経つと、次の画面に切り替わります
General Instructionが追加されます
【General Instruction 日本語訳】
あなたはSSHセッション経由で実際のLinuxサーバー(エフェメラル仮想マシン)にフルアクセスできます。(sudo
が実行できるナリオもあれば、sudo shutdown
以外は実行できないシナリオもあります)。時間内にテストをパスできるように、問題の修正に必要なことを行ってください。時間が経過すると、仮想マシンは終了します。
制約として、サーバーからインターネットに出ることはできません。DNSはローカルで利用できます。また、SadServersが正常に動作するために必要な、問題とは無関係のサービス(特にポート2020と6767で動作しているサービス)を妨害しないでください。
もし行き詰まったり、どうしたらいいかわからない場合は、「Next Clue / Solution(次のヒント/解決策)」ボタンをクリックすると、ヒントが表示されます。ヒントウィンドウを閉じて、もう一度「Next Clue / Solution」をクリックすると、さらに新しいヒントが表示されます。 問題が解けたと思ったら、「Check My Solution(自分の解決策を確認する)」ボタンをクリックし、指定されたテスト通りに解けたか確認してください。
地球のCO2排出量を節約するため、またAWSの利用料金を削減するため、"Check My Solution "ボタンで正しい解答が検出された場合、サーバーは終了します。もし時間切れになる前にあきらめた場合は、次のようにしてサーバーをシャットダウンしてください
$ sudo shutdown -h now
ターミナル
Open the server terminal in a new window.
を押下すると、仮想サーバのターミナルが出現します。
このターミナル上で、問題に応じて様々なコマンドを実行し、サーバの抱える問題を解決します。
ヒント
問題画面でNext Clue/Solution
を押下すると、ヒントのポップアップが出現します。
ヒントは、表示させるたびに一つずつ増えていきます。
ヒントの内容はぼかしています。
チェック
問題画面でCheck My Solution
を押下すると、問題が解決したかどうかチェックしてくれます。問題を解決できていれば、花火のGIFが表示され、自動的にサーバが停止されます。
その他
問題を解く際の注意点
General Instructionにも記載されていますが、以下の内容にご留意ください。
- 時間切れ前にあきらめる際は、以下コマンドを実行してサーバを停止する
$ sudo shutdown -h now
- 問題とは無関係のサービス(特にポート:2020と:6767で動作しているサービス)を妨害しない
SadServersの支援
問題一覧画面の右下のアイコンをクリックすると、サイトの運営者を支援することができます。
SadServersのサイトマップはこちら
SadServersに関する記事をまとめています。
SadServersに取り掛かるための基礎知識や、各問題・ヒントの日本語訳、解き方の解説などを掲載しています。
Discussion