Запуск 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, расположенную на том же или другом сервере.