如何为 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(在内存厨师服务器中)
更好的消息是,测试厨房预装了 chef development kit。
我已经研究这个问题一段时间了,我想我会把它开放给 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(在内存厨师服务器中)
更好的消息是,测试厨房预装了 chef development kit。