我正在使用 XenServer 作为我们应用程序开发的一次性 QA 机器的主机。我想编写一个脚本,自动从模板创建新的 VM、启动它、登录它、获取最新的应用程序构建并部署它。
我希望我的脚本使用“xe vm-install”安装虚拟机,使用“xe vm-start”启动它,等待它启动完成,通过 SSH 进入它,然后执行应用程序安装过程。
问题是,“xe vm-start”命令不会阻止 shell。也就是说,该命令在机器完全加载之前返回。
有人知道我是否可以以及如何查询 Xen 的机器启动状态?
谢谢
答案1
没有办法从外部判断你的机器是否已经完成操作系统的启动...但是有两种方法可以解决这个问题:
假设您的系统在完成加载服务(例如 sshd)时已启动并正在运行。探测系统直到该服务启动并正在运行。
向客户端添加一个安装脚本,该脚本在客户端启动完成后运行。让脚本从外部服务器拉取一个 shell 脚本并执行它。
答案2
值得研究使用 xen-tools 并创建自定义角色来抓取/安装包