ื›ื™ืฆื“ ืœื”ืขื‘ื™ืจ ืงื•ื ื˜ื™ื™ื ืจ OpenVZ 6 ืœืฉืจืช KVM ืœืœื ื›ืื‘ื™ ืจืืฉ

ื›ืœ ืžื™ ืฉื”ื™ื” ืฆืจื™ืš ืœื”ืขื‘ื™ืจ ืงื•ื ื˜ื™ื™ื ืจ OpenVZ ืœืฉืจืช ืขื ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืžืœืื” ืฉืœ KVM ืœืคื—ื•ืช ืคืขื ืื—ืช ื‘ื—ื™ื™ื• ื ืชืงืœ ื‘ื›ืžื” ื‘ืขื™ื•ืช:

  • ืจื•ื‘ ื”ืžื™ื“ืข ืคืฉื•ื˜ ืžื™ื•ืฉืŸ ื•ื”ื™ื” ืจืœื•ื•ื ื˜ื™ ืœืžืขืจื›ื•ืช ื”ืคืขืœื” ืฉืขื‘ืจื• ืžื–ืžืŸ ืืช ืžื—ื–ื•ืจ ื”-EOL
  • ืžื™ื“ืข ืฉื•ื ื” ืžืกื•ืคืง ืชืžื™ื“ ืขื‘ื•ืจ ืžืขืจื›ื•ืช ื”ืคืขืœื” ืฉื•ื ื•ืช, ื•ืฉื’ื™ืื•ืช ืืคืฉืจื™ื•ืช ื‘ืžื”ืœืš ื”ื”ืขื‘ืจื” ืœืขื•ืœื ืื™ื ืŸ ื ื—ืฉื‘ื•ืช
  • ืœืคืขืžื™ื ืฆืจื™ืš ืœื”ืชืžื•ื“ื“ ืขื ืชืฆื•ืจื•ืช ืฉืžื“ื™ ืคืขื ืœื ืจื•ืฆื•ืช ืœืขื‘ื•ื“ ืœืื—ืจ ื”ื”ื’ื™ืจื”

ื›ืฉืืชื” ืžืขื‘ื™ืจ ืฉืจืช ืื—ื“, ืืชื” ืชืžื™ื“ ื™ื›ื•ืœ ืœืชืงืŸ ืžืฉื”ื• ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”, ืื‘ืœ ื›ืฉืืชื” ืžืขื‘ื™ืจ ืืฉื›ื•ืœ ืฉืœื?

ื‘ืžืืžืจ ื–ื” ืื ืกื” ืœืกืคืจ ืœื›ื ื›ื™ืฆื“ ืœื”ืขื‘ื™ืจ ื ื›ื•ืŸ ืงื•ื ื˜ื™ื™ื ืจ OpenVZ ืœ-KVM ืขื ื–ืžืŸ ื”ืฉื‘ืชื” ืžื™ื ื™ืžืœื™ ื•ืคืชืจื•ืŸ ืžื”ื™ืจ ืœื›ืœ ื”ื‘ืขื™ื•ืช.

ืชื•ื›ื ื™ืช ื—ื™ื ื•ื›ื™ืช ืงื˜ื ื”: ืžื” ื–ื” OpenVZ ื•ืžื” ื–ื” KVM?

ืœื ื ืขืžื™ืง ื‘ื˜ืจืžื™ื ื•ืœื•ื’ื™ื”, ืืœื ื ืืžืจ ื‘ืงื•ื•ื™ื ื›ืœืœื™ื™ื:

OpenVZ - ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ื‘ืจืžืช ืžืขืจื›ืช ื”ื”ืคืขืœื”, ืืชื” ื™ื›ื•ืœ ืืคื™ืœื• ืœืคืจื•ืก ืื•ืชื” ื‘ืžื™ืงืจื•ื’ืœ, ืžื›ื™ื•ื•ืŸ ืฉืื™ืŸ ืฆื•ืจืš ื‘ื”ื•ืจืื•ืช CPU ื•ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ื‘ืžื—ืฉื‘ ื”ืžืืจื—.

KVM - ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืžืœืื”, ืชื•ืš ืฉื™ืžื•ืฉ ื‘ื›ืœ ื”ื›ื•ื— ืฉืœ ื”-CPU ื•ืžืกื•ื’ืœืช ืœืขืฉื•ืช ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืฉืœ ื›ืœ ื“ื‘ืจ, ื‘ื›ืœ ื“ืจืš, ืœื—ืชื•ืš ืื•ืชื• ืœืื•ืจืš ื•ืœืจื•ื—ื‘.

ื‘ื ื™ื’ื•ื“ ืœื“ืขื” ื”ืจื•ื•ื—ืช ืฉื‘ืงืจื‘ ืกืคืงื™ ื”ืื—ืกื•ืŸ OpenVZ ื™ื”ืคื•ืš ืœืžื›ื™ืจืช ื™ืชืจ, ืื‘ืœ KVM ืœื - ืœืžื–ืœื ืฉืœ ื”ืื—ืจื•ื ื™ื, KVM ื ืžื›ืจืช ื›ืขืช ืœื ื™ื•ืชืจ ื’ืจื•ืขื” ืžืื—ื™ื•.

ืžื” ื ืขื‘ื™ืจ?

ื›ื ื‘ื“ืงื™ ื‘ื“ื™ืงื” ืœื”ืขื‘ืจื”, ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœื”ืฉืชืžืฉ ื‘ื›ืœ ื™ืขืจ ืžืขืจื›ื•ืช ื”ื”ืคืขืœื” ื”ื–ืžื™ื ื•ืช ื‘-OpenVZ: CentOS (6 ื•-7 ื’ืจืกืื•ืช), ืื•ื‘ื•ื ื˜ื• (14, 16 ื•-18 LTS), Debian 7.

ื”ื”ื ื—ื” ื”ื™ื™ืชื” ืฉืจื•ื‘ ื”ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืœ OpenVZ ื›ื‘ืจ ืžืจื™ืฆื™ื ืกื•ื’ ืฉืœ LAMP, ื•ืœื—ืœืงื ืืคื™ืœื• ืชื•ื›ื ื” ืžืื•ื“ ืกืคืฆื™ืคื™ืช. ืœืจื•ื‘, ืืœื• ื”ื™ื• ืชืฆื•ืจื•ืช ืขื ISPmanager, ืœื•ื— ื”ื‘ืงืจื” ืฉืœ VestaCP (ื•ืœืจื•ื‘, ืœื ืขื•ื“ื›ื ื• ื‘ืžืฉืš ืฉื ื™ื). ื™ืฉ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ื’ื ืืช ื‘ืงืฉื•ืช ื”ื”ืขื‘ืจื” ืฉืœื”ื.

ื”ื”ื’ื™ืจื” ืžืชื‘ืฆืขืช ืชื•ืš ืฉืžื™ืจื” ืขืœ ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ืงื•ื ื˜ื™ื™ื ืจ ื”ืžื•ืขื‘ืจ; ืื ื• ื ื ื™ื— ืฉื”-IP ืฉื”ื™ื” ืœืงื•ื ื˜ื™ื™ื ืจ ื ืฉืžืจ ื‘-VM ื•ื™ืขื‘ื•ื“ ืœืœื ื‘ืขื™ื•ืช.

ืœืคื ื™ ื”ื”ืขื‘ืจื”, ื‘ื•ืื• ื ื•ื•ื“ื ืฉื™ืฉ ืœื ื• ื”ื›ืœ ื‘ื”ื™ืฉื’ ื™ื“:

  • ืฉืจืช OpenVZ, ื’ื™ืฉืช ืฉื•ืจืฉ ืžืœืื” ืœืžื—ืฉื‘ ื”ืžืืจื—, ื™ื›ื•ืœืช ืœืขืฆื•ืจ/ืœื”ืคืขื™ืœ/ืœื”ืคืขื™ืœ/ืœืžื—ื•ืง ืงื•ื ื˜ื™ื™ื ืจื™ื
  • ืฉืจืช KVM, ื’ื™ืฉืช ืฉื•ืจืฉ ืžืœืื” ืœืžื—ืฉื‘ ื”ืžืืจื—, ืขืœ ื›ืœ ื”ืžืฉืชืžืข ืžื›ืš. ื”ื”ื ื—ื” ื”ื™ื ืฉื”ื›ืœ ื›ื‘ืจ ืžื•ื’ื“ืจ ื•ืžื•ื›ืŸ ืœื”ืคืขืœื”.

ื‘ื•ืื• ื ืชื—ื™ืœ ืœื”ืขื‘ื™ืจ

ืœืคื ื™ ืฉื ืชื—ื™ืœ ื‘ื”ืขื‘ืจื”, ื‘ื•ืื• ื ื’ื“ื™ืจ ืžื•ื ื—ื™ื ืฉื™ืขื–ืจื• ืœื›ื ืœื”ื™ืžื ืข ืžื‘ืœื‘ื•ืœ:

KVM_NODE - ืžื—ืฉื‘ ืžืืจื— KVM
VZ_NODE - ืžื›ื•ื ื” ืžืืจื— OpenVZ
CTID - ืžื™ื›ืœ OpenVZ
VM - ืฉืจืช ื•ื™ืจื˜ื•ืืœื™ KVM

ื”ื›ื ื” ืœื”ื’ื™ืจื” ื•ื™ืฆื™ืจืช ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช.

ืฉืœื‘ 1

ืžื›ื™ื•ื•ืŸ ืฉืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ืขื‘ื™ืจ ืืช ื”ืžื™ื›ืœ ืœืžืงื•ื ื›ืœืฉื”ื•, โ€‹โ€‹ื ื™ืฆื•ืจ VM ืขื ืชืฆื•ืจื” ื“ื•ืžื” ืœ KVM_NODE.
ื—ืฉื•ื‘! ืขืœื™ืš ืœื™ืฆื•ืจ VM ื‘ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉืคื•ืขืœืช ื›ืขืช ืขืœ CTID. ืœื“ื•ื’ืžื”, ืื ืื•ื‘ื•ื ื˜ื• 14 ืžื•ืชืงืŸ ืขืœ ื”-CTID, ืื– ืื•ื‘ื•ื ื˜ื• 14 ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžื•ืชืงืŸ ืขืœ ื”-VM. ื’ืจืกืื•ืช ืžื™ื ื•ืจื™ื•ืช ืื™ื ืŸ ื—ืฉื•ื‘ื•ืช ื•ื”ืคืขืจ ืฉืœื”ืŸ ืื™ื ื• ื›ื” ืงืจื™ื˜ื™, ืืš ื”ื’ืจืกืื•ืช ื”ืขื™ืงืจื™ื•ืช ืฆืจื™ื›ื•ืช ืœื”ื™ื•ืช ื–ื”ื•ืช.

ืœืื—ืจ ื™ืฆื™ืจืช ื”-VM, ื ืขื“ื›ืŸ ืืช ื”ื—ื‘ื™ืœื•ืช ื‘-CTID ื•ื‘-VM (ืœื ืœื”ืชื‘ืœื‘ืœ ืขื ืขื“ื›ื•ืŸ ืžืขืจื›ืช ื”ื”ืคืขืœื” - ืื ื—ื ื• ืœื ืžืขื“ื›ื ื™ื ืื•ืชื”, ืื ื—ื ื• ืžืขื“ื›ื ื™ื ืจืง ืืช ื”ื—ื‘ื™ืœื•ืช ื•ืื ื”ื™ื ืžื’ื™ืขื” ื’ื ืืช ื’ืจืกืช ืžืขืจื›ืช ื”ื”ืคืขืœื” ื‘ืชื•ืš ื”ืจืืฉื™ืช ื’ึดืจึฐืกึธื”).

ืขื‘ื•ืจ CentOS ื”ืชื”ืœื™ืš ื”ื–ื” ื ืจืื” ืœื ืžื–ื™ืง:

# yum clean all
# yum update -y

ื•ืœื ืคื—ื•ืช ืžื–ื™ืง ืขื‘ื•ืจ ืื•ื‘ื•ื ื˜ื• ื•ื“ื‘ื™ืืŸ:

# apt-get update
# apt-get upgrade

ืฉืœื‘ 2

ื”ืชืงืŸ ืขืœ CTID, VZ_NODE ะธ VM ืชื•ึนืขึถืœึถืช rsync:

CentOS:

# yum install rsync -y

ื“ื‘ื™ืืŸ, ืื•ื‘ื•ื ื˜ื•:

# apt-get install rsync -y

ืื ื—ื ื• ืœื ืžืชืงื™ื ื™ื ืฉื•ื ื“ื‘ืจ ืื—ืจ ืœื ืฉื ื•ืœื ืฉื.

ืฉืœื‘ 3

ืื ื—ื ื• ืขื•ืฆืจื™ื CTID ืขืœ VZ_NODE ืขืœ ื™ื“ื™ ืฆื•ื•ืช

vzctl stop CTID

ื”ืจื›ื‘ืช ื”ืชืžื•ื ื” CTID:

vzctl mount CTID

ืขื‘ื•ืจ ืืœ ื”ืชื™ืงื™ื” /vz/root/CTID ื•ืœื‘ืฆืข

mount --bind /dev dev && mount --bind /sys sys && mount --bind /proc proc && chroot .

ืžืชื—ืช ืœืฉื•ืจืฉ, ืฆื•ืจ ืงื•ื‘ืฅ /root/exclude.txt - ื”ื•ื ื™ื›ื™ืœ ืจืฉื™ืžื” ืฉืœ ื—ืจื™ื’ื™ื ืฉืœื ื™ื’ื™ืขื• ืœืฉืจืช ื”ื—ื“ืฉ

/boot
/proc
/sys
/tmp
/dev
/var/lock
/etc/fstab
/etc/mtab
/etc/resolv.conf
/etc/conf.d/net
/etc/network/interfaces
/etc/networks
/etc/sysconfig/network*
/etc/sysconfig/hwconf
/etc/sysconfig/ip6tables-config
/etc/sysconfig/kernel
/etc/hostname
/etc/HOSTNAME
/etc/hosts
/etc/modprobe*
/etc/modules
/net
/lib/modules
/etc/rc.conf
/usr/share/nova-agent*
/usr/sbin/nova-agent*
/etc/init.d/nova-agent*
/etc/ips
/etc/ipaddrpool
/etc/ips.dnsmaster
/etc/resolv.conf
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-ens3

ืื ื• ืžืชื—ื‘ืจื™ื ืœ KVM_NODE ื•ืœื”ืฉื™ืง ืืช ืฉืœื ื• VMื›ืš ืฉื”ื•ื ืขื•ื‘ื“ ื•ื ื’ื™ืฉ ื“ืจืš ื”ืจืฉืช.

ืขื›ืฉื™ื• ื”ื›ืœ ืžื•ื›ืŸ ืœื”ืขื‘ืจื”. ืœืœื›ืช!

ืฉืœื‘ 4

ืขื“ื™ื™ืŸ ืชื—ืช ื›ื™ืฉื•ืฃ, ืื ื—ื ื• ืžื•ืคื™ืขื™ื

rsync --exclude-from="/root/exclude.txt" --numeric-ids -avpogtStlHz --progress -e "ssh -T -o Compression=no -x" / root@KVM_NODE:/

ื”ืคืงื•ื“ื” rsync ืชื‘ืฆืข ืืช ื”ื”ืขื‘ืจื”, ืื ื• ืžืงื•ื•ื™ื ืฉื”ืžืคืชื—ื•ืช ื‘ืจื•ืจื™ื - ื”ื”ืขื‘ืจื” ืžืชื‘ืฆืขืช ืชื•ืš ืฉืžื™ืจื” ืฉืœ ืกื™ืžืœื™ื ืงื™ื, ื–ื›ื•ื™ื•ืช ื’ื™ืฉื”, ื‘ืขืœื™ื ื•ืงื‘ื•ืฆื•ืช, ื•ื”ื”ืฆืคื ื” ืžื•ืฉื‘ืชืช ืœืžื”ื™ืจื•ืช ื’ื‘ื•ื”ื” ื™ื•ืชืจ (ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืฆื•ืคืŸ ืžื”ื™ืจ ื™ื•ืชืจ, ืื‘ืœ ื–ื” ืœื ื›ืœ ื›ืš ื—ืฉื•ื‘ ืœืžืฉื™ืžื” ื–ื•), ื›ืžื• ื’ื ื”ื“ื—ื™ืกื” ืžื•ืฉื‘ืชืช.

ืœืื—ืจ ื”ืฉืœืžืช rsync, ืฆื ืž-chroot (ืขืœ ื™ื“ื™ ืœื—ื™ืฆื” ืขืœ ctrl+d) ื•ื”ืคืขืœ

umount dev && umount proc && umount sys && cd .. && vzctl umount CTID

ืฉืœื‘ 5

ื‘ื•ืื• ื ื‘ืฆืข ืžืกืคืจ ืฉืœื‘ื™ื ืฉื™ืขื–ืจื• ืœื ื• ืœื”ืคืขื™ืœ ืืช ื”-VM ืœืื—ืจ ื”ืขื‘ืจื” ืž-OpenVZ.
ื‘ืฉืจืชื™ื ืขื SystemD ื‘ื•ื ื ื‘ืฆืข ืคืงื•ื“ื” ืฉืชืขื–ื•ืจ ืœื ื• ืœื”ื™ื›ื ืก ืœืงื•ื ืกื•ืœื” ืจื’ื™ืœื”, ืœืžืฉืœ, ื“ืจืš ืžืกืš ืฉืจืช VNC

mv /etc/systemd/system/getty.target.wants/[email protected] /etc/systemd/system/getty.target.wants/[email protected]

ืขืœ ืฉืจืชื™ื CentOS 6 ะธ CentOS 7 ื”ืงืคื“ ืœื”ืชืงื™ืŸ ื’ืจืขื™ืŸ ื˜ืจื™:

yum install kernel-$(uname -r)

ื ื™ืชืŸ ืœื˜ืขื•ืŸ ืืช ื”ืฉืจืช ืžืžื ื•, ืืš ืœืื—ืจ ื”ื”ืขื‘ืจื” ื”ื•ื ืขืœื•ืœ ืœื”ืคืกื™ืง ืœืขื‘ื•ื“ ืื• ืœื”ื™ืžื—ืง.

ื‘ืฉืจืช CentOS 7 ืืชื” ืฆืจื™ืš ืœื”ื—ื™ืœ ืชื™ืงื•ืŸ ืงื˜ืŸ ืขื‘ื•ืจ PolkitD, ืื—ืจืช ื”ืฉืจืช ื™ืงืจื•ืก ืœื ืฆื—:

getent group polkitd >/dev/null && echo -e "e[1;32mpolkitd group already existse[0m" || { groupadd -r polkitd && echo -e "e[1;33mAdded missing polkitd groupe[0m" || echo -e "e[1;31mAdding polkitd group FAILEDe[0m"; }

getent passwd polkitd >/dev/null 
&& echo -e "e[1;32mpolkitd user already existse[0m" || { useradd -r -g polkitd -d / -s /sbin/nologin -c "User for polkitd" polkitd && echo -e "e[1;33mAdded missing polkitd usere[0m" || echo -e "e[1;31mAdding polkitd user FAILEDe[0m"; }

rpm -Va polkit* && echo -e "e[1;32mpolkit* rpm verification passede[0m" || { echo -e "e[1;33mResetting polkit* rpm user/group ownership & permse[0m"; rpm --setugids polkit polkit-pkla-compat; rpm --setperms polkit polkit-pkla-compat; }

ื‘ื›ืœ ื”ืฉืจืชื™ื, ืื mod_fcgid ืขื‘ื•ืจ Apache ื”ื•ืชืงืŸ, ื ื‘ืฆืข ืชื™ืงื•ืŸ ืงื˜ืŸ ืขื ื–ื›ื•ื™ื•ืช, ืื—ืจืช ืืชืจื™ื ื”ืžืฉืชืžืฉื™ื ื‘-mod_fcgid ื™ืงืจืกื• ืขื ืฉื’ื™ืื” 500:

chmod +s `which suexec` && apachectl restart

ื•ื”ื“ื‘ืจ ื”ืื—ืจื•ืŸ ืฉื™ืžื•ืฉื™ ืขื‘ื•ืจ ื”ืคืฆื•ืช ืฉืœ ืื•ื‘ื•ื ื˜ื• ื•ื“ื‘ื™ืืŸ. ืžืขืจื›ืช ื”ืคืขืœื” ื–ื• ืขืœื•ืœื” ืœืงืจื•ืก ืœืืชื—ื•ืœ ื ืฆื—ื™ ืขื ืฉื’ื™ืื”

ืœื•ืœืื” ืžื”ืจ ืžื“ื™. ื‘ื™ืฆื•ืข ืžืฆืขืจ ืžืขื˜

ืœื ื ืขื™ื, ืื‘ืœ ืžืชื•ืงืŸ ื‘ืงืœื•ืช, ืชืœื•ื™ ื‘ื’ืจืกืช ืžืขืจื›ืช ื”ื”ืคืขืœื”.

ืขืœ ื“ื‘ื™ืืŸ 9 ื”ืชื™ืงื•ืŸ ื ืจืื” ื›ืš:

ืื ื—ื ื• ืžื‘ืฆืขื™ื

dbus-uuidgen

ืื ื ืงื‘ืœ ืฉื’ื™ืื”

/usr/local/lib/libdbus-1.so.3: ื’ืจืกื” `LIBDBUS_PRIVATE_1.10.8' ืœื ื ืžืฆืื”

ื‘ื“ื•ืง ืืช ื ื•ื›ื—ื•ืชื• ืฉืœ LIBDBUS

ls -la /lib/x86_64-linux-gnu | grep dbus
libdbus-1.so.3 -> libdbus-1.so.3.14.15 
libdbus-1.so.3.14.15 <-- ะฝัƒะถะตะฝ ัั‚ะพั‚
libdbus-1.so.3.14.16

ืื ื”ื›ืœ ื‘ืกื“ืจ, ืื ื—ื ื• ืขื•ืฉื™ื ืืช ื–ื”

cd /lib/x86_64-linux-gnu
rm -rf libdbus-1.so.3
ln -s libdbus-1.so.3.14.15  libdbus-1.so.3

ืื ื–ื” ืœื ืขื•ื–ืจ, ื ืกื” ืืช ื”ืืคืฉืจื•ืช ื”ืฉื ื™ื™ื”.

ื”ืคืชืจื•ืŸ ื”ืฉื ื™ ืœื‘ืขื™ื” ืขื ื‘ื™ืฆื•ืข ืžืฆืขืจ ืžืขื˜ ืžืชืื™ื ื›ืžืขื˜ ืœื›ืœ ื”ื”ืคืฆื•ืช ืฉืœ ืื•ื‘ื•ื ื˜ื• ื•ื“ื‘ื™ืืŸ.

ืื ื• ืžื‘ืฆืขื™ื

bash -x /var/lib/dpkg/info/dbus.postinst configure

ื•ื‘ืฉื‘ื™ืœ ืื•ื‘ื•ื ื˜ื• 14, ื“ื‘ื™ืืŸ 7 ื‘ื ื•ืกืฃ ืื ื• ืžื‘ืฆืขื™ื:

adduser --system --home /nonexistent --no-create-home --disabled-password --group messagebus

rm -rf /etc/init.d/modules_dep.sh 

ืžื” ืขืฉื™ื ื•? ืฉื—ื–ืจื ื• ืืช messagebus, ืฉื”ื™ื” ื—ืกืจ ืœื”ืคืขืœืช Debian/Ubuntu, ื•ื”ืกืจื ื• ืืช modules_dep, ืฉื”ื’ื™ืข ืž-OpenVZ ื•ื”ืคืจื™ืข ืœื˜ืขื™ื ืช ืžื•ื“ื•ืœื™ ืœื™ื‘ื” ืจื‘ื™ื.

ืฉืœื‘ 6

ืื ื• ืžืืชื—ืœื™ื ืืช ื”-VM, ื‘ื•ื“ืงื™ื ื‘-VNC ื›ื™ืฆื“ ื”ื˜ืขื™ื ื” ืžืชืงื“ืžืช ื•ื‘ืื•ืคืŸ ืื™ื“ื™ืืœื™, ื”ื›ืœ ื™ื™ื˜ืขืŸ ืœืœื ื‘ืขื™ื•ืช. ืœืžืจื•ืช ืฉื™ื™ืชื›ืŸ ืฉื™ื•ืคื™ืขื• ื›ืžื” ื‘ืขื™ื•ืช ืกืคืฆื™ืคื™ื•ืช ืœืื—ืจ ื”ื”ื’ื™ืจื”, ื”ืŸ ืื™ื ืŸ ืžืชื—ื•ื ื”ืžืืžืจ ื”ื–ื” ื•ื™ืชื•ืงื ื• ื›ื›ืœ ืฉื™ืชืขื•ืจืจื•.

ืื ื™ ืžืงื•ื•ื” ืฉื”ืžื™ื“ืข ื”ื–ื” ืฉื™ืžื•ืฉื™! ๐Ÿ™‚

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”