原文地址

尽管可以非常轻松的启动一台虚拟机,但很少有人希望通过 SSH 使用基于终端的编辑器来编辑文件。幸运的是,借助 Vagrant 你不需要这样做。通过使用同步目录,Vagrant 会自动同步 guest 机器上的文件。

默认情况下,Vagrant 将你的项目的目录(即 Vagrantfile 的目录)共享到 guest 中的 /vagrant 目录。

注意,当使用 vagrant ssh 目录进入机器时,默认进入 /home/vagrant 目录。/home/vagrant 是与同步的 /vagrant 目录不同的目录。

如果终端报错,提示不兼容 guest additions(或没有 guest additions),那么可能需要更新 box 或选择不同的 box,如 hashicorp/precise64。一些用户成功使用了 vagrant-vbguest 插件,但它并未得到 Vagrant 核心团队的正式支持。

再次运行 vagrant up 启动 vagrant,然后通过 vagrant ssh 进入机器:

$ vagrant up
...
$ vagrant ssh
...
vagrant@precise64:~$ ls /vagrant
Vagrantfile

不管你信不信,你在虚拟机中看到的 Vagrantfile 文件实际上是你宿主机上的同一个文件。下面证明一下:

vagrant@precise64:~$ touch /vagrant/foo
vagrant@precise64:~$ exit
$ ls
foo Vagrantfile

现在,“foo”文件会出现在你的宿主机上。你可以看到,Vagrant 保证了这个目录的同步。

通过同步目录,你可以继续使用宿主机上你自己的编辑器,对宿主机中文件的改动会自动同步到 guest 机器中。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐