一、导出篇
首先,大家知道,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能不能连上,
我的可以。
至于怎么设置shell,看第4步,你现在有用户名,密码和ip,你说你不知道?别逗我了。
到此。环境移植成功。