web-dev-qa-db-ja.com

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

コンテナーがブート時に開始しない理由についてのアイデアはありますか?再起動時には、常にSTOPPED状態になります。

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

その後、Sudo lxc-autostartを使用して手動で開始できます

5
user273046

あなたは言う:

/ etc/default/lxc内で必要に応じてLXC_AUTO = "false"があります

具体的には、コンテナを開始しないようにupstartジョブに指示します。設定したりtrueに設定したりしないでください。起動時にコンテナが起動します。

7
stgraber

Manweが投稿したもの(正しいとわかったもの)に加えて、すべてのlxcコマンドで-Pオプションを使用して/var/lib/lxcとは異なるカスタムlxcパスを使用しているため、追加の作業が必要でした。 (振り返ってみると、これを再度行った場合、おそらくデフォルトの場所に固執するでしょうが、それはここにもそこにもありません。)

/etc/default/lxcを編集して、最後に追加します。

OPTIONS="-P <lxcpath>"

/etc/init/lxc-instance.confを編集して追加

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

pre-startscriptを開始し、$OPTIONSlxc-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
acker9

/etc/default/lxcでLXC_AUTOが真であることを確認します

LXC_AUTO="true"

グループパラメータを設定に追加します

lxc.group = onboot

(またはセットアップでBOOTGROUPS=/etc/default/lxcに追加します)

buntu lxc の現在のUbuntuガイドでは、LXC_AUTOfalseにすべきだと誤って述べていると思います。 /etc/default/lxc symlink要件も無視します。

4
Manwe