Bash - 在一个循环中创建多个虚拟客户

时间:2016-02-04 14:25:19

标签: bash virtualization

我正在处理一个bash脚本(我刚刚开始学习bash),它涉及在远程服务器上创建虚拟客户端。我通过SSH从服务器A到B执行此操作并执行2个不同的命令:

# create the images
$(ssh -n john@serverB.net "fallocate -l ${imgsize} /home/john/images/${imgname}") 

# create the virtual machine
$(ssh -n john@serverB.net virt-install --bunch of options) 

这些命令集可能必须在循环中执行两次(如果需要创建2个虚拟guest虚拟机)。当第二次运行第二个命令时,我有时会收到此错误:

Domain installation still in progress.

这意味着我必须等到上一个虚拟客户端完成。我怎样才能在一个循环中完成这些操作?我可以异步运行它们吗?我可以使用线程吗?或者还有另一种方式吗?

我听说过等待'命令,但是可以安全使用吗?

1 个答案:

答案 0 :(得分:0)

查看virt-install的手册页。您可以使用--wait = 0或--noautoconsole。

  

- wait = WAIT VM完成安装的等待时间(以分钟为单位)。没有这个选项,virt-install将等待   控制台关闭(不一定表示客人已关机),   或者在--noautoconsole的情况下,只需启动安装和   出口。任何负值都会使virt-install无限期地等待,a   值0将触发与noautoconsole相同的结果。如果时间   超出限制,virt-install只是退出,离开虚拟   机器处于当前状态。