Wednesday, 28 April 2010

Ubuntu 9.10 внутри контейнера OpenVZ, как заставить работать сеть?

Есть хак, крутой и красивый :) Называется - /etc/vz/dists, матчасть по нему тут: http://blog.shaggy-cat.ru/2010/03/openvz_25.html или http://wiki.openvz.org/Configuring_container_creation

Суть в том, что шаблон http://download.openvz.org/template/precreated/ubuntu-9.10-x86_64.tar.gz от отсюда: http://download.openvz.org/template/precreated/ не работает. Точнее он работает, но внутри контейнера не поднимается сеть и все тут.

А при попытке ручного запуска/перезапуска сети получаем следующий облом:

/etc/init.d/networking restart
* Reconfiguring network interfaces...
/etc/network/interfaces:15: interface lo declared allow-auto twice
ifdown: couldn't read interfaces file "/etc/network/interfaces"
/etc/network/interfaces:15: interface lo declared allow-auto twice
ifup: couldn't read interfaces file "/etc/network/interfaces"
...fail!


Виной тому некорретный файл /etc/networking/interfaces.template. Его можно просто удалить и все заработает, но тогда придется юзать нестандартные шаблоны, что не тру. Поэтому мы отучим OpenVZ "видеть" этот файл тимплейта.

Копируем болванку от Ubuntu:

cp /etc/vz/dists/ubuntu.conf /etc/vz/dists/ubuntu-9.10.conf


Теперь зададим свой скрипт для прописывания IP машине:

vi /etc/vz/dists/ubuntu-9.10.conf

Далее вносим патч:
-ADD_IP=debian-add_ip.sh
+ADD_IP=ubuntu-910-add_ip.sh


После этого копируем скрипт прописывания IP машине:
cp /etc/vz/dists/scripts/debian-add_ip.sh /etc/vz/dists/scripts/ubuntu-910-add_ip.sh


Делаем тестовый перезапуск
vzctl --verbose restart 57821
И убеждаемся, что запускается скрипт ubuntu-910-add_ip.sh

Далее корректируем скрипт:
vi /etc/vz/dists/scripts/ubuntu-910-add_ip.sh


Комментируем строки, отвечающие за чтение шаблона:
#if [ -f ${CFGFILE}.template ]; then
# cat ${CFGFILE}.template >> ${CFGFILE}
#fi


Вуаля, теперь перезапускаем VE и наслаждаемся рабочей сеткой :)

No comments:

Post a Comment

Note: only a member of this blog may post a comment.