Установка Libvirt на Centos 7 с поддержкой LXC
Установка Libvirt на Centos 7 с поддержкой LXC
Настройка Libvirt
Создайте папку для xml файлов:
mkdir -p /root/lxc && cd /root/lxc
Подключение Epel репозитория
yum -y install epel-release
Установка LXC
yum install -y bridge-utils debootstrap lxc lxc-templates qemu-kvm libvirt libvirt-python libguestfs-tools virt-install
Запуск Libvirt
systemctl disable lxc
systemctl enable libvirtd
systemctl start libvirtd
Создайте файл LXC:
sudo nano /usr/bin/libvirt-lxc
Вставьте следующий текст:
#!/bin/bash
virsh -c lxc:/// $@
Установите права на выполнение данного файла командой
sudo chmod +x /usr/bin/libvirt-lxc
Удалите сеть по умолчанию:
virsh net-destroy default
virsh net-undefine default
Создайте файл nano /root/lxc/net-default.xml
<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>
Создайте и запустите сеть:
virsh net-define /root/lxc/net-default.xml
virsh net-autostart --network default
virsh net-start default
virsh net-list
Запуск контейнера debian
Создайте контейнер debian
lxc-create -t download -n debian -- --dist debian --release jessie --arch amd64
Отредактируйте секцию Network configuration nano /var/lib/lxc/debian/config
# 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
debian
Отредактируйте файл nano /var/lib/lxc/debian/rootfs/etc/resolv.conf
nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4
Отредактируйте интерфейсы nano /var/lib/lxc/debian/rootfs/etc/network/interfaces
auto lo
iface lo inet loopback
# auto eth0
# iface eth0 inet dhcp
Сконвертируйте конфиг:
libvirt-lxc domxml-from-native lxc-tools /var/lib/lxc/debian/config > /root/lxc/debian.xml
Откройте файл nano /root/lxc/debian.xml
<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. Задайте им корректные значения.
Создайте контейнер:
libvirt-lxc define /root/lxc/debian.xml
Запустите контейнер:
libvirt-lxc start debian
Подключение к контейнеру
Отредактируйте файл nano /var/lib/lxc/debian/rootfs/etc/shadow
Пропишите строчку:
root:$6$jOJaaad3$213aac5XXw7XMVrtI8dPuwyJazAeMOoaq5QOvo.uf/7V70lA3PIsV7WAiM3d1SWPyDkPiVTvizRHta1P7ZyKs/:17541:0:99999:7:::
Это хэш пароля qwerty!2
Подключитесь к гостевой консоли, используя команду
libvirt-lxc console debian
Введите логин root и пароль qwerty!2. Чтобы отключиться от терминала нужно нажать клавиши Ctrl+5
Поменяйте root пароль командой:
passwd
Рекомендуется настроить контейнер на авторизацию через SSH по ключу и удалить root пароль