Thank you for reading this post, don't forget to subscribe!
Установка Libvirt на Centos 7 с поддержкой LXC
Настройка Libvirt
Создайте папку для xml файлов:
1 |
mkdir -p /root/lxc && cd /root/lxc |
Подключение Epel репозитория
1 |
yum -y install epel-release |
Установка LXC
1 |
yum install -y bridge-utils debootstrap lxc lxc-templates qemu-kvm libvirt libvirt-python libguestfs-tools virt-install |
Запуск Libvirt
1 2 3 |
systemctl disable lxc systemctl enable libvirtd systemctl start libvirtd |
Создайте файл LXC:
1 |
sudo nano /usr/bin/lxc |
Вставьте следующий текст:
1 2 3 |
#!/bin/bash virsh -c lxc:/// $@ |
Установите права на выполнение данного файла командой
1 |
sudo chmod +x /usr/bin/lxc |
Удалите сеть по умолчанию:
1 2 |
virsh net-destroy default virsh net-undefine default |
Создайте файл nano /root/lxc/net-default.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<network> <name>default</name> <forward mode="nat" /> <bridge name='lxcnet' stp='on' delay='0'/> <mac address='52:54:00:35:a2:59'/> <dns> <forwarder addr="1.1.1.1"/> <forwarder addr="8.8.8.8"/> </dns> <ip address="172.30.0.1" netmask="255.255.255.0"> <dhcp> <range start="172.30.0.2" end="172.30.0.254"/> </dhcp> </ip> </network> |
Создайте и запустите сеть:
1 2 3 4 |
virsh net-define /root/lxc/net-default.xml virsh net-autostart --network default virsh net-start default virsh net-list |
Запуск контейнера debian
Создайте контейнер debian
1 |
lxc-create -t download -n debian -- --dist debian --release jessie --arch amd64 |
Отредактируйте секцию Network configuration nano /var/lib/lxc/debian/config
1 2 3 4 5 6 7 |
# Network configuration lxc.network.type = veth lxc.network.flags = up lxc.network.link = lxcnet lxc.network.ipv4 = 172.30.0.10/24 lxc.network.ipv4.gateway = 172.30.0.1 lxc.network.hwaddr = 00:16:3e:12:83:10 |
Отредактируйте файл nano /var/lib/lxc/debian/rootfs/etc/hostname
1 |
debian |
Отредактируйте файл nano /var/lib/lxc/debian/rootfs/etc/resolv.conf
1 2 3 |
nameserver 1.1.1.1 nameserver 8.8.8.8 nameserver 8.8.4.4 |
Отредактируйте интерфейсы nano /var/lib/lxc/debian/rootfs/etc/network/interfaces
1 2 3 4 5 |
auto lo iface lo inet loopback # auto eth0 # iface eth0 inet dhcp |
Сконвертируйте конфиг:
1 |
lxc domxml-from-native lxc-tools /var/lib/lxc/debian/config > /root/lxc/debian.xml |
Откройте файл nano /root/lxc/debian.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<domain type='lxc'> <name>debian</name> <uuid>8359f034-c7db-4270-bb64-32b95e8ebc18</uuid> <memory unit='KiB'>65536</memory> <currentMemory unit='KiB'>65536</currentMemory> <vcpu placement='static'>1</vcpu> <os> <type>exe</type> <init>/sbin/init</init> </os> <features> <capabilities policy='allow'> </capabilities> </features> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>destroy</on_crash> <devices> <emulator>/usr/libexec/libvirt_lxc</emulator> <filesystem type='mount' accessmode='passthrough'> <source dir='/var/lib/lxc/debian/rootfs'/> <target dir='/'/> </filesystem> <interface type='network'> <source network='default'/> <mac address='00:16:3e:12:83:10'/> <ip address='172.30.0.10' family='ipv4' prefix='24'/> <route family='ipv4' address='0.0.0.0' gateway='172.30.0.1'/> <guest dev='eth0'/> <link state='up'/> </interface> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='lxc' port='0'/> <alias name='console0'/> </console> </devices> </domain> |
Обратите внимание на секции idmap, interface, console. Задайте им корректные значения.
Создайте контейнер:
1 |
lxc define /root/lxc/debian.xml |
Запустите контейнер:
1 |
lxc start debian |
Подключение к контейнеру
Отредактируйте файл nano /var/lib/lxc/debian/rootfs/etc/shadow
Пропишите строчку:
1 |
root:$6$jOJaaad3$213aac5XXw7XMVrtI8dPuwyJazAeMOoaq5QOvo.uf/7V70lA3PIsV7WAiM3d1SWPyDkPiVTvizRHta1P7ZyKs/:17541:0:99999:7::: |
Это хэш пароля qwerty!2
Подключитесь к гостевой консоли, используя команду
1 |
lxc console debian |
Введите логин root и пароль qwerty!2. Чтобы отключиться от терминала нужно нажать клавиши Ctrl+5
Поменяйте root пароль командой:
1 |
passwd |
Рекомендуется настроить контейнер на авторизацию через SSH по ключу и удалить root пароль