使用VSphere-iso构建器的Packer Ansible置备程序中的Try / Except子句

时间:2019-02-08 14:20:38

标签: ansible vmware packer

我正在使用带有Ansible供应商的Packer在VMWare中构建模板。我正在使用的子网具有很少(2或3)个可用IP地址。当Ansible设置程序失败时,打包程序最终会超时,并且VM被破坏-没有机会使用dhclient -r释放它的dhcp租用IP地址。在通常只有一个失败之后,唯一的方法是从日志中找到上次成功构建的Mac地址,然后将VM上的网卡更改为具有该Mac地址(然后重新启动它)。成功的构建将运行dhclient -r释放租约,以便后续构建可以获取租约。

我无法修改dhcp服务器以减少租赁时间(一天),也不能提供更多IP地址-在我的环境中这是不可能的。

一个简单的解决方法是在Packer中的Ansible设置器周围有一个try / catch子句,该子句在失败的情况下运行dhclient -r。

我在Packer文档中找不到任何可以执行此操作的方法-尽管似乎有一个“不对失败进行分解”选项,该选项可能允许我手动登录并释放租约。有什么想法可以实现此自动化吗?

0 个答案:

没有答案