前言:笔者使用vagrant2.2.5+VirtualBox6.0.x时,遇到了各种意想不到的坑,故替换为VirtualBox6.1.8
一、如何使vagrant2.2.5支持VirtualBox6.1.8:
1
、进入vagrant的安装目录,找到D:\HashiCorp\Vagrant\embedded\gems\2.2.5\gems\vagrant-2.2.5\plugins\providers\virtualbox\plugin.rb文件.(默认存放在C盘,笔者在安装virtualBox时修改了盘符)
修改前:
可以发现vagrant2.2.5中没有支持对virtualBox6.1.x以上版本的支持,故在文件61行下添加
autoload :Version_6_1, File.expand_path(“…/driver/version_6_1”,
FILE
)
**注意:**使用管理员权限进行修改。
修改后:
2
.打开D:\HashiCorp\Vagrant\embedded\gems\2.2.5\gems\vagrant-2.2.5\plugins\providers\virtualbox\driver\meta.rb文件。
修改前:
在66行添加”6.1″ => Version_6_1,,修改后:
同时,在当前目录下复制version_6_0.rb文件并粘贴为version_6_1.rb,如图:
然后修改version_6.1.rb中的版本信息,如下图:
设置后,vagrant2.2.5就可以兼容VirtualBox6.1.8了。
二、优化
前言:安装好VirtualBox6.1.8和vagrant2.2.5,并按上面步骤修改好vagrant2.2.5后。
cmd输入命令vagrant init centos/7
然后输入命令vagrant up
再输入vagrant ssh即可连接到虚拟机了。
优化一:虚拟机固定地址设置
设置好固定地址,就不用为虚拟机内部应用配置端口映射了,方便很大。
C盘-用户-你自己用户名 目录下有个Vagrantfile,
首先cmd输入ipconfig,查看本机虚拟IP网段,如下图
编辑Vagrantfile,放开私有IP设置,并配置相同网段的IP192.168.56.xx如下图:
保存后,cmd中vagrant reload重启虚拟机即设置完成。后面直接访问虚拟机ip192.168.56.60加虚拟机
内部应用端口即可。
优化二:虚拟机加载目录设置
默认虚拟机会将Vagrantfile所在目录,即C盘-用户-你自己用户名 内所有文件挂载到虚拟机/vagrant目录下,会加载很多无用的文件,严重浪费磁盘空间。
我们可以在即C盘-用户-你自己用户名 目录下新建MyVagrantSyncFolder文件夹,然后Vagrantfile文件相同目录下的.vagrant.d\boxes文件夹下,每个虚拟机单独的centos-VAGRANTSLASH-7\2004.01\virtualbox目录中Vagrantfile文件,如下图:
将外部挂在目录改为我们新建的空的文件夹。
另外vagrant的安装目录中/embedded/gems/2.2.5/gems/vagrant-2.2.5/lib/vagrant/util/io.rb
找到32行注释掉修改为:data << io.readpartial(READ_CHUNK_SIZE).encode(‘UTF-8’, invalid: :replace, undef: :replace, replace: ‘?’)
如下图:
然后cmd中vagrant reload即可修改虚拟机的挂载目录,节省磁盘空间
参考文章:
https://www.codenong.com/cs106210459/
https://www.cnblogs.com/nio-nio/p/13616415.html
https://www.shuzhiduo.com/A/8Bz8Q33VJx/