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

376
Bert

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

команда я?

1

2 ответа на вопрос

0
axus

Вместо:

/usr/sbin/libvirtd -d & 

Пытаться:

systemctl start libvirtd 

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

Также мне интересно ваше --locationмнение.

Уже пробовал, но потом получаю Running in chroot, игнорируя запрос. Bert 7 лет назад 0
Ах, вот почему вы пытаетесь начать так. Я видел некоторые ссылки на «firstboot» в качестве опции, и http://askubuntu.com/questions/156771/run-a-script-only-at-the-very-first-boot axus 7 лет назад 0
Аргумент location должен работать. Причина, по которой я это заявляю, если я выполню эту команду после завершения установки, то виртуальный гость готов к работе. Тем временем я заметил, что на моем компьютере не была включена вложенная виртуализация. Как только я смогу, я перезапущу его с «kvm-intel.nested = 1» в моем grub и посмотрю, будет ли что-то другое или нет. Bert 7 лет назад 0
Но я мог бы просто создать скрипт самоуничтожения для первой загрузки. :-) Bert 7 лет назад 0
0
Parth Patel

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

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

Похожие вопросы