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のネットワーク設定(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