好的,所以我在启动配置的用户数据部分中设置了一种让实例自动向 Foreman 注册并通过 API 调用将自己放入正确的主机组的方法。
现在,由于自动缩放的短暂性,如果主机在一定时间内没有检查,工头是否有办法清理主机?我不想依靠脚本在实例终止时调用 API,以防万一出现硬件故障或任何其他脚本无法干净运行的原因。
答案1
如果您正在使用用户数据,您可以将主机名设置为包含 $instanceid 的内容,然后执行 foreman 回调。这将减少冲突。
答案2
我决定在 foreman 注册脚本的开头进行主机名检查,如果发现主机名已注册到 foreman,它将删除该主机名,然后我将注册具有相同名称的新实例。由于我将把主机名设置为本地 IP 地址,因此可能会发生新实例与已停用实例获得相同 IP 的情况。