0

我只是在徒劳地尝试让我的自定义 synced_folders 指令工作时运行 vagrant provision,现在我的整个客人包厢都被消灭了。

这是正常的吗?我没有看到任何关于此行为的对 Vagrant 文档的引用。

根据文档

Vagrant 中的 Provisioner 允许您在机器上自动安装软件、更改配置等,作为 vagrant up 过程的一部分。

我在配置提供 shell 命令中唯一拥有的是安装命令。没有什么要抹去任何东西。

我确实有用于设置 fqdn、用户名和框名的 puppet app.vm.provision(以及正常的 module_path、manifests_path 和 manifests_file)。也许这导致事情被重置?

4

2 回答 2

0

答案

Vagrant Provision 是否会清除您的所有数据?

不,Vagrant 绝不应该损害您的“数据”(即网站、代码等)。

...现在我的整个宾客包厢都被消灭了。这是正常的吗?

是的。您的 Vagrant 环境(换句话说,Vagrant 在虚拟环境中创建的客户操作系统)是不稳定的,您应该能够随意销毁和重新创建它,而不会对您的工作文件产生任何影响(因为这些文件应该保存在您的本地或主机文件系统)。

解释

在 Vagrant 的网站上,他们告诉你的第一件事是:

创建和配置轻量级、可重现和可移植的开发环境。

您的开发环境允许您工作。您开发工作环境处理数据。完成“开发工作环境”后,您应该可以自由删除它,而不会影响您的数据。

此外,您应该能够将您的 Vagrantfile 发送给合作开发人员,以便他们可以创建与您创建数据时完全相同的开发环境(即编写程序、构建网站等)。然后,当您向他们提供代码时,他们可以在与创建代码的环境相同的环境中使用它,而无需重新配置自己的设置。

有关如何将数据文件(代码、工作文件等)安全地保存在计算机中同时让 Vagrant 创建的访客系统可以访问它们的更多详细信息,请参阅我对这个问题的回答。

于 2015-08-07T19:38:29.190 回答
0

因此,似乎发生的事情是,当我设置一个同步文件夹时,它会清除所有内容,因为该同步文件夹中我的主机上没有任何内容。除非有办法恢复丢失的数据,否则他们的文档中应该有一个明确的警告,表明这种情况可能会发生。

我将 synced_folder 设置在我的整个主目录中。当我创建一台新机器时,我克隆了我保存的一个项目,并决定这次只同步我的单个项目而不是我的整个用户目录。当我重新加载时,项目目录是空的,因为它在我的主机上是空的。

所以我想,在使用 synced_folder 信息配置 Vagrantfile 之前,请确保主机上的目录已经设置了数据。

于 2015-08-08T02:13:10.467 回答