PVE on RPi(ラズパイに仮想化環境載せてみた)

# 概要
Raspberry Pi上にProxmox VE(以下、PVE)をインストールする際の手順やコマンドなどを書いてみました。参考になれば幸いです。

# 手順
## 用意するもの
### 必要
* **Raspberry Pi**(OSをインストールできるものに限る、今回はPi4 4GBを使用)
* **SSD**(なければUSBメモリ・SDカードでも可)
* **電源ケーブル**(Raspberry Piの必要電力にあわせて選ぶ)
* **ネットワーク**(EthernetまたはWi-Fiで接続する)
* 作業用PC(Raspberry Pi Imagerとブラウザが使用できるPCを用意する)

### 任意(必要であれば用意する)
* ケース
* マウス/キーボード(設定によっては必要ない(最初からSSH接続で操作することも可能なため))
* ディスプレイ(理由はマウス/キーボードと同じ)

## OSをインストール
作業用PCでRaspberry Pi Imagerを開き、以下のように設定します。
```
Raspberry Piデバイス : <使用しているRaspberry Piの機種>
OS : Raspberry Pi OS (other) -> Raspberry Pi OS Lite (64bit / 32bit)
ストレージ : <インストール先>
```
また、次の画面でRaspberry Pi OSに初期設定ができるので、ここでやってしまいましょう。
```
ホスト名 : <任意のホスト名>
ユーザー名 : <任意のユーザー名>
パスワード : <任意のパスワード(できるだけ強いものにしておくべき)>
Wi-Fi : <接続したいWi-FiのSSIDとパスワード> (Ethernetで接続する方は設定しなくてよい)
Wifiを使用する国 : <自分の住んでいる国(日本ならJP)> (Ethernetで接続する方は設定しなくてよい)
タイムゾーン : <自分の地域のタイムゾーン(日本ならAsia/Tokyo)>
キーボードレイアウト : <自分が使用しているキーボードのレイアウト(JISキーボードならjp)>

SSH : 有効化(自分でインストールしたい方は無効化)
認証方法 : (パスワード認証 / 公開鍵認証)
```
以上の項目のうち`ホスト名`、`ユーザー名`、`パスワード`、`SSH(認証方法)`(Wi-Fiで接続する方は`Wi-Fi(Wifiを使用する国)`)を設定しておくと、マウス/キーボードを使用せず最初からSSH接続して操作することができます。設定しておくとよいでしょう。

最後に、「はい」を押してインストールします。

## 下準備
ここからはRaspberry Piを起動し、OSが操作できる状態にしてから進んでください。

1\. まず、OSのパッケージリストを更新し、古いパッケージをアップグレードします。
```shell-session
$ sudo apt update
$ sudo apt upgrade
```
2\. `curl`など必要なパッケージがインストールされていることを確認します。(ここでvimなどもインストールできます)
```shell-session
$ sudo apt install curl ifupdown2 vim
```
3\. 静的IPを設定します(動的IPでも問題ない方は飛ばしてください)。
しかし、今回はこの手順を割愛させていただきます(別の記事で紹介しようと思います)。

4\. `root`ユーザーのパスワードを設定します。PVEのWebインターフェイスへのログインにはrootのパスワードが必要なので必ず設定するようにしましょう。(**強固なパスワードを設定することを強く推奨します**)
```shell-session
$ sudo passwd
```

## PVEをインストール
お待たせいたしました。いよいよPVEをインストールしていきます。

5\. PVEのパッケージはサードパーティーのリポジトリにあるため、まずはリポジトリのGPGキーを追加します。
```shell-session
$ curl -L https://mirrors.aqua.cn/proxmox/debian/pveport.gpg | sudo tee /usr/share/keyrings/pveport.gpg > /dev/null
```

6\. GPGキーが追加できたら、今度はリポジトリをソースリストに追加します。
```shell-session
$ echo "deb [arch=arm64 signed-by-/usr/share/keyrings/pveport.gpg] https://mirrors.aqua.cn/proxmox/debian/pve bookworm port" | sudo tee /etc/apt/sources.list.d/pveport.list/
```

7\. ソースリストに変更を加えたので、パッケージリストを再度更新しなければいけません。これを行わないと、パッケージマネージャーは追加したリポジトリを認識できません。
```shell-session
$ sudo apt update
```
ここでエラーが出なければ、リポジトリを追加することに成功しています。

8\. 最後に、PVEといくつかの必要なパッケージをインストールします。なお、このプロセスには数分かかることがあります。また、インストール中に設定を求められる項目があります(9, 10で設定)
```shell-session
$ sudo apt install proxmox-ve postfix open-iscsi pve-edk2-firmware-aarch64
```

9\. インストール中に、`Postfix`から設定を求められます。このプロンプトは、矢印キーとエンターキーで操作できます。ここではメールサーバーのタイプの設定を求められていますが、基本的には`Local only`で問題ないでしょう。

10\. 次の画面でも同じように設定を求められます。ここでは`Postfix`が利用するメールアドレスを聞かれていますが、こちらもデフォルトの設定で問題ありません。自分で設定したい方はここで設定しましょう。

11\. インストールが完了したら、Raspberry Piを再起動します。
```shell-session
$ reboot
```

## Webインターフェイスへのログイン
これでPVEのインストールが完了し、Webインターフェイスにアクセスできます。
作業用PCなど別の端末で`https://<自分のIPアドレス>:8006`にアクセスしてください。
(動的IPを設定している方は初期設定で設定したホスト名をIPアドレスの欄に置き換えるか、次のコマンドでIPアドレスを調べるとアクセスできます。)
```shell-session
$ hostname -I
```
(アクセスする際に警告画面が出る場合もありますが、無視して進んでも大丈夫です。(大抵のブラウザは「詳細設定」を開くとインターフェイスに進めるリンクが出てくるはず))

アクセスするとログイン画面が出てくるので、項目に以下の内容を入れてログインします。
```
User name(ユーザー名) : root
Password(パスワード) : <4で設定したパスワード>
```
(`Language`欄を`日本語 - 日本語`に設定すると表示言語を日本語に変更できます)

これで、すべての手順が完了しました。

# 最後に
上手くいけば、この手順で正しくPVEがインストールされているでしょう。
私自身、他のチュートリアルに書かれていたインストール手順でうまく行かなく挫折していました(特に5-7の部分)。この記事が少しでも私のように挫折していた方のお役に立てれば喜ばしい限りでございます。
~~また気が向いたら~~ この記事が好評でありましたらVM/コンテナの作成方法についてもまとめたいと思います。ぜひいいね、ストックよろしくお願いします。

# 参考記事
https://pimylifeup.com/raspberry-pi-proxmox/

https://qiita.com/stomi80/items/56a2b26493bc65cb628c