lxc-hang hang dan akhirnya gagal

4

Saya mencoba untuk menempatkan beberapa juju charms di wadah linux dan gagal memulai wadah. Untuk debug masalah saya sshed ke simpul di mana ini terjadi dan mencoba membuat wadah LXC secara manual suka

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

Itu tidak membuat kemajuan sama sekali. Terjebak di sini untuk waktu yang lama. Setelah waktu yang sangat lama dikatakan,

ERROR: Unable to fetch GPG key from keyserver

dan terus menggantung. Akhirnya setelah 20-30 menit, ia menyerah

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

Di mana file log sesuai dengan lxc-createperintah? Bagaimana saya bisa men-debug masalah ini?

EDIT : Saya menemukan cara untuk melihat log debug dan karenanya menjalankan perintah di bawah ini beberapa kali

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

test.txt hanya mengandung ini

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

Tapi tetap saja hang dan log debug tidak menawarkan banyak bantuan.

Pavan Manjunath
sumber

Jawaban:

3

Apakah Anda di belakang proxy? jika ya, maka Anda dapat mengatur proxy Anda di bash. Masalah berikut,

export http_proxy="http://<proxy_host>:<port>"
Pradeeper
sumber
Saya pikir Anda benar tentang proxy. Saya menambahkan ini di proxy host dan bekerja di iptables -t nat -IPOSTROUTING -s 10.10.0.0/16 -j MASQUERADEmana 10.10.10.10 adalah IP host
Pavan Manjunath
Halo, Tolong bisakah Anda menjelaskan lebih banyak masalah dan soluion, karena saya memiliki kesalahan yang sama?
peneliti
root @ localhost: / home # iptables -t nat -IPOSTROUTING -s 10.0.3.1/16 -j MASQUERADE root @ localhost: / home # sudo lxc-buat -t ubuntu -n u1 - -r trusty -a amd64 Memeriksa cache unduh di / var / cache / lxc / trusty / rootfs-amd64 ... Menginstal paket dalam template: ssh, vim, paket bahasa-en Mengunduh ubuntu terpercaya minimal ... I: Retrieving Release ........ ........................ diblokir
peneliti
@Pepereper: Tolong, saya ingin menguji solusi Anda. export http_proxy = "http: // <proxy_host>: <port>" tetapi nilai apa yang bisa saya pilih untuk "port" dan "proxy_host" adalah IP @?
Peneliti
Anda harus mengeluarkan perintah ini di terminal. Jika Anda tidak menggunakan port spesifik pada proxy Anda dan menggunakan port 80 maka abaikan bagian port di atas. Jika di atas memperbaiki masalah Anda, maka Anda dapat menambahkan baris itu ke file .bashrc Anda atau / etc / profile
Pradeeper
6

Harap tambahkan --no-validatetanda untuk melewati validasi gpg:

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

Referensikan https://github.com/lxc/lxc/blob/master/templates/lxc-download.in#L240

Mukul
sumber
Perhatikan bahwa penting untuk -- --no-validatetidak menggunakan --no-validate: yang terakhir tidak valid. Saya mengedit jawaban dengan contoh yang benar.
smonff
2

Sebenarnya juju menggunakan templat 'ubuntu-cloud' untuk mengambil gambar, perintah yang dijalankan untuk membuat templat di sistem saya yang menjalankan trusty adalah:

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

Saya sarankan Anda untuk menjalankan sesuatu seperti itu dan melihat kesalahan apa yang memberi Anda.

Felipe Reyes
sumber
2

Terima kasih Felipe untuk solusinya - untuk perbaikan lengkap, diperlukan juga melakukan:

mkdir /var/lib/lxc/juju-trusty-lxc-template/rootfs/var/log/juju

Detail:

  1. jalankan lxc-create sesuai item pembaruanList Felipe di atas
  2. menyebarkan layanan apa pun secara konsisten gagal, status juju menunjukkan:

    agent-state-info: 'container failed to start and was destroyed: jjo-local-machine-1'
    
  3. ditemukan di /var/lib/juju/containers/jjo-local-machine-5/container.log:

    lxc-start 1427066682.951 ERROR    lxc_conf - conf.c:mount_entry:1711 - No such file or directory - failed to mount '/var/log/juju-jjo-local' on '/usr/lib/x86_64-linux-gnu/lxc/var/log/juju'
    
  4. Membuat direktori memperbaikinya, menyebarkan lebih lanjut ok:

     mkdir /var/lib/lxc/juju-trusty-lxc-template/rootfs/var/log/juju
    
jjo
sumber
2

Masalah

Jika Anda berada di belakang firewall yang membatasi akses internet, Anda bisa mendapatkan kesalahan ini:

$ 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

Memperbaiki

Hubungkan ke server kunci melalui port 80:

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

Detail

Server kunci hkp://p80.pool.sks-keyservers.net:80,, adalah dari lxckode sumber:

apt source lxc
grep -ri hkp: .

Referensi

Håkon A. Hjortland
sumber
1

Saya memiliki masalah yang sama. Kami memiliki proxyserver dengan implementasi http / 1.0 yang salah, sehingga membuat masalah dengan gpg keyserver fetch. Sebagai solusinya, kunci dapat ditambahkan secara manual dengan melakukan hal-hal berikut:

Dapatkan ke http://keyserver.ubuntu.com dan cari kunci berikut: 0xBAEFF88C22F6E216 (ditemukan di / usr / share / lxc / templates / lxc-unduh pencarian untuk DOWNLOAD_KEYID). Unduh dan simpan ke file bernama keyfile

Sekarang file yang disimpan dapat ditambahkan ke keyring sistem misalnya dengan menggunakan

sudo apt-key add keyfile

Ada lebih banyak cara untuk menambahkannya, tetapi menggunakan ubuntu ini adalah cara yang berfungsi. Mungkin Anda juga bisa menggunakan gpg secara langsung. Setelah menambahkan tidak ada lagi kebutuhan untuk lxc untuk menghubungi server kunci dan masalah telah diperbaiki untuk saya.

Sven
sumber
0

Berdasarkan jawaban di sini , saya menemukan bahwa menonaktifkan IPV6 harus berfungsi. Dan itu berhasil untuk saya.

Ini jawaban stack overflow menunjukkan bagaimana melakukannya.

Jefferson
sumber