さくらのクラウドでクローンしたubuntuサーバーにsshできないときの解決法
isuconの申し込みのときにもらったさくらのクラウドのクーポンが2万円分余っていたのでせっかくならちゃんと使わせていただこうと思い以下の記事を参考にサーバを構築しました。
ISUCON過去問題の環境を「さくらのクラウド」で構築する | さくらのナレッジ
サーバーを1台構築するところまではよかったのですが、cloud-initで環境を構築するのに結構時間がかかったので、もう一台作成しようと思ったときにサーバーのコピーで構築してみました。
しかし、新たに構築したサーバではsshが上手く行かなかったので、ネットの記事などを参考に設定しました。
上手く行かない原因は、元のサーバーの設定を完全にコピーしているため、ipアドレスの設定などが上手く言っていないことでしたがネットにある記事はcentosを対象にしたものばかりでubuntu対応のものはなかったのでメモとしてまとめておきます。
(参考)CentOsの場合の解決法
まず、必要な条件としてコピー元のサーバーでパスワードログインでき、かつsudo権限のあるユーザーを作成する必要があります。
isuconのcloud-initを利用している場合は自動で
ユーザー名:isucon
パスワード:isucon
のユーザーが作成されるので大丈夫です。
次にサーバーのコピーが終わったら、web-uiのサーバの欄にあるコンソールというところから先ほどのisuconユーザーで新規にコピーで作ったサーバーにログインします。
まずは、端末のipアドレスを設定します。(ipアドレスは人によって違います。)
sudo ip a add a.a.a.a/24 dev ens3
次にsudo ip link set ens3 up
次にデフォルトゲートウェイを設定します。(ゲートウェイのアドレスも違います。)
sudo ip route add defalut via a.a.a.1
以上でつながるようになりました!他の人も書いていましたが、AWSなどではクローンするだけでつながるのでその点はすこし不満ですが、ただで使わせていただいているのでそれだけで大変ありがたいです!
(追記)
この方法だと端末を再起動したときに、再び設定する必要があります。
centosの場合は、設定ファイルに書いていたので永続化されますが、ubuntuの場合はip コマンドで設定しただけでは永続化されません。
試してないですが、/etc/netplan 以下に新規ファイルを作成したら永続化されると思います。(50-cloud-init.yamlは編集してはいけません。)
・疑問点
通常のサーバーだとdhcpでIPアドレスを設定しているみたいですが、ここのファイルにかかれているmacaddressとens3に設定されているmacaddressがコピー先のサーバでは異なるために上手く行かないのかな?今度暇なときに実験してみようかな。