GCP の GCE 上に環境を作りました。まずマスターとなるインスタンスを作り、人数分それをコピーしていきました。
マスターインスタンスの作り方
- まず ubuntu 20.04 を一つ用意します。今回は
e2-small
を使いました。 - GCP の vpc のファイアウォールの設定で、全許可のルールを作成し、それを GCE インスタンスに適用させます(AWS でいうところのセキュリティルール)
- これを忘れていると、ufw でポート開放してもアクセスできないということになります。
create-master.sh
を一回だけ実行します。これにより kakedashi ユーザーが作成されます。- 次に、
kakedashi
アカウントでログインできることを確認し、one/
とtwo/
を置きます。 マスターインスタンスを作ったら、その時点でのスナップショットを取得します。次に、GCE の新規作成時にディスクイメージに先ほどのスナップショットを指定することでコピーが作成できます。
gcloud
コマンドを使いました。例えば以下のコマンドにより、gce-0
~ gce-9
という名前でインスタンスが 10 個できます。(※プロジェクト名とスナップショット名に依ります。VM の新規作成画面を進んでいくと最下部に等価なコマンドが出てくるので、それをコピペしました。)
ネットワークタグで ictsc-practice
というのを指定していますが、これは GCP でのファイアウォールの設定です。
(powershell)
for ($i=0; $i -lt 10; $i++){ gcloud compute instances create "gce-$i" --project=ictsc-practice --zone=asia-northeast1-b --machine-type=e2-small --network-interface="network-tier=PREMIUM,subnet=default" --maintenance-policy=MIGRATE --no-service-account --no-scopes --tags="ictsc-practice,http-server,https-server" --create-disk="auto-delete=yes,boot=yes,device-name=gce-$i,mode=rw,size=10,source-snapshot=projects/ictsc-practice/global/snapshots/snapshot-0226,type=projects/ictsc-practice/zones/asia-northeast1-b/diskTypes/pd-balanced" --reservation-affinity=any }
- ipv6 を無効化しているのはなぜ?
- ipv4 だけにすると分かりやすいかなと思ってやりました。でもルーターでは無効化できてませんでしたね。
- vyos コンテナを自分で作ったのはなぜですか?
- dockerhub に転がっているものでうまく動かず(カーネル互換性の問題?)で、ハンズオン環境でコンテナを作って(つまり動く。)使うことにしました。