-
LXC w CentOS 7
LXC jest lekką metodą wirtualizacji opartą na kontenerach. Kiedyś nie byłem do niej przekonany, ale to się zmieniło 🙂 Jak wszystko jest dobrze skonfigurowane, nie sprawie większych niespodzianek. „Ojczystą” dystrybucją omawianego rozwiązania jest Ubuntu. Przystępujemy o instalacji.
yum install debootstrap perl libvirt lxc lxc-templates lxc-extra
Startujemy lxc.
systemctl start lxc
systemctl start libvirtd
Zapewniamy autostart usług związanych z lxc.
systemctl enable lxc
systemctl enable libvirtd
Sprawdzamy, czy wszystko mamy dobrze zainstalowane i skonfigurowane.
lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-3.10.0-693.21.1.el7.x86_64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
newuidmap is not installed
newgidmap is not installed
Network namespace: enabled
Multiple /dev/pts instances: enabled--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
Bridges: enabled
Advanced netfilter: enabled
CONFIG_NF_NAT_IPV4: enabled
CONFIG_NF_NAT_IPV6: enabled
CONFIG_IP_NF_TARGET_MASQUERADE: enabled
CONFIG_IP6_NF_TARGET_MASQUERADE: enabled
CONFIG_NETFILTER_XT_TARGET_CHECKSUM: enabled--- Checkpoint/Restore ---
checkpoint restore: enabled
CONFIG_FHANDLE: enabled
CONFIG_EVENTFD: enabled
CONFIG_EPOLL: enabled
CONFIG_UNIX_DIAG: enabled
CONFIG_INET_DIAG: enabled
CONFIG_PACKET_DIAG: enabled
CONFIG_NETLINK_DIAG: enabled
File capabilities: enabledNote : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /bin/lxc-checkconfigKontenery tworzymy przy pomocy polecenia „lxc-create”. Poniższe przykładowe polecenie utworzy kontener o nazwie „etckeeper”, z systemem CentOS, na lvm-ie on nazwie „etckeeper”, w Volume Group „vg0” o wielkości 10GB z wykorzystaniem systemu plików xfs.
lxc-create -n etckeeper -t centos -B lvm --vgname=vg0 --lvname=etckeeper --fssize=10G --fstype=xfs
W omawianym przypadku hasło użytkownika root zostanie wygenerowane automatycznie i zapisane w pliku „/var/lib/lxc/etckeeper/tmp_root_pass”. Aby je odczytać wystarczy wydać poniższą komendę.
cat /var/lib/lxc/etckeeper/tmp_root_pass
Sprawdzanie dostępnych kontenerów na naszym serwerze odbywa się przy pomocy polecenia „lxc-ls -f”. Przykładowy efekt:
NAME STATE IPV4 IPV6 AUTOSTART
------------------------------------------------------
backup RUNNING 192.168.122.199 - YES
dns RUNNING 192.168.122.162 - NO
etckeeper RUNNING 192.168.122.208 - NO
monitor RUNNING 192.168.122.73 - YESAby nasz kontener uruchamiał się automatycznie wraz ze startem systemu, musimy dodać w jego pliku konfiguracyjnym tj. „/var/lib/lxc/nazwa-kontenera/config” następujący wpis:
lxc.start.auto = 1
W razie pytań, proszę pisać w komentarzach.