«Установка и настройка OpenVPN на Debian 8» и «LXC debian 8»: разница между страницами
imported>Supportadmin |
imported>Supportadmin |
||
Строка 1: | Строка 1: | ||
[https://www.google.ru Источник] | |||
=== Настройка GRUB для LXC=== | |||
В /etc/default/grub изменить параметр | |||
=== | |||
<nowiki> | <nowiki> | ||
GRUB_CMDLINE_LINUX="cgroup_enable=memory" | |||
</nowiki> | |||
Хотя официально [https://wiki.debian.org/LXC] сказано, что делать ничего не надо. | |||
=== Настройка ядра для LXC === | |||
В /etc/sysctl.conf [https://habrahabr.ru/post/120717/] | |||
=== | |||
В | |||
<nowiki> | <nowiki> | ||
net.ipv4.ip_forward=1 | |||
net.ipv4.conf.all.forwarding=1 | |||
net.ipv4.conf.all.proxy_arp=1 | |||
</nowiki> | </nowiki> | ||
grub_updare, reboot | |||
=== Настройка сетевого интерфейса для LXC === | |||
В /etc/network/interfaces | |||
<nowiki> | <nowiki> | ||
# | #allow-hotplug eth0 | ||
#auto eth0 | |||
#iface eth0 inet static | |||
auto br0 | |||
iface br0 inet static | |||
address 192.168.150.30 | |||
netmask 255.255.255.0 | |||
network 192.168.150.0 | |||
broadcast 192.168.150.255 | |||
gateway 192.168.150.1 | |||
dns-nameservers 192.168.150.1 | |||
bridge_ports eth0 | |||
bridge_fd 0 | |||
bridge_maxwait 0</nowiki> | |||
=== Создание контейнера === | |||
Создаем контейнер [https://wiki.debian.org/LXC#RootFS_creation] | |||
<nowiki>lxc-create -t debian -n nodejs</nowiki> | |||
Сразу меняем пароль root на свой. | |||
<nowiki> | |||
старт в режиме консоли (не очень удобно, точнее вообще неудобно) | |||
lxc-start -n nodejs | |||
или старт в режиме демона и присоединяется к консоли контейнера, для выхода из консоли exit | |||
lxc-start -dn nodejs | |||
lxc-attach -n nodejs | |||
</nowiki> | |||
===Настройка параметров контейнера=== | |||
Конфигурируем контейнер /var/lib/lxc/nodejs/config. Обязательно обратить внимание на lxc.network.veth.pair [http://xgu.ru/wiki/LXC] - это имя интерфейса в хост машине. [https://wiki.debian.org/LXC Здесь] про это не сказано, и работать с сетью сможет только один контейнер. | |||
<nowiki> | |||
lxc.rootfs = /var/lib/lxc/nodejs/rootfs | |||
lxc.include = /usr/share/lxc/config/debian.common.conf | |||
lxc.mount = /var/lib/lxc/nodejs/fstab | |||
lxc.utsname = nodejs | |||
lxc.arch = amd64 | |||
lxc.autodev = 1 | |||
lxc.kmsg = 0 | |||
# | #Количество /dev/tty | ||
lxc.tty = 6 | |||
# Autostart | |||
lxc.start.auto = 1 | |||
lxc.start.delay = 5 | |||
lxc.start.order = 100 | |||
# eth0 | |||
lxc.network.type = veth | |||
lxc.network.flags = up | |||
lxc.network.link = br0 | |||
lxc.network.veth.pair= br0-1 | |||
lxc.network.name = eth0 | |||
lxc.network.hwaddr = 00:11:12:00:88:99 | |||
# | #mount папка на хост-машине папка в контейнере, относительно хост-машины | ||
#lxc.mount.entry = /home/debs /var/lib/lxc/nodejs/rootfs/home/debs none bind 0 0 | |||
</nowiki> | |||
=== Настройка параметров сети внутри LXC контейнера=== | |||
Настраиваем сеть не через конфигурацию, а в контейнере (можно и так, и так) /var/lib/lxc/nodejs/rootfs/etc/network/interfaces | |||
<nowiki> | |||
# The loopback network interface | |||
auto lo | |||
iface lo inet loopback | |||
# | # The primary network interfac | ||
allow-hotplug eth0 | |||
auto eth0 | |||
iface eth0 inet static | |||
address 192.168.150.33 | |||
netmask 255.255.255.0 | |||
network 192.168.150.0 | |||
broadcast 192.168.150.255 | |||
gateway 192.168.150.1 | |||
dns-nameservers 192.168.150.1 | |||
</nowiki> | </nowiki> | ||
====/etc/ | === Настройка репозитариев и обустройство контейнера === | ||
Правим /var/lib/lxc/nodejs/rootfs/etc/apt/sources.list | |||
<nowiki> | <nowiki> | ||
#deb file:/home/debs / | |||
deb http://mirror.mephi.ru/debian/ jessie main | |||
deb-src http://mirror.mephi.ru/debian/ jessie main | |||
deb http://security.debian.org/ jessie/updates main contrib | |||
deb-src http://security.debian.org/ jessie/updates main contrib | |||
# | # jessie-updates, previously known as 'volatile' | ||
deb http://mirror.mephi.ru/debian/ jessie-updates main contrib | |||
deb-src http://mirror.mephi.ru/debian/ jessie-updates main contrib | |||
deb http://ftp.ru.debian.org/debian/ jessie main contrib non-free | |||
deb http://http.debian.net/debian jessie-backports main contrib non-free | |||
# | #deb http://www.deb-multimedia.org jessie main non-free | ||
#deb http://www.deb-multimedia.org jessie-backports main | |||
</nowiki> | |||
Изначально контейнер пустой (установлено 136 пакетов). Даже ping отсутствует. | |||
<nowiki> | <nowiki> | ||
apt-get update | |||
apt-get install aptitude apt-utils mc ssh iputils-ping iptables cron wget | |||
</nowiki> | </nowiki> | ||
==== | === Если нет сети в LXC контейнере === | ||
Если интернета в контейнере не появилось, ping отсутствует, то как вариант можно создать локальный репозитарий, подмонтировать его в контейнер, в sources.list добавить ссылку на него и поставить bind9 и resolvconf. | |||
* качаем один или все три установочные диска с [https://www.debian.org/CD/http-ftp/ сайта] | |||
* создаем папку на хост-машине /home/debs | |||
* из каталога pool каждого диска копируем в /home/debs каталоги main и contrib | |||
* создаем индекс репозитория | |||
<nowiki> | <nowiki> | ||
cd /home/debs | |||
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz | |||
</nowiki> | </nowiki> | ||
* В sources.list контейнера добавить первой строкой (остальные #) | |||
<nowiki> | |||
deb file:/home/debs / | |||
<nowiki> | |||
</nowiki> | </nowiki> | ||
* | |||
* Запустить контейнер и в нем поставить пакеты | |||
<nowiki> | <nowiki> | ||
lxc-start -dn nodejs | |||
lxc-attach -n nodejs | |||
apt-get update | |||
apt-get install aptitude apt-utils mc ssh iputils-ping iptables cron wget resolvconf | |||
apt-get install bind9 | |||
exit | |||
lxc-stop -n nodejs | |||
lxc-start -dn nodejs | |||
</nowiki> | |||
После этого, при правильном конфигурировании gateway и dns-nameservers все должно заработать | |||
Версия от 14:23, 7 марта 2016
Настройка GRUB для LXC
В /etc/default/grub изменить параметр
GRUB_CMDLINE_LINUX="cgroup_enable=memory"
Хотя официально [1] сказано, что делать ничего не надо.
Настройка ядра для LXC
В /etc/sysctl.conf [2]
net.ipv4.ip_forward=1 net.ipv4.conf.all.forwarding=1 net.ipv4.conf.all.proxy_arp=1
grub_updare, reboot
Настройка сетевого интерфейса для LXC
В /etc/network/interfaces
#allow-hotplug eth0 #auto eth0 #iface eth0 inet static auto br0 iface br0 inet static address 192.168.150.30 netmask 255.255.255.0 network 192.168.150.0 broadcast 192.168.150.255 gateway 192.168.150.1 dns-nameservers 192.168.150.1 bridge_ports eth0 bridge_fd 0 bridge_maxwait 0
Создание контейнера
Создаем контейнер [3]
lxc-create -t debian -n nodejs
Сразу меняем пароль root на свой.
старт в режиме консоли (не очень удобно, точнее вообще неудобно) lxc-start -n nodejs или старт в режиме демона и присоединяется к консоли контейнера, для выхода из консоли exit lxc-start -dn nodejs lxc-attach -n nodejs
Настройка параметров контейнера
Конфигурируем контейнер /var/lib/lxc/nodejs/config. Обязательно обратить внимание на lxc.network.veth.pair [4] - это имя интерфейса в хост машине. Здесь про это не сказано, и работать с сетью сможет только один контейнер.
lxc.rootfs = /var/lib/lxc/nodejs/rootfs lxc.include = /usr/share/lxc/config/debian.common.conf lxc.mount = /var/lib/lxc/nodejs/fstab lxc.utsname = nodejs lxc.arch = amd64 lxc.autodev = 1 lxc.kmsg = 0 #Количество /dev/tty lxc.tty = 6 # Autostart lxc.start.auto = 1 lxc.start.delay = 5 lxc.start.order = 100 # eth0 lxc.network.type = veth lxc.network.flags = up lxc.network.link = br0 lxc.network.veth.pair= br0-1 lxc.network.name = eth0 lxc.network.hwaddr = 00:11:12:00:88:99 #mount папка на хост-машине папка в контейнере, относительно хост-машины #lxc.mount.entry = /home/debs /var/lib/lxc/nodejs/rootfs/home/debs none bind 0 0
Настройка параметров сети внутри LXC контейнера
Настраиваем сеть не через конфигурацию, а в контейнере (можно и так, и так) /var/lib/lxc/nodejs/rootfs/etc/network/interfaces
# The loopback network interface auto lo iface lo inet loopback # The primary network interfac allow-hotplug eth0 auto eth0 iface eth0 inet static address 192.168.150.33 netmask 255.255.255.0 network 192.168.150.0 broadcast 192.168.150.255 gateway 192.168.150.1 dns-nameservers 192.168.150.1
Настройка репозитариев и обустройство контейнера
Правим /var/lib/lxc/nodejs/rootfs/etc/apt/sources.list
#deb file:/home/debs / deb http://mirror.mephi.ru/debian/ jessie main deb-src http://mirror.mephi.ru/debian/ jessie main deb http://security.debian.org/ jessie/updates main contrib deb-src http://security.debian.org/ jessie/updates main contrib # jessie-updates, previously known as 'volatile' deb http://mirror.mephi.ru/debian/ jessie-updates main contrib deb-src http://mirror.mephi.ru/debian/ jessie-updates main contrib deb http://ftp.ru.debian.org/debian/ jessie main contrib non-free deb http://http.debian.net/debian jessie-backports main contrib non-free #deb http://www.deb-multimedia.org jessie main non-free #deb http://www.deb-multimedia.org jessie-backports main
Изначально контейнер пустой (установлено 136 пакетов). Даже ping отсутствует.
apt-get update apt-get install aptitude apt-utils mc ssh iputils-ping iptables cron wget
Если нет сети в LXC контейнере
Если интернета в контейнере не появилось, ping отсутствует, то как вариант можно создать локальный репозитарий, подмонтировать его в контейнер, в sources.list добавить ссылку на него и поставить bind9 и resolvconf.
- качаем один или все три установочные диска с сайта
- создаем папку на хост-машине /home/debs
- из каталога pool каждого диска копируем в /home/debs каталоги main и contrib
- создаем индекс репозитория
cd /home/debs dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
- В sources.list контейнера добавить первой строкой (остальные #)
deb file:/home/debs /
- Запустить контейнер и в нем поставить пакеты
lxc-start -dn nodejs lxc-attach -n nodejs apt-get update apt-get install aptitude apt-utils mc ssh iputils-ping iptables cron wget resolvconf apt-get install bind9 exit lxc-stop -n nodejs lxc-start -dn nodejs
После этого, при правильном конфигурировании gateway и dns-nameservers все должно заработать