【问题标题】:Is it possible to define what happens prior to vagrant destroy?是否可以定义 vagrant destroy 之前发生的事情?
【发布时间】:2014-01-01 00:13:50
【问题描述】:

我有一个Vagrantfile,它在vagrant up 上克隆了所需的食谱库。问题是,它也在vagrant destroy 上执行此操作。有没有办法定义“预构造”和“预销毁”命令,或者无论参数如何,每次调用 vagrant 时,Vagrantfile 都会全部运行?

【问题讨论】:

标签: chef-infra vagrant


【解决方案1】:

我不知道销毁钩子,但是您可以通过检查机器 ID 的存在来检测 Vagrantfile 中的第一次和销毁后的操作:

File.exists?(".vagrant/machines/default/virtualbox/id")

我用它来放入机器的公钥,这样我就可以自动设置一个安全的 SSH 密钥:

if ! File.exists?(".vagrant/machines/default/virtualbox/id")
    # Then this machine is brannd new.
    system "cp #{KEYS_DIR}/workstation.pub #{OUR_DIR}"
end

【讨论】:

  • 正是我的情况。非常感谢!
【解决方案2】:

我强烈建议不要编写自己的说明书依赖管理器,而是使用Berkshelflibrarian。两者都有适用于 Vagrant 的插件,这些插件已经具备您正在寻找的功能。

我开始使用图书管理员(更简单,专注于做好一件事),但已切换到 Berkshelf(这就像在我的刀命令中添加额外的刀片)。

【讨论】:

    猜你喜欢
    • 2016-04-29
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多