lxc-create がハングし、最終的に失敗する

lxc-create がハングし、最終的に失敗する

Linuxコンテナにjujuチャームを配置しようとしましたが、コンテナが起動しませんでした。問題をデバッグするために、この問題が発生したノードにsshし、次のように手動でLXCコンテナを作成してみました。

ubuntu@slot13:~$ sudo lxc-create -t ubuntu -n pavan
Checking cache download in /var/cache/lxc/trusty/rootfs-amd64 ...
Installing packages in template: ssh,vim,language-pack-en
Downloading ubuntu trusty minimal ...
I: Retrieving Release

まったく進展がありません。長い間ここに留まっています。本当に長い時間が経った後、こう言います。

ERROR: Unable to fetch GPG key from keyserver

そしてハングアップし続けます。最終的に20〜30分後に、

E: Failed getting release file http://archive.ubuntu.com/ubuntu/dists/trusty/Release

lxc-createコマンドに対応するログ ファイルはどこにありますか?この問題をデバッグするにはどうすればよいでしょうか?

編集: デバッグログを確認する方法がわかったので、以下のコマンドを数回実行しました。

sudo lxc-create -t ubuntu -n pavan --logfile=test.txt --logpriority=DEBUG

test.txtこれだけが含まれています

lxc-create 1414897265.204 ERROR    lxc_container - Error: pavan creation was not completed
lxc-create 1414897407.757 ERROR    lxc_container - Error: pavan creation was not completed
lxc-create 1414897407.759 WARN     lxc_log - lxc_log_init called with log already initialized

しかし、それでもハングしてしまい、デバッグ ログはあまり役に立ちません。

答え1

--no-validategpg 検証をスキップするにはフラグを追加してください:

lxc-create -t ubuntu -n pavan -- --no-validate

参照するhttps://github.com/lxc/lxc/blob/master/templates/lxc-download.in#L240

答え2

プロキシを使用していますか?はいの場合は、bashでプロキシを設定できます。次の問題があります。

export http_proxy="http://<proxy_host>:<port>"

答え3

実際、juju はイメージを取得するために「ubuntu-cloud」テンプレートを使用します。trusty を実行しているシステムでテンプレートを作成するために実行されるコマンドは次のとおりです。

lxc-create -n juju-trusty-lxc-template \
  -t ubuntu-cloud \
  -f /var/lib/juju/containers/juju-trusty-lxc-template/lxc.conf \
  -- --debug \
  --userdata /var/lib/juju/containers/juju-trusty-lxc-template/cloud-init \
  --hostid juju-trusty-lxc-template
  -r trusty

そのようなものを実行して、どのようなエラーが発生するか確認することをお勧めします。

答え4

問題

インターネット アクセスを制限するファイアウォールの背後にいる場合は、次のエラーが発生する可能性があります。

$ lxc-create -t download -n my-container
Setting up the GPG keyring
ERROR: Unable to fetch GPG key from keyserver.
lxc-create: lxccontainer.c: create_run_template: 1297 container
  creation template for my-container failed
lxc-create: tools/lxc_create.c: main: 318 Error creating
  container my-container

修理

ポート 80 経由でキー サーバーに接続します。

$ lxc-create -t download -n my-container \
  -- --keyserver hkp://p80.pool.sks-keyservers.net:80

詳細

キー サーバーは、ソース コードhkp://p80.pool.sks-keyservers.net:80からのものですlxc

apt source lxc
grep -ri hkp: .

参考文献

関連情報