«LXC debian 8» и «Принтеры Canon»: разница между страницами

Материал из support.qbpro.ru
(Различия между страницами)
imported>Supportadmin
 
imported>Vix
Нет описания правки
 
Строка 1: Строка 1:
[https://www.google.ru Источник]
* [http://www.sakryukin.ru/?module=articles&c=articles&b=6&a=2 принтеры Canon и им подобные]
=== Настройка GRUB для LXC===
* [http://ubuntu-favorite-os.blogspot.ru/2010/06/canon-lbp-1120.html Ubuntu - установеа принтера Canon LBP 1120]
В /etc/default/grub изменить параметр
* [http://www.welinux.ru/post/4170/ установка принтера Canon]
<nowiki>
* [http://linuxhardware.ru/index.php?title=Canon_LBP автоматизированная установка через скрипт разных версий]
GRUB_CMDLINE_LINUX="cgroup_enable=memory"
<hr>
</nowiki>
* [http://www.canon-europe.com/Support/Consumer_Products/products/printers/Laser/i-SENSYS_LBP2900.aspx?DLtcmuri=tcm:13-1060371&page=1&type=download Дрова] 
Хотя официально [https://wiki.debian.org/LXC] сказано, что делать ничего не надо.
* [http://forum.ubuntu.ru/index.php?topic=189049.0 мануал]
* [http://debianforum.ru/index.php?topic=2707.0 обсуждения...]
* [http://debianforum.ru/index.php?topic=1461.30 обсуждение ...]
* -- для исправления ошибок с установкой пакетов # apt-get -f install
* [https://debianforum.ru/index.php?topic=2707.0 firum]
* [https://unixforum.org/index.php?showtopic=138298 решения]
* [http://help.ubuntu.ru/wiki/canon_capt Ubuntu - Canon]


=== Настройка ядра для LXC ===
<hr>
В /etc/sysctl.conf [https://habrahabr.ru/post/120717/]
* [http://blog.a7in.com/%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D1%8C-%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B9-%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80-64/ Печать на старый сетевой принтер в Windows 7 x64, не имея 64-битных драйверов]
<nowiki>
net.ipv4.ip_forward=1
net.ipv4.conf.all.forwarding=1
net.ipv4.conf.all.proxy_arp=1
</nowiki>


grub_updare, reboot
* [https://help.ubuntu.com/community/foo2capt свободная реализация драйвера foo2capt]
 
* [https://help.ubuntu.com/community/CanonCaptDrv190 последние версии драйвера]
=== Настройка сети для LXC ===
* [https://help.ubuntu.ru/wiki/canon_capt Установка драйвера Canon CAPT для принтеров Canon LBP]
На хост-машине:
* [https://habr.com/sandbox/27625/ Заводим Canon LBP2900 под linux, без ущерба для других принтеров и проиводительности]
 
* [https://itshaman.ru/articles/98 Как установить принтер Canon LBP-2900 в Linux Ubuntu?]
<nowiki>
apt-get install bridge-utils
</nowiki>
 
Если планируется использовать виртуальные сети, дополнительно:
 
<nowiki>
apt-get install vlan
</nowiki>
 
В /etc/network/interfaces:
<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>
 
=== Настройка репозитариев и обустройство контейнера ===
Правим /var/lib/lxc/nodejs/rootfs/etc/apt/sources.list
<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>
apt-get update
apt-get install aptitude apt-utils mc ssh iputils-ping iptables cron wget
</nowiki>
 
=== Если нет сети в LXC контейнере ===
Если интернета в контейнере не появилось, ping отсутствует, то как вариант можно создать локальный репозитарий, подмонтировать его в контейнер, в sources.list добавить ссылку на него и поставить bind9 и resolvconf.
* качаем один или все три установочные диска с  [https://www.debian.org/CD/http-ftp/ сайта]
* создаем папку на хост-машине /home/debs
* из каталога pool каждого диска копируем в /home/debs каталоги main и contrib
* создаем индекс репозитория
<nowiki>
cd /home/debs
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
</nowiki>
* В sources.list контейнера добавить первой строкой (остальные #)
<nowiki>
deb file:/home/debs /
</nowiki>
* В конфигурацию контейнера добавить
<nowiki>
lxc.mount.entry =  /home/debs  /var/lib/lxc/nodejs/rootfs/home/debs none bind 0 0
</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 все должно заработать
 
 
=== Настройка vlan для LXC ===
Пример для двух vlan. На хост-машине /etc/network/interfaces:
<nowiki>
auto lo
iface lo inet loopback
 
auto eth0.1
iface eth0.1 inet manual
        vlan_raw_device eth0
 
auto eth0.2
iface eth0.2 inet manual
        vlan_raw_device eth0
 
######### Интерфейсы для хост-машины
auto br0_1
iface br0_1 inet static
      address 192.168.10.90
      netmask 255.255.255.0
      broadcast 192.168.102.255
      bridge_ports eth0.1
      bridge_fd 0
      bridge_maxwait 0
 
auto br0_2
iface br0_2 inet static
      address 9.23.3.169
      netmask 255.255.255.128
      network 9.23.3.128
      broadcast 9.23.3.255
      gateway 9.23.3.129
      dns-nameservers 9.23.3.13 9.23.4.2
      bridge_ports eth0.2
      bridge_fd 0
      bridge_maxwait 0
</nowiki>
 
Настройки контейнера:
<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_1
# имя устройства внутри контейнера
lxc.network.name = eth0
lxc.network.veth.pair= br0_1-1
lxc.network.hwaddr = 00:11:22:33:88:99
 
# eth1
 
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0_2
lxc.network.veth.pair= br0_2-1
# имя устройства внутри контейнера
lxc.network.name = eth1
lxc.network.hwaddr = 00:11:62:77:88:00
</nowiki>
 
В контейнере /etc/network/interfaces:
 
<nowiki>
auto lo
iface lo inet loopback
 
auto eth0
iface eth0 inet static
      address 192.168.102.91
      netmask 255.255.255.0
      broadcast 192.168.102.255
 
auto eth1
iface eth1 inet static
      address 9.23.3.170
      netmask 255.255.255.128
      network 9.23.3.128
      broadcast 9.23.3.255
      gateway 9.23.3.129
      dns-nameservers 9.23.3.13 9.23.4.2
</nowiki>
 
 
Для каждого следующего контейнера меняется в конфигурации имя устройства  например так:
<nowiki>
lxc.network.veth.pair= br0_1-1
lxc.network.veth.pair= br0_2-1
</nowiki>
следующий контейнер
<nowiki>
lxc.network.veth.pair= br0_1-2
lxc.network.veth.pair= br0_2-2
</nowiki>
Главное, чтобы не совпадали имена интерфейсов, создаваемых на хост-машине. Количество мостов соответствует количеству vlan. По одному на каждый vlan.

Текущая версия от 17:08, 8 ноября 2018