Proxmox VE上のLXCでsnapdを使う場合に必要な設定

Page content
LXCを使いこなすべくメモ
OSSの仮想化環境「Proxmox Virtual Environment」で利用できるLXC (Linux Containers) ゲスト内で、snapdを使おうとしたら、追加設定が必要だったのでメモしておく。手元で試したPVEやLXCの情報は次の通り。
項目 | 内容 |
---|---|
Proxmox VE | pve-manager/8.2.7/3e0176e6bb2ade3b (running kernel: 6.8.12-3-pve) |
PVE CPUアーキテクチャ | x86_64 |
CT Template | ubuntu-24.04-standard (ubuntu-24.04-standard_24.04-2_amd64.tar.zst) |
ちなみに、この知見は、具体的にどんな場合に必要だったかというと、LXCゲスト内でCertbotのsnap版を利用しようとした場合であった。
設定手順
Step-1. PVEホスト: LXCゲストに「fuse=1」を追加設定
PVEホストでpct
コマンドを使って、対象のLXCゲストのfeatures設定にfuse=1
を追加する。ここでは、PVE上の対象とするLXCゲストのIDを105としている。
## ID:105の現状設定を確認 $ sudo pct config 105 arch: amd64 cores: 4 features: nesting=1 hostname: test-snapd memory: 512 net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=XX:XX:XX:XX:XX:XX,ip=dhcp,type=veth ostype: ubuntu rootfs: local-lvm:vm-105-disk-0,size=8G swap: 512 unprivileged: 1 ## ID:105の「features」設定を変更して確認 $ sudo pct set 105 --features nesting=1,fuse=1 $ sudo pct config 105 arch: amd64 cores: 4 features: nesting=1,fuse=1 hostname: test-snapd memory: 512 net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=XX:XX:XX:XX:XX:XX,ip=dhcp,type=veth ostype: ubuntu rootfs: local-lvm:vm-105-disk-0,size=8G swap: 512 unprivileged: 1 $ sudo pct reboot 105 # LXCゲストを起動状態から再起動する場合 $ sudo pct start 105 # LXCゲストを停止状態から起動する場合
Step-2. LXCゲスト: snapdとsnap「hello-world」をインストール
LXCゲストにsnapdパッケージをインストールする。その後にsnapの「hello-world」をインストールする。後者はなぜか1回目は不成功で、2回目で成功するのだが、この謎については深く調査していない。どうやら動くのでヨシ。
## snapdインストール # apt install snapd ## 「hello-world」インストール: 1回目は不成功 # snap install hello-world error: cannot perform the following tasks: - Setup snap "core" (17200) security profiles (cannot reload udev rules: exit status 1 udev output: Failed to send reload request: No such file or directory ) ## 「hello-world」インストール: 2回目で成功する # snap install hello-world 2024-11-04T15:31:28Z INFO Waiting for automatic snapd restart... hello-world 6.4 from Canonical** installed ## 「hello-world」を実行する $ hello-world # SSHログインした状態で Hello World!
参考: エラーメッセージの例
Step-1の「fuse=1」を追加していない場合
PVEホストにて、LXCゲストのfeatures設定にfuse=1
を追加していない場合。LXCゲストでのsnap「hello-world」インストール時に、次のエラーが発生する。
# snap install hello-world error: system does not fully support snapd: cannot mount squashfs image using "squashfs": mount: /tmp/syscheck-mountpoint-2023654386: mount failed: No such file or directory.