Выполнение команд в виртуальных машинах без сетевого подключения

Если по какой-то причине у ВМ нет доступа к сети, вы все равно можете выполнять на ней команды с сервера, на котором она расположена.

Вам потребуется идентификатор ВМ, который можно получить с помощью команды vinfra service compute server list. Вы также можете использовать имя домена virsh, которое можно получить с помощью команды virsh list.

Предварительные требования

Чтобы выполнять команды внутри ВМ без сетевого подключения

Windows

Чтобы выполнить произвольную команду внутри ВМ Windows и получить вывод на консоль, используйте команду virsh x-exec, например:

# virsh x-exec bbf4a6ec-865f-4e2c-ac21-8639d1bfb85c --shell dir c:\\
 Volume in drive C has no label.
 Volume Serial Number is D0BE-A8D1

 Directory of c:\

06/10/2009  01:42 PM                24 autoexec.bat
06/10/2009  01:42 PM                10 config.sys
07/13/2009  06:37 PM    <DIR>          PerfLogs
11/12/2018  07:45 AM    <DIR>          Program Files
11/12/2018  07:55 AM    <DIR>          test
11/12/2018  06:23 AM    <DIR>          Users
11/12/2018  07:53 AM    <DIR>          Windows
               2 File(s)             34 bytes
               5 Dir(s)  59,329,495,040 bytes free

Чтобы скопировать файл на ВМ Windows, используйте команды virsh x-exec и prl_cat, например:

# virsh x-exec bbf4a6ec-865f-4e2c-ac21-8639d1bfb85c \
--shell '%programfiles%\\qemu-ga\\prl_cat' 'c:\test\test.file' < /home/test.file

Чтобы получить файл с ВМ Windows, используйте команды virsh x-exec и type, например:

# virsh x-exec bbf4a6ec-865f-4e2c-ac21-8639d1bfb85c \
--shell type 'c:\test\test.file' > test.file

Linux

Чтобы выполнить произвольную команду внутри ВМ Linux и получить вывод на консоль, используйте команду virsh x-exec, например:

# virsh x-exec 1d45a54b-0e20-4d5e-8f11-12c8b4f300db /usr/bin/bash -c 'lsblk'
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0         7:0    0 945.9M  1 loop
loop1         7:1    0     5G  1 loop
├─live-rw   253:0    0     5G  0 dm   /
└─live-base 253:1    0     5G  1 dm
loop2         7:2    0    32G  0 loop
└─live-rw   253:0    0     5G  0 dm   /
sda           8:0    0    64G  0 disk
sdc           8:32   0     1G  1 disk
sr0          11:0    1     2G  0 rom  /run/initramfs/live

Чтобы скопировать файл на ВМ Linux, используйте команды virsh x-exec и cat, например:

# virsh x-exec 1d45a54b-0e20-4d5e-8f11-12c8b4f300db \
--shell 'cat > test.file' < /home/test.file

Чтобы получить файл с ВМ Linux, используйте те же команды virsh x-exec и cat, например:

# virsh x-exec 1d45a54b-0e20-4d5e-8f11-12c8b4f300db \
--shell 'cat /home/test.file' > test.file