LXDをネットワークに公開するには#

デフォルトでは、LXDはUnixソケットを介してローカルユーザーからのみ使用でき、ネットワーク経由でアクセスすることはできません。

LXDをネットワークに公開するには、ローカルUnixソケット以外のアドレスをリッスンするように設定する必要があります。これを行うには、core.https_address サーバー設定オプションを設定します。

例えば、LXDサーバーをポート8443でアクセスできるようにするには、以下のコマンドを入力します。

lxc config set core.https_address :8443

特定のIPアドレスからのアクセスを許可するには、ip addrを使用して利用可能なアドレスを見つけ、それを設定します。例えば:

user@host:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever preferred_lft forever2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000    link/ether 00:16:3e:e3:f3:3f brd ff:ff:ff:ff:ff:ff    inet 10.68.216.12/24 metric 100 brd 10.68.216.255 scope global dynamic enp5s0       valid_lft 3028sec preferred_lft 3028sec    inet6 fd42:e819:7a51:5a7b:216:3eff:fee3:f33f/64 scope global mngtmpaddr noprefixroute       valid_lft forever preferred_lft forever    inet6 fe80::216:3eff:fee3:f33f/64 scope link       valid_lft forever preferred_lft forever3: lxdbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000    link/ether 00:16:3e:8d:f3:72 brd ff:ff:ff:ff:ff:ff    inet 10.64.82.1/24 scope global lxdbr0       valid_lft forever preferred_lft forever    inet6 fd42:f4ab:4399:e6eb::1/64 scope global       valid_lft forever preferred_lft forever
user@host:~$ lxc config set core.https_address 10.68.216.12

全てのリモートクライアントはLXDに接続して公開利用とマークされた任意のイメージにアクセスできます。

LXDサーバーでの認証#

リモートAPIにアクセスできるようにするには、クライアントはLXDサーバーに認証しなければなりません。 いくつかの認証方法があります。詳細はリモートAPI認証を参照してください。

お勧めの方法はクライアントのTLS証明書をトラストトークンを使ってサーバーのトラストストアに追加することです。 トラストトークンを使ってクライアントを認証するには、以下の手順を実行します。

  1. サーバーで、以下のコマンドを入力します。

    lxc config trust add
    

    追加したいクライアントの名前を入力します。 クライアント証明書を追加するのに使用できるトークンをコマンドが生成し表示します。

  2. クライアントで、以下のコマンドでサーバーを追加します。

    lxc remote add <remote_name> <token>
    

注釈

LXD サーバーが NAT の後ろ側にいる場合、クライアント用のリモートを追加する際には外部のパブリックアドレスを指定する必要があります。

lxc remote add <name> <IP_address>

admin パスワードのプロンプトが表示されたら、生成されたトークンを入力してください。

サーバーでトークンを生成する際、 LXD はクライアントがサーバーにアクセスするために使える IP アドレスのリストを含めます。 しかし、サーバーが NAT の後ろ側にいる場合、これらのアドレスはクライアントが接続できないローカルアドレスの場合があります。 その場合、手動で外部アドレスを指定する必要があります。

詳細や他の認証方法についてはリモートAPI認証を参照してください。