このはちゃん(ConoHa VPS)をダイエット(DietPiに)する

# ConoHaVPSでスモールフットプリントLinuxを使う

この記事は[ConoHa Advent Calendar 2023](https://qiita.com/advent-calendar/2023/conoha)の16日目です

なにやらConoHaコンソールにV3 VPSという怪しげな機能が追加されています。

さらに現在私が使っているVPSがCentOS7で 2024年 6月 30日にサポート終了する予定のOSとなっています。
そろそろ思い腰を上げてOSのVerUPでもしようかと思いましたが
現在使っているVPSスペックはRAM512MB機です

そのままVerUPしても面白くないし、
ならば全然別のOS(ディストリビューション)に載せ替えよう

ということで ConoHa VPS でDietPiを動かす
をゴールにしたいと思います。

実施内容は
1. 新規VPSを立ち上げ
1. conoha-isoを使ってisoイメージから起動してみる
1. Debian,DietPiのインストール

までを行います
既存システムの載せ替えは別途自分の作業なのでここでは対象外です。

それではこのはちゃんをダイエットさせて行きましょう

## ConoHa VPS でDietPiを動かす
### DietPiとは
> Raspberry Pi向けに、徹底的に軽量化されたOS。

そもそもRaspberry PiはARM CPUのため
VPSのx86_64とアーキテクチャが違いますが
x86_64向けのISOも提供されています。
👉 [DietPi](https://dietpi.com/)

Arch Linuxも軽量OSで有名ですが
使わなかった理由に
　Orange Pi 5を持っており
　DietPiがNVMeから簡単に起動することに成功したから
というのが大きいです
(一度SDからOrangePi公式に置いてあるDebianイメージで起動して
　DietPiイメージをNVMeに焼いて起動オプションを書き換えるだけ。)

とはいえVPS上で直接DietPiをインストールするのは難しい様です
どうもOSインストール起動画面まで行くもののその先へ進むことはありませんでした
そのため大元ディストリビューションのDebianを経由することとなります。

### VPS立ち上げ
それではとりあえず

V3が出てますが
V2でVPSを立ち上げましょう
APIがV3に対応してなかったり
ISOツールがV3で対応してない気がします

まずVPSを立ち上げます
立ち上げ方は割愛
　512MB機が入るディストリビューションであれば何だっていいです

VPSが立ち上がったら
とりあえず即シャットダウン

### conoha-isoで転送

https://support.conoha.jp/v/clitools/
ローカルマシンでCLIツールをダウンロードして使えるようにしておきましょう。
APIの設定は割愛します。

以下を実行しISOイメージを送ります
記載時最新版のイメージです
```
conoha-iso download -i https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-12.4.0-amd64-netinst.iso
```
msg="Download request was accepted."
が表示されればiso送信が開始されています

`conoha-iso list`で転送したisoが表示されれば送信完了です。
※conohaのisoライブラリに追加されるまでしばらく時間がかかります

### Debianのインストール iso読み込み
作ったVPSにISOを読み込ませてOSをインストールしていきます

マウント先のVPSはシャットダウンしておきます。
（さっきシャットダウンしたからされてるはず。

ローカルからISOマウントの指示を出します。
```
./conoha-iso insert
```

VPSの選択とISOイメージの選択をすればマウントされます


VPSを起動します
コンソールを確認するとDebianがisoBOOTしています
（30秒後に違う何かが起動してしまうので
　素早く行いましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150940/b597168b-d7c4-a80b-e40c-11093e8cbf26.png)

このままinstallを進めましょう

DietPi変換時に基本的に全てのデータが消される様なので
極力最小のインストールを行います

Graohical install
- ロケール設定
- キーボード設定
- ホスト名設定
- ドメイン名設定
- rootパスワード設定
- 一般ユーザー作成　パスワード設定
- パーティション設定

等聞かれます
適当にインストールして完了させます

途中再起動時にisoがマウントされたままだとSSD上のOSが起動しないため
iso起動後シャットダウンさせて
ローカルから
```
conoha-iso eject
```
でisoを取り出しておきます。

その後起動した状態まで持って行きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150940/ede9dbea-9928-7a29-9805-884223149adc.png)


## DietPiのインストール

ここからが本番

```
apt install curl
```
curlが入っていない場合に入れています

```
bash -c "$(curl -sSfL 'https://raw.githubusercontent.com/MichaIng/DietPi/master/.build/images/dietpi-installer')"
```
を入力します

するとDietPiインストーラーがDL後立ち上がります
インストールするブランチを指定しますが
masterでいきましょう

- 名前を入力
- インストールするデバイス
    - 20:Virtual machine
- インストールするDebianバージョン
    -  BookwormがrecommendedなのでBookworm

すると
数分スクリプトが流れます

最後に再起動指示が出されます。
この状態で通常の再起動でDietpiの起動や
シャットダウンを行ってイメージを取得したり
等ができるようになります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150940/c4f5bf51-8f47-f10d-e4ec-bb2da1db0f59.png)

この段階でシャットダウンしてイメージの保存をしてもいいと思います。
が、今回はそのまま再起動します。

### DietPi起動

インストール完了後再起動を行うと
無事DietPiが起動しました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150940/ae648b57-18bc-f913-015e-954485e35905.png)

DietPiはSBC向けなので
このままでは
rootのパスワードが固定でセキュリティもへったくれもありません
ConoHaのファイアウォール設定はキッチリ全て閉じておきましょう

そしてひとまずrootユーザーでログインします
すると(仮想)ハードウェア回り、パッケージの更新が行われます。


その後

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150940/502f4288-f230-b7ca-5604-8257c6884103.png)

システム情報が表示されるDietpi初期コンソールが表示されインストールが全て完了します。

ここから先は自由にOSを触っていけます。

起動後ちょっと経ってからのtopです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/150940/1f0a6360-2cbf-fd99-f8b7-c6a3d9c534c0.png)

だいぶusedメモリ量が少ないです

これでこのはちゃんが軽くなりました。

DietPi切り替えが思っていたよりもすぐに終わってしまいました。。
ConoHaVPS内はかなり高速で動いてくれるのでこの辺りの処理速度は素晴らしいと思います

## 後書き

#### 何故わざわざisoを経由したか
conoha-isoが使いたかったから
というか試していた段階では
DietPiのisoから起動、インストールを行いたかったが
結局起動してくれずDebian経由DietPiを実施
でconoha-isoが使いたかったという理由

#### VPS作成時にDebianイメージで起動すればいいのではないか
Exactly(その通りでございます)

#### この後どうするのか
前から使っているCentOSが乗っているVPSから作ったVPSへデータ移行をして
前のVPSを解体すると思います。

#### セキュリティ
DietPiにはデフォルトでファイアウォールは搭載されていません
（FW内のlocalで動かすことを前提なのとraspi等SBC向けの軽量OSという理由と思われる）
Debianですので適時firewallをインストールしてからオンライン公開してください