我有Vagrantfile克隆了vagrant up
上所需的食谱回购。问题是,它也在vagrant destroy
上执行此操作。有没有办法定义'pre-construction'和'pre-destruction'命令,或者每次调用vagrant时Vagrantfile是否都可以运行,无论参数如何?
答案 0 :(得分:4)
我不知道一个destroy钩子,但你可以通过检查机器ID是否存在来检测Vagrantfile中的第一次和post-destoy动作:
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
答案 1 :(得分:1)