TenForward

技術ブログ。はてなダイアリーから移転しました

LXD でリモートの LXD ホストのコンテナを操作してみる

LXD 0.1 がリリースされたのでLXD を試してみた続きです。

LXD の特徴は複数の LXD ホストをリモートから管理できることです。というわけでリモートの LXD ホストの操作を試してみました。とりあえず動くのを確かめただけです。

  • テスト用の LXD ホストは Ubuntu 14.04.1 LTS です。README通りに設定してあります
  • lxc コマンドを実行するホストは前回のエントリ]で使った Plamo 5.3 ホストです

LXD サーバ

lxd をオプションなしで起動すると、Unix ドメインソケットのみのローカルからの接続のみを受け付けるモードで起動します。リモートから受け付ける場合は "--tcp" オプションを使います。

$ cd ~/go/bin
$ ./lxd --tcp=10.200.200.200:8443 & (10.200.200.200のアドレスのホストの8443番ポートで待ち受け)

リモートから受け付ける際のパスワードを設定します。

$ ./lxc config set pasword hogehoge (パスワードをhogehogeに設定)

クライアント側

クライアントからリモートの LXD ホストを操作する場合は、まずリモートホストを登録します。これでリモートホストの証明書がダウンロードされ、クライアントの証明書が LXD ホストにも登録されます (たぶん)。

$ ./lxc remote add lxdhost 10.200.200.200:8443 (10.200.200.200 のホストを "lxdhost" という名前で登録)
Certificate fingerprint: 8c ea 8b a3 a0 64 dd 9f 5e fb 28 dd f6 89 c6 58 7c 8b e0 ab 62 c1 14 f5 50 dc 44 16 06 83 fa 85
ok (y/n)? y
Admin password for lxdhost: ("lxdhost" で設定したパスワードを入れる)
Client certificate stored at server:  lxdhost

これで準備 OK です。あとはローカルとほぼ同じです。コンテナを指定するときに登録したホスト名の後にコロンをつけて、コンテナ名を指定します。

$ ./lxc init ubuntu lxdhost:test01 ("test01" コンテナを "lxdhost" に作成)
$ ./lxc list lxdhost: ("lxdhost" のコンテナ一覧)
test01
$ ./lxc start lxdhost:test01 ("lxdhost"上の"test01"コンテナの起動)
$ ./lxc exec lxdhost:test01 -- /bin/uname -a ("lxdhost"上の"test01"コンテナでunameコマンド実行)
Linux test01 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux