no-image

DigitalOceanでIPアドレスを変えずにOSを再インストールする方法

DigitalOceanっていう簡単に言うとVPSとIaaSの中間みたいなサービスがあって、初期費用無料で課金も1時間単位なのでちょっとしたテストサーバーを作るのに便利だったりするんですけど、さくらのVPSとは違ってOSを再インストールするっていう概念が無いので、まっさらなOSに戻そうとすると最初からマシンを作り直し→結果IPアドレスも変わる事態になります(Vagrant使うとそうでもないんですが今回は割愛)。

「でもそれじゃ困るよ、せっかくDNSも設定したのにIP変わるとDNSももう一回設定し直しじゃん」っていう問題も発生するかと思いますので、今回はその解決方法考えてみました。

Droplet作成

まず普通にDropletを作成します。予め設定でローカルの~/.ssh/id_rsaの公開鍵を個人設定から登録しておくのがベストです。登録しておけば下の写真の通り、その秘密鍵でログインするように設定できます。よくわからないよ…っていう人も大丈夫です、公開鍵認証を選択しないとrootのパスワードがメールで届きます。

id_rsa

仮想マシンのシャットダウン

作成した仮想マシンを一旦シャットダウンするためにSSHでログインします。

ssh root@192.0.2.0

以下のようにごにょごにょ聞かれたらyesとして下さい。

The authenticity of host '128.199.152.241 (128.199.152.241)' can't be established.
ECDSA key fingerprint is SHA256:368Wp+BvXcN9hHccUpkcKFrBp2aJZOJHagepD61FBjU.
Are you sure you want to continue connecting (yes/no)?

以下のコマンドでシャットダウンします。

shutdown -h now

スナップショットの作成

この段階でDropletのスナップショットを取れば、ほぼまっさらなOSのイメージを取ったのと同じ事になります。名前はわかりやすくinitial-ubuntu16.04などとします。

screenshot-from-2016-09-08-20-55-52

スナップショットから初期状態に戻す

スナップショットから初期状態に戻すには、Restore Dropletを選択します。これでOSを再インストールしたのとほぼ同じ効果を得られます。

screenshot-from-2016-09-08-21-01-47