LoginSignup
1
3

More than 1 year has passed since last update.

Ubuntu22.04でLXD環境構築

Last updated at Posted at 2023-02-19

LXD環境を作る為の忘備録
今月号の日経Linuxに特集があったのにも触発されてちょっとちゃんとセットアップしてみた
WebUIとしてLXDMosaicとLXDWAREのLXD-Dashboardに対応

LXD

LXD公式

LXDのセットアップ

lxd initの項目については基本的にすべてデフォルトでも問題なし
※今回LXDのホストのIPは以降192.168.0.242として説明

$ sudo snap install lxd
$ lxd init

ブリッジ設定

LXDホスト機の外部からコンテナやVMにアクセスできるようにする(本例では192.168.0.0/24系)

$ sudo apt update && sudo apt install -y bridge-utils

netplanの作成
※Ubuntu22.04から一部gateway4が使えなくなったのでroutes書式を使用
※ens32の部分(二か所はip aコマンドなどで自分の環境のNICと合わせる)

/etc/netplan/00-installer-config.yaml
network:
  ethernets:
    ens32:
      dhcp4: false
      dhcp6: false
      accept-ra: false
  bridges:
    br0:
      interfaces: [ens32]
      addresses: [192.168.0.242/24]
      routes:
        - to: default
          via: 192.168.0.1
      link-local: []
      nameservers:
        addresses: [192.168.0.1]
      parameters:
        forward-delay: 0
        stp: no
      optional: true
  version: 2
$ sudo netplan apply
$ lxc profile create bridge
$ lxc network attach-profile br0 bridge eth0
$ lxc profile device add bridge root disk path=/ pool=default

LXDMosaic

LXDMosaic公式

LXDMosaicのセットアップ

LXDMosaicコンテナからLXDホストへ繋ぐ為の認証設定
下記some-secret-stringには任意のパスワードを設定

$ lxc config set core.https_address [::]
$ lxc config set core.trust_password some-secret-string

LXDMosaic用のコンテナを生成
※PHPバージョンの依存関係の問題により22.04ではなく20.04を選択

$ lxc launch ubuntu:20.04 LXDMosaic --profile=bridge
$ lxc exec LXDMosaic bash

ここからLXDMosaicコンテナ内の操作
一旦上記のブリッジが正しく動作しているか確認する為現在のIPを取得

# ip a

IPv6の無効化

ここで割り振られてしまっているIPv6のアドレスが後々邪魔になるようなので予め無効化

/etc/sysctl.d/60-ipv6-disable.conf
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
sudo systemctl restart procps
/etc/rc.local
#!/bin/bash
systemctl restart procps
exit 0
$ sudo chmod 755 /etc/rc.local
$ sudo systemctl reboot

rebootするとコンテナが切断されるので入り直してから以降の作業を行う
インストールが終わるとターミナル内に管理画面のアドレスが表示されるのでそれにアクセスする
※今回LXDMosaicコンテナは192.168.0.111とする

$ lxc exec lxdMosaic bash
# curl https://raw.githubusercontent.com/turtle0x1/LxdMosaic/master/examples/install_with_clone.sh >> installLxdMosaic.sh
# chmod +x installLxdMosaic.sh
# ./installLxdMosaic.sh

Screenshot from 2023-02-19 17-36-14.png
image.png
ここではLXDMosaicのコンテナから見てLXDが動いているホストを指定する
Trust Passwordには上記のsome-secret-stringに入力したパスワードを指定する
image.png
image.png
こちらにはWeb管理画面のアカウント情報を登録するパスワードはsome-secret-stringのパスワードとは別で可
Screenshot from 2023-02-19 17-40-10.png
Screenshot from 2023-02-19 17-40-16.png
Screenshot from 2023-02-19 17-40-38.png
image.png
Screenshot from 2023-02-19 18-49-24.png

LXDWAREのLXD Dashboard

LXDWARE公式

LXD Dashboard用のコンテナを生成
※こちらはUbuntu22.04を使用
※LXDWAREの方はIPv6問題は特にないのでその対応は不要、コンテナのIPだけ確認(こちらは192.168.0.169)
※公式ドキュメントでは3.4.0で書かれているけれど最新でも問題なさそうなので3.6.0を指定

$ lxc launch ubuntu:22.04 LXDDashboard --profile=bridge
$ lxc exec LXDDashboard bash
# ip a
# apt update && apt install wget nginx php-fpm php-curl sqlite3 php-sqlite3 -y
# wget https://github.com/lxdware/lxd-dashboard/archive/v3.6.0.tar.gz
# tar -xzf v3.6.0.tar.gz
# cp -a lxd-dashboard-3.6.0/default /etc/nginx/sites-available/
# cp -a lxd-dashboard-3.6.0/lxd-dashboard /var/www/html/

PHPバージョン指定を7系から8系に変更

/etc/nginx/sites-enabled/default
server {
	listen 80 default_server;
	listen [::]:80 default_server;
	root /var/www/html/lxd-dashboard;
	index index.php index.html;
	server_name _;

	location / {
		try_files $uri $uri/ =404;
	}
	
	location ~ \.php$ {
        #include snippets/fastcgi-php.conf;
        #fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
-       fastcgi_pass unix:/run/php/php7.4-fpm.sock;
-       #fastcgi_pass unix:/run/php/php8.1-fpm.sock;
+       #fastcgi_pass unix:/run/php/php7.4-fpm.sock;
+       fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    	include fastcgi_params;
    	include snippets/fastcgi-php.conf;
     }
}
# mkdir -p /var/lxdware/data/sqlite
# mkdir -p /var/lxdware/data/lxd
# mkdir -p /var/lxdware/backups
# chown -R www-data:www-data /var/lxdware/
# chown -R www-data:www-data /var/www/html
# systemctl restart nginx
# exit

セットアップ完了後にコンテナのIPにアクセス
Web画面の管理ユーザーを登録
image.png
ログイン
image.png
LXDのホストが登録されていないので追加
image.png
image.png
下画面に書いてあるように例えばホームディレクトリにlxdware.crtという名前のファイルを作り内容に

-----BEGIN CERTIFICATE-----
~
-----END CERTIFICATE-----

の内容をコピーする
そののち以下のコマンドで証明書を取り込む

$ lxc config trust add lxdware.crt

$ lxc config set core.https_address [::] の方は上記でもやったのでやってない場合のみ行う
image.png
LXDホストと接続する
image.png
image.png
Screenshot from 2023-02-19 19-24-02.png

ちなみにRedHat系だとデフォルトではlxcコマンドを一般ユーザー権限で実行できないのでグループ追加が必要

$ sudo usermod -aG lxd username

参考記事など
Ubuntu 20.04LTSでブリッジ接続を作成する
LXDでブリッジ接続する方法(Ubuntu20.04)
UbuntuでIPv6を無効にする
LXD で作る仮想化 GUI 環境 - Ubuntu 22.04 LTS 版

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3