1

У меня очень проблемное задание, и один момент сводит меня с ума. Сделаю просто: Цель: установить 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 ответа2

0

Вместо:

/usr/sbin/libvirtd -d &

Пытаться:

systemctl start libvirtd

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

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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .