【Proxmox 7.x】LXC コンテナのテンプレートを増やす。+ コンテナの立て方

# はじめに
この記事は [法政大学情報科学部 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/cis_hosei) 18 日目の記事です。

こんにちは、情報科学部の waigoma です。なんと 2 個目です。
proxmox で遊んでいたら、困ったことがあったのでそれについて書きます。

Oracle Linux を使いたかったが、公式のテンプレートには存在しなかった。
なのでこの記事は、デフォルトにない LXC コンテナのテンプレートを [ここ](https://uk.lxd.images.canonical.com/images/) からダウンロードして、テンプレートを増やすことが目的。
ちょっと躓いたので、半分メモのような形で書き残す。

# 環境
- Proxmox 7.3-3
- xterm.js

https://uk.lxd.images.canonical.com/

# Proxmox のコンソールを開く
メモ程度なので読み飛ばしましょう。

## Proxmox をブラウザで開く
https://IP-ADDRESS:8006/
`IP-ADDRESS` には Proxmox インストール時に設定した IP アドレスを入れましょう。
デフォルトでは、8006 番ポートで見ることができる。

## ログイン
ログインが求められるので、これもインストール時に設定したパスワードを入力しましょう。
ユーザーは root。

## コンソール開く
左側のタブから、`server` を選択する。
次に、右上の `>_ Shell` を選択して、`xterm.js` を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348896/ed1372ed-f0c8-2b81-15d6-b74435f5268b.png)

# LXC コンテナの更新
このコマンドを打つだけで、勝手に LXC コンテナのテンプレートがアップデートされる。
```terminal
# pveam update
```

## LXC コンテナのテンプレート一覧確認方法
`server` 欄から、`local (server)` を選択。
`CT Templates` タブを選択し、`Templates` を押せばテンプレートを確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348896/2b1f85a7-4262-ed6f-ac93-ddf836411e72.png)

また、ここのテンプレートを選択して右下のダウンロードを押すことで、テンプレートの追加ができる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348896/e832ed7e-2c35-db9f-493e-99d508d16a5a.png)

注意したいのは、Proxmox から？提供されているもののみしかダウンロードできない。
そのため、ここの一覧にないものは個別に追加しないといけない。

# LXC コンテナのテンプレートを増やす (主題)
今回は、外部で配布しているテンプレートをダウンロードする形で追加する。
その際使用するページは以下のリンクである。

https://uk.lxd.images.canonical.com/images/

一覧表示は [こちら](https://uk.lxd.images.canonical.com/) の方が見やすいかもしれない。

## リンク取得
今回は、Oracle Linux を使いたいので、例は [この Oracle Linux](https://uk.lxd.images.canonical.com/images/oracle/9/amd64/default/20221212_07:46/rootfs.tar.xz) を用いる。

URL は、先ほどのリンクを辿って、
`/images/使いたいOS/バージョン/amd64/default/タイムスタンプ/rootfs.tar.xz`
のファイルをコピーする。

## Proxmox に追加
追加する方法は、ターミナルからダウンロードすることになる。
そのため、ダウンロードする場所に移動する。
```terminal
# cd /var/lib/vz/template/cache
```

`wget` コマンドでダウンロードする。
ファイル名には、`Oracle_Linux_9.tar.xz` のように命名しておくと後々分かりやすいだろう。
```terminal
# wget 先ほど取得したリンク -O ファイル名

# # 例
# # wget https://uk.lxd.images.canonical.com/images/oracle/9/amd64/default/20221212_07:46/rootfs.tar.xz -O Oracle_Linux_9.tar.xz
```

## 追加できたかな？
さきほどの、`CT Templates` を確認すると追加されたことがわかる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348896/a027c677-81d3-fe5b-60b0-0298484ec00f.png)

# ちゃんとインストールできてるか確認
実際に今入れた LXC コンテナのテンプレートを使ってコンテナを作ってみる。

## コンテナを作る
`Create CT` を押して、パスワードなど必要事項を入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348896/1d396608-0d9e-bea1-1383-1957ca378fab.png)

次の画面でテンプレートを選択できるので、入れたい `OS` を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348896/00dbeb4f-3424-861a-4585-351cf74badfa.png)

`Disks` や `CPU` などは適当に決めて、`Confirm` タブに行き、`Finish` を押す。
これだけでコンテナの作成は完了。

左側のタブに項目が増えていることを確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348896/3f998a30-7405-6621-a23e-fec4126002b4.png)

そうしたら、今作ったコンテナを選択して、右上の `Start` ボタンを押せば起動する。

## OS の確認
作成したコンテナを選択して、右上の `>_ Console` からコンソールを立ち上げる。
OS にログインして、以下のコマンドを実行する。

```console
# cat /etc/os-release

NAME="Oracle Linux Server"
VERSION="9.1"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="9.1"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Oracle Linux Server 9.1"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:9:1:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 9"
ORACLE_BUGZILLA_PRODUCT_VERSION=9.1
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=9.1
```

このような出力になり、Oracle Linux Server 9.1 がインストールできていることが確認できた。

# 最後に
ここまで目を通してくださってありがとうございます。
何かの役に立っていれば嬉しいです！

ノリと勢いで 2 つめの記事も完成してしまいました。
変な文章とかわかりにくい部分とかもあるかもしれませんが、ご愛敬ということでお許しください！

ここまでお付き合いいただき、ありがとうございました！
それでは良き Proxmox ライフを！

# 参考文献
https://qiita.com/maccadoo/items/fb4a9cbc591a5ec9839e

https://www.reddit.com/r/Proxmox/comments/hagkvu/more_lxc_templates/

https://ping.flenny.net/2016/how-to-update-proxmox-lxc-container-templates/

https://dev.classmethod.jp/articles/linux-os-version/

https://uk.lxd.images.canonical.com/

https://uk.lxd.images.canonical.com/images/