Запуск libvirt во время установки кикстарта RHEL7

У меня очень проблемное задание, и один момент сводит меня с ума. Сделаю просто: Цель: установить CentOS7 с кикстартом. В конце сценария установки в виде поста он должен запустить libvirtd и создать виртуальную машину с помощью команды virt-install.

В моем файле кикстарта у меня есть:

dd if=/dev/zero of=/var/lib/libvirt/images/fw.qcow2 bs=1024 count=0 seek=10G
/usr/sbin/libvirtd -d &
systemctl enable libvirtd
virt-install --name=firewall --disk path=/var/lib/libvirt/images/fw.qcow2 --ram=2048 --vcpus=2 --nographics --os-type=linux --os-variant=rhel7 --location /mnt/cdrom/CentOS-7-x86_64-Minimal-1511.iso --extra-args="console=tty0 console=ttyS0,115200 rd_NO_PLYMOUTH"

Однако мой опыт таков: я не знаю, запускает ли он libvirt, он определенно включает его, потому что после перезапуска libvirt работает, но ОС не устанавливается через virt-install. В файле ks-post.log у меня есть:

ERROR Cannot recv data: Connection reset bypeer
error: Dailed to connect to the hypervisor
error: no calid connection
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

Я полагаю, что не смог запустить libvirtd должным образом с

/usr/sbin/libvirtd -d &

команда я?

2 ответа

Вместо:

/usr/sbin/libvirtd -d &

Пытаться:

systemctl start libvirtd

Вы могли бы использовать journalctl посмотреть журналы systemd.

Кроме того, мне интересно, что вы --location аргумент.

Я знаю, что опоздал, но для всех, кто хочет сделать что-то подобное в будущем, я предлагаю вам сделать systemd сервис, который просто выполняет обычный сценарий оболочки, содержащий ваши команды. Ключевое различие между выполнением команд в среде chroot в Kickstart и обычной загруженной ОС состоит в том, что ядро ​​целевых машин не загружается в исполнение (я точно не знаю), но поскольку службы не работают (включая все демоны), вы не сможет начатьservice' или же 'systemctlсервисы в кикстарт-среде. Я столкнулся с подобной проблемой и просто создал системный файл для своей среды centos7, который после начальной перезагрузки системы запускает сервер apache на порту 8080 и копирует несколько пользовательских файлов, а после выполнения удаляет исходный системный файл, так что тот же сценарий оболочки не вызывается после первой перезагрузки.

ПРИМЕЧАНИЕ: чтобы эта техника работала, вам нужно будет скопировать и вставить systemd и (если требуется) несколько других файлов с установочного носителя (iso) в целевую файловую систему. Если вы не хотите этого делать, то в среде chroot самого кикстарта вы можете просто получить его curl или же wget (загрузить) файл systemd в папку systemd, расположенную на том же или другом сервере.

Другие вопросы по тегам