LXD/LXCのWeb管理ツール(LXDUI)の導入手順

カテゴリ:コンテナ仮想化

この記事ではLXD/LXCの便利なWeb管理ツールであるLXDUIの導入手順を解説いたします。

参考サイト:
https://github.com/AdaptiveScale/lxdui/wiki/Installing-LXDUI-2.0

Note以降は CentOS 8 + LXD 4.4 環境での手順となります。

事前にインストールしておくパッケージ

LXDUIのインストール前に以下のパッケージをインストールしておきます。

LXD

まず、LXDをインストールしておきます。 ソースファイルやOSのパッケージ管理ツール(yum、dnf)からもインストールが可能ですが、snapパッケージとしてインストールすることが主流となっています。

参考LXD環境の構築手順(Snapパッケージ使用)

また、コンテナのネットワーク接続も可能な状態にしておきましょう。

参考LXDのネットワーク設定(bridgeとmacvlan)

Python 3

LXDUIバージョン2.0では、Python 3で完全に書き直されています。そのため、Python 3がインストールされている必要があります。

以下のコマンドでPython 3をインストールします。

# yum -y install python3 python3-devel
# python3 --version
Python 3.6.8

PIP

PIPはPythonアプリケーションのパッケージマネージャです。 必要なPythonパッケージがシステムに存在しない場合は、PIPを使用してインストールできます。

以下のコマンドで PIP をインストールします。

# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
# python3 get-pip.py
# pip --version
pip 20.2.2 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

OpenSSL

OpenSSLは証明書の管理に使用されます。

以下のコマンドでOpenSSLをインストールします。

# yum -y install openssl
# openssl
OpenSSL> version
OpenSSL 1.1.1c FIPS  28 May 2019

LXDUIのインストール

1. GitHubリポジトリからLXDUIをクローンします。

Gitがインストールされていない場合、先にインストールします。

# yum -y install git
# git clone https://github.com/AdaptiveScale/lxdui.git

2. テスト用の仮想環境を作成します。

Noteシステムにグローバルにインストールする場合は、この手順2はスキップしてください。

# python3 -m venv lxduienv

仮想環境をアクティブ化します。

# source lxduienv/bin/activate

3. LXDUIのインストーラーを実行する

インストール方法は、PIPまたはsetuptoolsの好きな方を使用できます。

まず、どちらのインストール方法を使用するかに関係なく、PIPを最新版にアップグレードしておきます。

# pip3 install --upgrade pip
# pip --version
pip 20.2.2 from /root/lxduienv/lib64/python3.6/site-packages/pip (python 3.6)

gccがインストールされていない場合はインストールします。

# yum -y install gcc

PIPでインストールする場合:

# cd lxdui
# pip3 install .

Note「致命的エラー: Python.h: そのようなファイルやディレクトリはありません」のエラーが表示される場合は、以下のパッケージをインストールしてください。
# yum -y install python3-devel

setuptoolsでインストールする場合:

# cd lxdui
# python3 setup.py install

LXDUIの起動

以下のコマンドでLXDUIアプリを起動します。

# python3 run.py start

起動時の例)

# python3 run.py start
LXDUI ver. 2.1.2 -- (c)AdaptiveScale, Inc.
http://www.adaptivescale.com
LXDUI started. Running on http://0.0.0.0:15151
PID=11103, Press CTRL+C to quit

CLIを使用する場合は以下を実行します。

# lxdui start

参考LXDUIバージョン2.0では、LXDUIを管理するための新しいコマンドラインインターフェイス(CLI)が導入されています。

LXDUIアプリが起動したら、Webブラウザで以下のURLを開き、LXDUIにアクセスします。

http://ホストのIPアドレス:15151

注意ファイアウォールで15151ポートを許可しておく必要があります。

# firewall-cmd --add-port=15151/tcp --zone=public --permanent
success
# firewall-cmd --reload
success

参考初期設定のユーザー名とパスワードはどちらも admin です。

LXDUIのSystemdによる自動起動の設定

LXDUIをSystemdで自動起動するための設定を行います。

Noteこの例ではlxduiフォルダは/opt配下に存在するものとします。

rootユーザーでSSHでログインします。

/opt/lxdui/run.pyの先頭行に以下を記述します。

#!/usr/bin/python3

例)

#!/usr/bin/python3
from app.cli.cli import lxdui

def main():
    lxdui()

if __name__ == '__main__':
    main()

/opt/lxdui/run.pyに実行権限を付与します。

# chmod +x /opt/lxdui/run.py
# ls -la /opt/lxdui/run.py
-rwxr-xr-x 1 root root 113  1月 25 20:01 /opt/lxdui/run.py

lxdui.serviceファイルを作成します。

# touch /usr/lib/systemd/system/lxdui.service

/usr/lib/systemd/system/lxdui.serviceファイルに以下を記述します。

[Unit]
Description=LXDUI

[Service]
ExecStart=/opt/lxdui/run.py start
Restart=always
PIDFile=/opt/lxdui/lxdui.pid

[Install]
WantedBy=multi-user.target

設定ファイルの再読込を実施します。

# systemctl daemon-reload

lxdui.serviceを起動します。

# systemctl start lxdui

lxdui.serviceの自動起動を有効にします。

# systemctl enable lxdui

ステータスがactive (running)であることを確認します。

# systemctl status lxdui
● lxdui.service - LXDUI
     Loaded: loaded (/lib/systemd/system/lxdui.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-01-25 20:02:30 JST; 2min 57s ago
   Main PID: 3630 (run.py)
      Tasks: 1 (limit: 9338)
     Memory: 36.4M
     CGroup: /system.slice/lxdui.service
             └─3630 /usr/bin/python3 /opt/lxdui/run.py start

 1月 25 20:02:30 optiplex systemd[1]: Started LXDUI.
 1月 25 20:02:31 optiplex run.py[3630]: LXDUI ver. 2.1.2 -- (c)AdaptiveScale, Inc.
 1月 25 20:02:31 optiplex run.py[3630]: http://www.adaptivescale.com

LXDUIのスクリーンショット

参考のためにLXDUIの各項目のスクリーンショットを載せておきます。コンテナイメージのダウンロードやコンテナ作成だけではなく、コンテナへのターミナル接続も可能で非常に重宝します。

ログイン画面
コンテナ一覧
コンテナの作成
コンテナの詳細
ターミナル接続
イメージ一覧
イメージのダウンロード
プロファイル一覧
ネットワーク一覧
ストレージプール一覧

公開日時:2020年09月04日 22:20:20
最終更新日時:2022年03月13日 08:34:53

なお、VPS選びで迷ったらこちらの記事で主要VPSのメモリ容量ごとの月額、年額料金を比較していますので、是非参考にしてみてください。

コンテナ仮想化に戻る

「コンテナ仮想化」に関する他の手順

このページのトップに戻る