Это технический шаблон заметки о CLI!
Данный опус является частью единого цикла заметок o CLI. Для его написания использовалось множество различных источников (скилы крутых специалистов, статьи с тематических сайтов, техническая документация, комментарии с форумов и социальных сетей и т. д и т. п.). К сожалению, указать все источники точно не представляется возможным! По этому, в конце заметки, будет указана ссылка только на основной источник. Материалы, использованные для написания заметки, изменялись автором под конкретную задачу! Вам, скорее всего, тоже придется поступить аналогичным образом для получения желаемого результата)
Контейнеры LXC (контейнеры Linux) - это функция операционной системы Linux, которую можно использовать для запуска нескольких изолированных систем Linux на одном хосте
Настройка ОС
Подключитесь к вашему хосту по SSH, обновите список шаблонов proxmox и загрузите подходящий шаблон для контейнеров.
#apt-get update
#pveam update
pveam availablepveam download local ubuntu-14.04-standard_14.04-1_amd64.tar.gz
Теперь нам нужно создать контейнер Linux с сетевым интерфейсом, подключенным к мосту Linux. Откройте:
# cat /etc/network/interfaces
Вывод команды:
# the PVE managed interfaces into external files!
auto lo
iface lo inet loopback
iface enp7s0 inet manual
iface enp8s0 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.0.XXX
netmask 255.255.255.0
gateway 192.168.0.X
bridge-ports enp7s0
bridge-stp off
bridge-fd 0
##up
auto vmbr1
iface vmbr1 inet manual
bridge-ports none
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
##vlan
auto vmbr2
iface vmbr2 inet manual
bridge-ports enp8s0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
##enp8s0_vlan
auto vmbr3
iface vmbr3 inet static
address 192.168.1.XXX
netmask 255.255.255.0
bridge-ports none
bridge-stp off
bridge-fd 0
Посмотреть список имеющихся шаблонов контейнеров LXC:
ls /var/lib/vz/template/cache/
Вывод команды:
alpine-3.12-default_20200823_amd64.tar.xz
centos-6-default_20191016_amd64.tar.xz
centos-7-default_20190926_amd64.tar.xz
centos-8-default_20201210_amd64.tar.xz
debian-9.0-standard_9.7-1_amd64.tar.gz
gentoo-current-default_20200310_amd64.tar.xz
ubuntu-18.04-standard_18.04-1_amd64.tar.gz
ubuntu-20.04-standard_20.04-1_amd64.tar.gz
ubuntu-20.10-standard_20.10-1_amd64.tar.gz
После перезагрузки системы вы можете создать новый контейнер из шаблона при этом укажем опции:
- c именем (СT106)
-alpine-3.12 путь к шаблону (/var/lib/vz/template/cache/alpine-3.12-default_20200823_amd64.tar.xz)# pct create 106 /var/lib/vz/template/cache/alpine-3.12-default_20200823_amd64.tar.xz -storage local-lvm -net0 name=eth0,bridge=vmbr0,ip=192.168.0.106/24,gw=192.168.0.1
# pct create 106 /var/lib/vz/template/cache/alpine-3.12-default_20200823_amd64.tar.xz -storage local-lvm -net0 name=eth0,bridge=vmbr1,ip=dhcp,ip6=dhcp,tag=10,type=veth
SSH-доступ
Если вы хотите обеспечить легкий доступ к песочницам, вам необходимо перенаправить сеансы SSH в контейнеры. Для этого создайте нового пользователя на корневом сервере. Не забудьте ввести пароль, другие параметры не нужны.
adduser box107 su - box107 ssh-keygen cat .ssh/id_rsa.pub exit
Скопируйте этот ключ SSH и войдите в контейнер, чтобы добавить ключ.
pct enter 200
mkdir .ssh
nano .ssh/authorized_keys
exit
На вашем сервере добавьте следующую строку в .ssh/authorized_keys
файл.
command="ssh root@10.100.0.107",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>
Не забудьте сменить
<YOUR SSH KEY>
на свой домашний публичный ключ. Кроме того, вы можете запустить следующее из командной строки.
echo 'command="ssh root@192.168.0.107",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <YOUR SSH KEY>' >> .ssh/authorized_keys
Затем вы можете подключиться к своей песочнице с помощью ssh.
ssh box107@192.168.0.107
Вывод команды:
log_bin=mysql-bin
log_error=mysql-bin.err
binlog-ignore-db=information_schema,mysql,test
Кроме того, вы можете запустить следующее из командной строки- winbox-installer.
Также для удобства вывода можно подсветить № строки, где есть вхождение "linkwatch" :
grep -iwn 'linkwatch' /root/base.txt #Поиск в файле без учета регистра(Найдет linkwatch)
Вывод команды:
log_bin=mysql-bin
log_error=mysql-bin.err
binlog-ignore-db=information_schema,mysql,test
Cпасибо автору!
Источник: