«LXC debian 8» и «Golang - библиотека начинающего»: разница между страницами

Материал из support.qbpro.ru
(Различия между страницами)
imported>Supportadmin
 
imported>Vix
(Новая страница: «'''ПОЛЕЗНОЕ:''' <hr> * [https://golangs.org/ Уроки для изучения Golang] * [https://metanit.com/go/tutorial/2.11.php Функции и их...»)
 
Строка 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 все должно заработать

Версия от 09:13, 18 августа 2020