如何为 Chef 用户提供一种方法来注销他们的一次性 Vagrant VM?

How to provide a way for Chef users to de-register their disposable Vagrant VM?

我已经研究这个问题一段时间了,我想我会把它开放给 Whosebug 社区:

我有一个设置,多个开发人员可以在其中克隆和启动一个 Vagrant VM,该 VM 将由 Chef 提供。根据主机的主机名,VM 具有对用户唯一的主机名。

如果用户想要销毁并重新创建它,他们将被指示使用 vagrant destroy,在 vagrant-butcher 插件的帮助下,将从 Chef 中注销 VM。

然而,用户不可避免地会 rm -rf 他们的 VM 并尝试重新创建它,从 Chef 那里得到可怕的 HTTP 403 Forbidden,因为 VM 已经用不同的密钥注册。

然后我必须从 Chef 手动删除节点和客户端,然后让他们再试一次。

有没有人通过一种创造性的方式为用户提供一种取消注册过时 VM 以便能够重新使用该名称的方法(假设 .pem 密钥和 vagrant 文件夹都消失了)?

运行 以下脚本:-)

knife client delete $(hostname) -y
knife node delete $(hostname) -y

更新

避免使用共享开发环境。使用测试厨房创建一个独立的测试驱动开发环境。在引擎盖下它仍然可以使用 vagrant 和 chef zero(在内存厨师服务器中)

http://kitchen.ci/

更好的消息是,测试厨房预装了 chef development kit