我有一个使用virt-install创建虚拟机的脚本。此脚本使用kickstart文件进行无人参与安装。它通过shell触发时工作得很好,但是当通过crontab触发时会抛出以下错误:
错误:无法在没有控制TTY的情况下运行交互式控制台
VM创建过程在后端继续,但在我的脚本中,它不会等待virt-install完成并继续执行下一个命令。我希望我的脚本等待virt-install命令完成其工作,然后转到下一个命令。有什么方法可以让我在TTY上获得一个控件或让我的脚本等待virt-install完成?
修改
这是我的脚本执行的virt-install命令(如果它可以帮助你解决问题):
virt-install --connect=qemu:///system \
--network=bridge:$BRIDGE \
$nic2 \
--initrd-inject=$tmp_ks_file \
--controller type=scsi,model=virtio-scsi \
--extra-args="ks=file:/$(basename $tmp_ks_file) console=tty0 console=ttyS0,115200" \
--name=$img_name \
--disk $libvirt_dir/$img_name.img,size=$disk \
--ram $mem \
--vcpus=2 \
--check-cpu \
--accelerate \
--hvm \
--location=$tree \
--nographics
提前致谢,
卡希夫
答案 0 :(得分:0)
我终于能够通过两个步骤来解决这个问题:
首先从virt-install命令中删除“控制台”相关配置。请参阅上述命令中的extra-args。
放一些逻辑等待virt-install完成。我确实在kickstart文件的安装后部分添加了shutdown,以便在安装完所有软件包后关闭VM。然后在我的脚本中,我实际上“等待”VM进入关闭状态,然后再转到下一个命令。
这样我就可以在crontab中运行我的脚本了。它也与詹金斯合作。
希望这可以帮助面临同样问题的人。