実験環境
- ディスクトップ Mac OS からターミナルから ssh 接続 WEBブラウザはSafari
- サーバー mini PC に ubuntu 22.04 server をインストール IP 192.168.0.20
LXD のインストール
ubuntu22.04 serverは標準で LXD (version 5.02)はインストールされていました。
$ sudo snap install lxd
lxd 5.17-e5ead86 from Canonical✓ installed
$ lxd --version
5.17
LXD UI 準標準
LXD の初期設定の項目で LXD UI を使用するには、
Would you like the LXD server to be available over the network? (yes/no) [default=no]: yes
にすると以下の項目が出てきます。
Address to bind LXD to (not including port) [default=all]:
Port to bind LXD to [default=8443]:
ここはデフォルトで良いと思います。
サーバーの IP アドレスとポート(port)をWEBブラウザで開けば良い。
$ sudo lxd init
Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]:
Name of the new storage pool [default=default]:
Name of the storage backend to use (zfs, btrfs, ceph, dir, lvm) [default=zfs]:
Create a new ZFS pool? (yes/no) [default=yes]:
Would you like to use an existing empty block device (e.g. a disk or partition)? (yes/no) [default=no]:
Size in GiB of the new loop device (1GiB minimum) [default=19GiB]:
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=lxdbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
Would you like the LXD server to be available over the network? (yes/no) [default=no]: yes
Address to bind LXD to (not including port) [default=all]:
Port to bind LXD to [default=8443]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]:
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: yes
$sudo lxd init の最後の質問
Would you like a YAML “lxd init” preseed to be printed? (yes/no) [default=no]: yes
にすると、下のように Config ファイルが表示されるので、設定の確認をします。
config:
core.https_address: '[::]:8443'
networks:
- config:
ipv4.address: auto
ipv6.address: auto
description: ""
name: lxdbr0
type: ""
project: default
storage_pools:
- config:
size: 19GiB
description: ""
name: default
driver: zfs
profiles:
- config: {}
description: ""
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
root:
path: /
pool: default
type: disk
name: default
projects: []
cluster: null
スナップでUIを有効にします。
LXD Web UIは、LXDサーバーとインスタンスを管理するためのグラフィカルインターフェイスを提供します。現在、初期段階にあり、まだ完全な機能を提供していませんが、最終的にはLXDコマンドラインクライアントに代わるものになります。
LXD Web UIにアクセスするには、次の手順を実行します。
$ sudo snap set lxd ui.enable=true
$ sudo systemctl reload snap.lxd.daemon
WEBブラウザの設定
https://ホストのIPアドレス:8443
ex) https://192.168.0.20:8443(ここはhttpではなくhttpsでアクセスすること)
WEBブラウザにページの表示できないとかメッセージがでるが、無視して表示させる。
証明書 Create a new certificate
LXD-UIを使うためには2種類の証明書を作成しなくてはなりません。
- LXD-UIがLXD本体を操作するために必要な証明書
(PEM:Privacy Encanced Mail形式のcrtファイル) - LXD-UIのWeb UIにログインするための証明書
(PFX:Personal Information Exchangeファイル)
ローカルPC(ここではMacOS)のWEBブラウザからアクセスすると
Canonical LXD Login 画面が表示される。
Setup LXD UI
上)Create a new certificate をクリックすると Setup LXC UI が表示される。
下)
- [Generate] をクリックすると、2つの証明書(ログイン用PFX・本体用PEM )が発行されますが、
- Trust
lxd-ui.crt のファイルをサーバーに読み込んで
lxc config trust add (lxd-ui.crt ファイル)
を実行してください。 - Import
lxd-ui.pfxファイル(証明書)を生成するのですが、OSやブラウザによって異なるので、ここで選択してください。
Setup LXD UI 番号順に設定を行うだけで良い。
- Generate ボタンをクリック
- Trust lxd-ui.crt ファイルを生成してブラウザでダウンロードする。
lxd-ui.crt ファイル(証明書)をFTPやSCP※でサーバーに転送・コピーして$ lxc config trust add lxd-ui.crt
- Mac アプリのキーチェンアクセスを起動してダウンロードした lxd-ui.pfx をドラッグ&ドロップする。
認証局を登録するときにパスワードを設定する。後から数回入力するので、このパスワードは忘れないように。
※MacOSからubuntu serverにファイルを転送する方法は、今回、 scp コマンドを使用した。
MacOSのターミナルから
% sudo scp /Users/Usrname/Downloads/lxd-ui.crt [サーバーのuser名]@[サーバーのアドレス]:[サーバーのディレクトリ]
ex)
% sudo scp /Users/Usrname/Downloads/lxd-ui.crt pop@192.168.0.20:/home/pop/
MacOS Terminal
% sudo scp /Users/Username/Downloads/lxd-ui.crt pop@192.168.0.20:/home/pop/
pop@192.168.0.20's password:
lxd-ui.crt 100% 1166 877.3KB/s 00:00
サーバーのユーザーディレクトリ(自分の場合 ‘pop’)にコピー(転送)した。
ユーザーディレクトに lxd-ui.crt が存在しているか確認して、
$ lxc config trust add lxd-ui.crt
$ pwd
/home/pop
$ ls -l
-rw-r--r-- 1 pop pop 1166 Sep 17 07:27 lxd-ui.crt
$ lxc config trust add lxd-ui.crt
Add existing certificate
Token発行
サーバーにssh接続したターミナルに
lxc config trust add –name lxd-ui
で、作られたtoken、この場合[ey…..J19]をコピーしてブラウザの Pasete your token here に貼り付けて、[Import] ボタンをクリック
$ lxc config trust add --name lxd-ui
Client lxd-ui certificate add token:
eyJjbGllbnRfbmFtZSI6Imx4ZC11aSIsImZpbmdlcnByaW50IjoiZmUxMDRmM2FkMmU1NmM1MTlkNTljMjY3NTA1ZTIzNDUwNDY0MGY1NDY1YjU3ODRkNjBkNDRjOWQyY2ViZjg4MCIsImFkZHJlc3NlcyI6WyIxOTIuMTY4LjAuMjA6ODQ0MyIsIjE5Mi4xNjguMC4xNzc6ODQ0MyIsIlsyNDA1OjY1ODc6ZjQyMDoyNTAwOjFlODM6NDFmZjpmZTMyOjNlZmRdOjg0NDMiLCIxOTIuMTY4LjEwLjE6ODQ0MyIsIltmZDQyOmI1MGM6ZGZhOjJkMTI6OjFdOjg0NDMiXSwic2VjcmV0IjoiZGM4NmI2MjUyYmMzYzVmNDI3NWQ4MzhiZWUyYmVhMmZkNzU5OTMzMTQ1MTJlYzM4ODExNGZjODgzYTM2ZDE4ZiIsImV4cGlyZXNfYXQiOiIwMDAxLTAxLTAxVDAwOjAwOjAwWiJ9
WEBブラウザの停止起動
MacOSのWEBブラウザ Safariを修了する。
一応、lxd もリロードしておく。
$ sudo snap restart --reload lxd
MacOSのWEBブラウザ Safariを再び起動する。
UI から LXD の操作ができる段階になりました。
注意
WEBブラウザによって、うまくいかない可能性が残るので、MacOSの場合は Safari が良さそうでした。未確認!