【问题标题】:Does Vagrant typically store files on host machine file system?Vagrant 通常将文件存储在主机文件系统上吗?
【发布时间】:2016-09-15 00:33:35
【问题描述】:

我收到了一位开发人员关于 Vagrant 的指示,这可能完全是错误的。我已经与这个开发人员联系了 10 次,但无法让交付的 Vagrant 盒子正常工作。

开发者给了我一个 zip 文件,它应该是一个 Vagrant 盒子。

内容是:

README.md       config/     company-name/
Vagrantfile     custom/     bin/

config/ 目录的内容是

box.yaml           files            vms.yaml
default.yaml       user.yaml
facts-devbox.yaml  user.yaml-sample

我假设这是您要下载并运行的 devbox 的结构。

我遵循开发者和cd [described folder]的指示

然后我运行vagrant up

这会触发一个包含大量自定义脚本的冗长安装过程...

然后我运行 vagrant ssh 并使用 bitbucket 将文件拉入 Vagrant VM 中的 /var/www

令我困惑的是,我的主机上有大量文件。

我在 Vagrant VM 中安装到 /var/www/ 的所有内容也会出现在 /var/www 的主机文件系统中。

这是 Vagrant 盒子的正常程序吗?将文件放在主机上的虚拟机有什么意义?

是否有一些典型的 Vagrant 配置文件可能会显示有关 VM 和主机之间这样的共享文件夹结构的详细信息?

我知道最好的答案是询问开发人员...但在这种情况下,与该机构的沟通失败了很多次,他们基本上不知道他们自己的系统是如何工作的。

【问题讨论】:

    标签: vagrant


    【解决方案1】:

    这是 Vagrant 盒子的正常程序吗?

    是的,它是一个正常的过程,它是流浪者的一个好点——你不需要交换大文件,盒子托管在云上(大多数来自https://atlas.hashicorp.com/boxes nowdays)

    所以当你运行 vagrant up vagrant 实际上必须下载一个盒子并安装在你的系统上,然后运行一组配置步骤。

    这一切都很好 - 大多数团队提交项目,包括 vagrantfile,一个新团队成员加入,克隆 repo,vagrant up,他和其他人有相同的环境。

    开发者给了我一个 zip 文件,它应该是一个 Vagrant 盒子。

    他没有给你 vagrant box,而是包含 Vagrantfile 的项目文件夹,其中包含有关配置的所有配置

    如果你打开你的 Vagrantfile 你会有一个参数为

    config.vm.box = "something" (maybe something/something)
    config.vm.box_url = "url" (is the box is private and hosted somewhere by your company)
    

    基本上,这些参数指示 vagrant 在哪里下载盒子,当你运行 vagrant up 时,vagrant 会在本地为你安装盒子,所以你不需要管理这部分。这是一个非常好的改进

    这会触发一个包含大量自定义脚本的冗长安装过程...

    是的,配置可能需要一些时间,具体取决于您在 VM 上安装的内容(数据库、应用服务器、配置...),但此过程仅在您设置 VM 时完成一次。之后只要不需要vagrant destroy机器,启动实例会快很多

    将文件放在主机上的虚拟机有什么意义?

    是否有一些典型的 Vagrant 配置文件可以揭示细节 关于虚拟机和主机之间这样的共享文件夹结构?

    这两个问题结合在一起,所以你知道,Vagrantfile 是 vagrant config 的关键文件。 vagrant 还可以为你管理共享文件夹,所以你可能有这样的配置

    config.vm.synced_folder "/var/www", "/var/www"
    

    既然你提到了

    我在 Vagrant VM 中安装到 /var/www/ 的所有内容都显示在主机上 /var/www 中的文件系统。

    这部分确实很糟糕,我不建议这样做,但是将您的 VM /var/www/var/wwww/site-xxx 与您主机上的文件夹共享(但不是您本地的 /var/www)很好,所以您在您的主机将在 VM 上为您同步。因此,您可以在主机上使用本地工具,并在 VM 上刷新所有内容

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      相关资源
      最近更新 更多