それでも気分は高専生

元高専生が自分のやってきたことを記事として残すためのてきとーなブログ

大学で輪講用の実習環境を作ったIQ1の軌跡

まえおき

この記事はIQ1の2まいめっ Advent Calendar 2018 - Adventarの11日目の記事です.
本投稿執筆時のIQは1となっております,あらかじめご了承ください.

ぷろろーぐ

教員「弊学M1で輪講するで,ラボ単位順繰りに好きなテーマを講義と実習するやで」
わい「弊ラボはDockerの説明とその使い方をするやで」
教員「弊学の設備だとsudo権限は勿論ないのと,FW(ファイアウォール)で弾くのでsshも使えんやで」
わい「ふぁ!?BYODするしかねぇ」
教員「みんなのIQ1なのでカスタマーサポートになってインストールやらせてね (にっこり」

こうしてIQ1のIQ1による,IQ1のための輪講環境が始まった...

なかみ

IQ1でもDockerのよさみを伝えたい,でもただのハンズオンじゃつまらないってことでこんな講義内容になってしまった.

  • 仮想化技術全般の話
    • なんかいろいろ
  • Dockerについて特に熱く語る
    • Dockerの構成
    • Dockerの利用場面
  • Dockerを使う上で気をつけること
    • アプリケーション実行ユーザを変更
    • なんでもかんでもDockerImageを拾い食いするのはダメよ
    • /var/run/docker.sock

じゃあ実習はどうなるのって話で,pullしてrunするのつまらんよなあってなって,/var/run/docker.sockをコンテナにマウントしてホストのrootとるやつやろうぜってなった.

じっしゅうかんきょう

GCPの無料クレジット枠残ってたので,実習環境用のGCEインスタンスをつかう.
でもsshできないのでWebコンソールを放り込んでログインしてもらう形に.
弊学では研究室がA1 - A6,B1 - B5とラベリングされており,合計11あるので11個のインスタンスをつくった.
流石に手作業はめんどくさいので,PackerとAnsibleを使ってGCEのイメージを構築し,Terraformでプロビジョニングしてみんなに使わせる方式にした.

github.com

なみだぐましいどりょく

PackerもTerrraformも(なんならGCPもそんなに)使ったことがなかったので,ほぼゼロベースで勉強してた.
IQ1に公式ドキュメントは厳しい.
セキュリティ面もうちょっとしかったりしたかったけど,しっかりしても実習の中でrootとるから然程意味ないよなあって思ったので,Webコンソールにベーシック認証を生やしただけのやつ使ってた.
あとGCPは一気にインスタンス作ろうと思っても,1リージョンで8CPUまで,全体で12CPUまでって制約を課されたので,リージョン分けとか面倒だと思いながらつくってた.

インフラ系のやつは構築に時間かかるから,トライアンドエラーのたびにめっちゃ時間食ってたの辛い.

かんそう

TerraformでGCPにプロビジョニングするのたのちぃ
実習環境をひつようなときにだけつくって壊せるので,GCPとプロビジョニングツール組み合わせるとええで
みんな輪講ではむりのない実習内容にしようね ><