玩转Vagrant之工作环境的迁移(box的导入与导出)

时间:2024-03-15 18:16:33

一、导出篇

首先,大家知道,vagrant的运行是依托于VirtualBox这个虚拟机软件的,那么我们首先找到VirtualBox的安装位置,我的VirtualBox安装在E:\Program Files\Oracle\VirtualBox,这个目录下,我们使用cmd(注意是CMD,是CMD,是CMD,重要的话说三遍)进入这个目录,执行命令

vboxmanage list vms

列表展示已经安装的虚拟机

E:\Program Files\Oracle\VirtualBox>vboxmanage list vms
"Homestead_default_1532415196058_37119" {128e3b3f-b273-4508-be43-d11c4ce07797}
"vm" {bcc07fd8-f507-4be8-9c58-6a4917600009}
"Homestead_default_1537678496461_36155" {e25cc5f7-1173-485f-921b-87dc0b0057f6}
"workspace_default_1539839845107_93161" {c11f6b12-36f1-4695-817e-448137e1bfa4}

我的虚拟机名字是workspace_default_1539839845107_93161。

进入到你的vagrant安装目录,我安装在E:\workspace,而且是用Git命令窗口打开的(个人习惯问题,不用纠结,你也可以用cmd)。

vagrant package --base workspace_default_1539839845107_93161 --output 你定义的别名

至此,打包完毕。你的工作环境至此完全导出。

二、导入篇

你来到了另一台电脑,你想把你的工作环境完全的copy一份到这台电脑,接下来就很关键了。

1.创建一个你要的工作目录,我的是E:\workspace,把公共打好的包放进来

2.在这个目录下打开Git窗口,输入

vagrant box add 你自定义的别名 包名

3.初始化工作环境

vagrant init

发现你的文件夹中自动生成了一个文件,Vagrantfile。

4.由于你是直接引入自己打的包,而不是vagrant官方提供的包,所以有可能存在一些问题。我们通过编辑Vagrantfile来解决。

在Vagrantfile中的“config.vm.box”这一行下,加上这三句

config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.insert_key = false

由于vagrant默认使用private_key登录,此时你有很大的可能是没有private_key的,我们直接改成用户名+密码登录,反正工作环境是你自己的,你想用它做什么逆天的操作吗?

5.设置ip,

config.vm.network "private_network", ip: "192.168.2.166"

6.设置文件映射,

config.vm.synced_folder "../workspace", "/media/raid10/htdocs"

左边文件夹是你的windows工作目录名,右边是linux对应的目录名。如果你不加上这一句。会映射到linux根目录下的vagrant文件夹哦。

7.设置内存

config.vm.provider "virtualbox" do |vb|
     vb.memory = "2048"
end

设置2G空间,由于我配置的是多版本php并行的虚拟机环境,需要空间大一点,就给2G,如果你对空间没要求,可以跳过这一步。

8.启动vagrant

vagrant up

应该是正常启动了,如果你不能正常启动,我也没办法,自行百度,Google,解决办法一大堆。

9.测试shell能不能连上,

玩转Vagrant之工作环境的迁移(box的导入与导出)

我的可以。

至于怎么设置shell,看第4步,你现在有用户名,密码和ip,你说你不知道?别逗我了。

到此。环境移植成功。