我有一个包含虚拟机和 python 脚本的 vSphere 场,用于处理这些虚拟机的克隆和管理。
我还有一台机器(RedHat 6),如果我需要一台新机器,我可以克隆它。它有一个脚本,我需要在每次克隆操作后启动该脚本,以便该计算机获得 IP 地址(通过在 中写入 IP 静态/etc/sysconfig/network-scripts/ifcfg-eth0
)、主机名等。
所以程序如下:
- 启动克隆脚本
- 等待克隆完成
- 启动克隆的虚拟机
- 睡觉X秒
- 远程启动 ip_and_hostname_assigning_script.sh (存储在克隆上,因此在克隆结果中,这也将在克隆的虚拟机上可用) - 这就像通过 ssh 启动命令(我在克隆的虚拟机上远程调用脚本)
这里的问题是有时不更改/分配 IP 地址(即:它将分配主机名但不分配 IP)。不过,我注意到,当我在这个克隆的虚拟机首次启动后等待 1 分钟时,一切都工作得很好。
问题是:直到什么(事件/日志/文件)我可以等待(而不是睡眠)来确保我可以运行这种类型的脚本?
编辑
这是流程:
+-----------------+
|template (clone) | +----------------+
+--------^--------+ | Cloned machine |
| +---------^------+
| |
| 2 Perform clone 3 Run script |
| network interface is down assigning IP |
| during cloning hostname etc |
+-------------+--------------+ |
| +---------------------+
| vSphere farm |
| |
+-------^------+
|
| 1 Clone template to cloned machine
|
+----------+-----------+
| Machine with script |
| managing the cloning |
+----------------------+