Контейнеры lxc не могут автоматически загрузиться в верном 14.04 с использованием 'lxc.start.auto = 1'

В надежных контейнерах 14.04 автозагрузка не удалась, несмотря на то, что все настройки установлены в соответствии с требованиями 14.04. Они показывают все как STOPPED

Я правильно настроил 2 контейнера LXC:

calypso  
encelado

Они работают отлично, если я запускаю
sudo lxc-autostart

затем
sudo lxc-ls --fancy приводит к:

ubuntu@saturn:/etc/init$ sudo lxc-ls --fancy 
NAME      STATE    IPV4           IPV6  AUTOSTART 

calypso   RUNNING  192.168.1.161  -     YES        
encelado  RUNNING  192.168.1.162  -     YES 

Проблема заключается в попытке запустить их при загрузке.

У меня по адресу: /var/lib/lxc/calypso/config:

# Template used to create this container: /usr/share/lxc/templates/lxc-download 
# Parameters passed to the template:
# For additional config options, please look at lxc.conf(5)

# Distribution configuration
lxc.include = /usr/share/lxc/config/ubuntu.common.conf
lxc.arch = x86_64

# Container specific configuration
lxc.rootfs = /var/lib/lxc/calypso/rootfs 
lxc.utsname = calypso

# Network configuration
lxc.network.type = veth
lxc.network.flags = up
#lxc.network.link = lxcbr0
lxc.network.link = br0
lxc.network.hwaddr = 00:16:3e:64:0b:6e  

# Assign static IP Address
lxc.network.ipv4 = 192.168.1.161/24
lxc.network.ipv4.gateway = 192.168.1.1 

# Autostart
lxc.start.auto = 1
lxc.start.delay = 5
lxc.start.order = 100

и у меня есть LXC_AUTO="false", как требуется внутри /etc/default/lxc:

LXC_AUTO="false"
USE_LXC_BRIDGE="false"  # overridden in lxc-net
[ -f /etc/default/lxc-net ] && . /etc/default/lxc-net
LXC_SHUTDOWN_TIMEOUT=120

Любая идея о том, почему контейнеры не ' начать при загрузке? При перезагрузке они всегда находятся в ОСТАНОВЛЕННОМ состоянии:

ubuntu@saturn:~$ sudo lxc-ls --fancy
NAME      STATE    IPV4  IPV6  AUTOSTART 
calypso   STOPPED  -     -     YES       
encelado  STOPPED  -     -     YES   

, а затем снова их можно запустить вручную, используя sudo lxc-autostart

5
задан 06.05.2016, 22:25

3 ответа

В дополнение к тому, что отправил Manwe (который я нашел, чтобы быть корректным), я должен был сделать некоторую дополнительную работу, потому что я использую-P опцию на всех своих командах lxc для использования пользовательского пути lxc, это отличается от /var/lib/lxc. (Ретроспективно, если бы я сделал это снова, я, вероятно, придерживался бы местоположения по умолчанию, но это ни здесь, ни там.)

Редактирование /etc/default/lxc и добавляют в конце:

OPTIONS="-P <lxcpath>"

Редактирование /etc/init/lxc-instance.conf и добавляют

[ -f /etc/default/lxc ] && . /etc/default/lxc

, чтобы запуститься pre-start и script и добавить $OPTIONS после lxc-wait и lxc-start.

Как так:

pre-start script
        [ -f /etc/default/lxc ] && . /etc/default/lxc
        lxc-wait $OPTIONS -s RUNNING -n $NAME -t 0 && { stop; exit 0; } || true
end script

script
        [ -f /etc/default/lxc ] && . /etc/default/lxc
        exec lxc-start $OPTIONS -n $NAME
end script

Тогда это может быть протестировано с:

sudo service lxc restart
sudo lxc-ls -P <lxcpath> --fancy
4
ответ дан 07.10.2019, 23:46

Проверьте, что LXC_AUTO верен в /etc/default/lxc

LXC_AUTO="true"

, и добавьте параметр группы к своей конфигурации

lxc.group = onboot

(или добавьте BOOTGROUPS= с Вашей установкой к /etc/default/lxc)

я думаю, что в настоящее время руководство Ubuntus в Ubuntu lxc неправильно указывает, что LXC_AUTO должен быть false. Также проигнорируйте /etc/default/lxc требование символьной ссылки.

4
ответ дан 07.10.2019, 23:46

Вы говорите:

у меня есть LXC_AUTO = "ложь" как требуется в/etc/default/lxc

, Который конкретно говорит новомодному заданию НЕ запускать любой контейнер. Просто не устанавливайте его или устанавливайте его на истинный, и Вы заметите контейнеры, запускающиеся во время начальной загрузки.

7
ответ дан 07.10.2019, 23:46

Теги

Похожие вопросы