Установка Libvirt на Centos 7 с поддержкой LXC
Настройка Libvirt
Создайте папку для xml файлов:
_x000D_mkdir -p /root/lxc && cd /root/lxcПодключение Epel репозитория
_x000D_yum -y install epel-releaseУстановка LXC
_x000D_yum install -y bridge-utils debootstrap lxc lxc-templates qemu-kvm libvirt libvirt-python libguestfs-tools virt-installЗапуск Libvirt
_x000D_systemctl disable lxc_x000D_systemctl enable libvirtd_x000D_systemctl start libvirtdСоздайте файл LXC:
_x000D_sudo nano /usr/bin/libvirt-lxcВставьте следующий текст:
_x000D_#!/bin/bash_x000D_virsh -c lxc:/// $@_x000D_Установите права на выполнение данного файла командой
_x000D_sudo chmod +x /usr/bin/libvirt-lxcУдалите сеть по умолчанию:
_x000D_virsh net-destroy default_x000D_virsh net-undefine defaultСоздайте файл nano /root/lxc/net-default.xml
_x000D_<network>_x000D_ <name>default</name>_x000D_ <forward mode="nat" />_x000D_ <bridge name='lxcnet' stp='on' delay='0'/>_x000D_ <mac address='52:54:00:35:a2:59'/>_x000D_ <dns>_x000D_ <forwarder addr="1.1.1.1"/>_x000D_ <forwarder addr="8.8.8.8"/>_x000D_ </dns>_x000D_ <ip address="172.30.0.1" netmask="255.255.255.0">_x000D_ <dhcp>_x000D_ <range start="172.30.0.2" end="172.30.0.254"/>_x000D_ </dhcp>_x000D_ </ip>_x000D_</network>Создайте и запустите сеть:
_x000D_virsh net-define /root/lxc/net-default.xml _x000D_virsh net-autostart --network default_x000D_virsh net-start default_x000D_virsh net-listЗапуск контейнера debian
Создайте контейнер debian
_x000D_lxc-create -t download -n debian -- --dist debian --release jessie --arch amd64Отредактируйте секцию Network configuration nano /var/lib/lxc/debian/config
_x000D_# Network configuration_x000D_lxc.network.type = veth_x000D_lxc.network.flags = up_x000D_lxc.network.link = lxcnet_x000D_lxc.network.ipv4 = 172.30.0.10/24_x000D_lxc.network.ipv4.gateway = 172.30.0.1_x000D_lxc.network.hwaddr = 00:16:3e:12:83:10Отредактируйте файл nano /var/lib/lxc/debian/rootfs/etc/hostname
_x000D_debianОтредактируйте файл nano /var/lib/lxc/debian/rootfs/etc/resolv.conf
_x000D_nameserver 1.1.1.1_x000D_nameserver 8.8.8.8_x000D_nameserver 8.8.4.4Отредактируйте интерфейсы nano /var/lib/lxc/debian/rootfs/etc/network/interfaces
_x000D_auto lo_x000D_iface lo inet loopback _x000D__x000D_# auto eth0_x000D_# iface eth0 inet dhcpСконвертируйте конфиг:
_x000D_libvirt-lxc domxml-from-native lxc-tools /var/lib/lxc/debian/config > /root/lxc/debian.xmlОткройте файл nano /root/lxc/debian.xml
_x000D_<domain type='lxc'>_x000D_ <name>debian</name>_x000D_ <uuid>8359f034-c7db-4270-bb64-32b95e8ebc18</uuid>_x000D_ <memory unit='KiB'>65536</memory>_x000D_ <currentMemory unit='KiB'>65536</currentMemory>_x000D_ <vcpu placement='static'>1</vcpu>_x000D_ <os>_x000D_ <type>exe</type>_x000D_ <init>/sbin/init</init>_x000D_ </os>_x000D_ <features>_x000D_ <capabilities policy='allow'>_x000D_ </capabilities>_x000D_ </features>_x000D_ <clock offset='utc'/>_x000D_ <on_poweroff>destroy</on_poweroff>_x000D_ <on_reboot>restart</on_reboot>_x000D_ <on_crash>destroy</on_crash>_x000D_ <devices>_x000D_ <emulator>/usr/libexec/libvirt_lxc</emulator>_x000D_ <filesystem type='mount' accessmode='passthrough'>_x000D_ <source dir='/var/lib/lxc/debian/rootfs'/>_x000D_ <target dir='/'/>_x000D_ </filesystem>_x000D_ <interface type='network'>_x000D_ <source network='default'/>_x000D_ <mac address='00:16:3e:12:83:10'/>_x000D_ <ip address='172.30.0.10' family='ipv4' prefix='24'/>_x000D_ <route family='ipv4' address='0.0.0.0' gateway='172.30.0.1'/>_x000D_ <guest dev='eth0'/>_x000D_ <link state='up'/>_x000D_ </interface> _x000D_ <console type='pty' tty='/dev/pts/0'>_x000D_ <source path='/dev/pts/0'/>_x000D_ <target type='lxc' port='0'/>_x000D_ <alias name='console0'/>_x000D_ </console>_x000D_ </devices>_x000D_</domain>Обратите внимание на секции idmap, interface, console. Задайте им корректные значения.
Создайте контейнер:
_x000D_libvirt-lxc define /root/lxc/debian.xmlЗапустите контейнер:
_x000D_libvirt-lxc start debianПодключение к контейнеру
Отредактируйте файл nano /var/lib/lxc/debian/rootfs/etc/shadow
Пропишите строчку:
_x000D_root:$6$jOJaaad3$213aac5XXw7XMVrtI8dPuwyJazAeMOoaq5QOvo.uf/7V70lA3PIsV7WAiM3d1SWPyDkPiVTvizRHta1P7ZyKs/:17541:0:99999:7:::Это хэш пароля qwerty!2
Подключитесь к гостевой консоли, используя команду
_x000D_libvirt-lxc console debianВведите логин root и пароль qwerty!2. Чтобы отключиться от терминала нужно нажать клавиши Ctrl+5
Поменяйте root пароль командой:
_x000D_passwdРекомендуется настроить контейнер на авторизацию через SSH по ключу и удалить root пароль