imported>Supportadmin |
imported>Vix |
Строка 1: |
Строка 1: |
| [https://www.google.ru Источник]
| | '''ПОЛЕЗНОЕ:''' |
| === Настройка GRUB для LXC===
| | <hr> |
| В /etc/default/grub изменить параметр
| | * [https://golangs.org/ Уроки для изучения Golang] |
| <nowiki>
| | * [https://metanit.com/go/tutorial/2.11.php Функции и их параметры] |
| GRUB_CMDLINE_LINUX="cgroup_enable=memory"
| | * [https://www.ibm.com/developerworks/ru/library/l-go_01/ Язык программирования go] |
| </nowiki>
| | * [https://tproger.ru/translations/golang-basics/ Golang: основы для начинающих] |
| Хотя официально [https://wiki.debian.org/LXC] сказано, что делать ничего не надо.
| | * [http://golang-book.ru/ Введение в программирование на Go] |
| | | * [https://medium.com/golang-notes/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-visual-studio-code-%D0%B4%D0%BB%D1%8F-go-647ea94aa795 Настройка Visual Studio Code для Go] |
| === Настройка ядра для LXC ===
| | * [https://serverspace.by/support/help/ustanovka-go-na-windows-server/ Установка GoLang на Windows Server] |
| В /etc/sysctl.conf [https://habrahabr.ru/post/120717/]
| | * [https://otus.ru/nest/post/1015/ GOPATH и GOROOT больше не нужны?] |
| <nowiki>
| | * [https://nuancesprog.ru/p/5966/ Идеальная настройка вашего Golang проекта] |
| net.ipv4.ip_forward=1
| | * [https://habr.com/ru/post/249449/ Кросс-компиляция в Go] |
| net.ipv4.conf.all.forwarding=1
| | * [https://gobyexample.com/ Go by Example] |
| net.ipv4.conf.all.proxy_arp=1
| | * [https://golang.org/pkg/ Golang Packages] |
| </nowiki>
| |
| | |
| grub_updare, reboot
| |
| | |
| === Настройка сетевого интерфейса для LXC ===
| |
| В /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-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 все должно заработать
| |