Vagrant通常会将文件存储在主机文件系统上吗?

时间:2016-05-18 13:24:58

标签: vagrant

我收到了一位开发人员关于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盒子的正常程序吗?将文件放在主机上的VM有什么意义?

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

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

1 个答案:

答案 0 :(得分:3)

  

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

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

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

这一切都很好 - 大多数团队都会投入项目,包括vagrantfile,一个新的团队成员加入,克隆回购,流浪者和他有其他人一样的环境。

  

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

他没有给你流浪的盒子,但是包含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 up时,vagrant将在本地为你安装盒子,所以你不需要管理这个部分。这是一项非常好的改进

  

这会导致很多自定义脚本的安装过程......

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

  

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

     

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

这两个问题汇集在一起​​,所以当你得到时,Vagrantfile是带有vagrant配置的密钥文件。 vagrant也可以为你管理共享文件夹,所以你可能有一个像

这样的配置
config.vm.synced_folder "/var/www", "/var/www"

因为你提到了

  

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

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