首先,咱们要知道,咱们使用html
vagrant init centos/7 vagrant up
会有下面的问题:git
Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. For context, the command attempted was: mount -t vboxsf -o uid=1000,gid=1000 home_vagrant_labs /home/vagrant/labs The error output from the command was: /sbin/mount.vboxsf: mounting failed with the error: No such device
由于没有在 vagrant box
中安装 VBoxGuestAdditions
( centos/7 base box
就没装,不怪大家)
虚拟机安装VBoxAdditions加强功能,该功能有以下做用:github
如何安装?shell
vagrant plugin install vagrant-vbguest vagrant reload --provision
这个插件的做用,就是自动给你的box
装个 VBoxGuestAdditions
。全自动,很是好用。可是我就是不想安装。。。
友情提示: 小白用户,就用这个就行了centos
vagrant up
Devices
选择最下面的 Insert Guest Additions CD image
(放心吧,通常都会失败,怎么从新安装都没用,我也不知道缘由,这是为了让你知道有这么个方式)Box
要求Centos/7
, 使用Ubuntu
的小伙伴不要慌,官方对大家不要太偏爱(来点这个连接 -> Ubuntu)vagrant up
vagrant ssh
(别管挂载报错)sudo yum update -y
(常规操做)sudo yum install -y dkms binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel
(这个 dkms
yum告诉我没有,也是很气,感兴趣的小伙伴,找到缘由请在评论区讨论一下)curl -O https://download.virtualbox.org/virtualbox/6.0.8/VBoxGuestAdditions_6.0.8.iso
(为啥不用wget
,秉承尽可能少装软件的原则,为啥,应为你总不能每个box
都来一遍吧,你要有本身的 vagrant base box
)sudo mkdir /media/VBoxGuestAdditions
sudo mount -o loop,ro VBoxGuestAdditions_6.0.8.iso /media/VBoxGuestAdditions
sudo sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run --nox11
注意: 按理说,但这个地方应该就能够安装上了,可是,实际状况就是报错,再报错。运维
sudo /sbin/rcvboxadd setup
exit
(退出登陆)vagrant reload --provision
(--provision
可加可不加,看本身状况)vagrant ssh
sudo /sbin/rcvboxadd setup
注意: 说句实话,我也不搞运维,这一堆操做也搞得我头疼,真心但愿有个大神搞定这个:一次不能安装好的问题!ssh
费了老大劲把它给弄好,实在不想再来一遍了!怎么办?咱们制做一下 base box
!
装好以后呢,实验一下是否能挂载上文件,而后登陆到 centos/7
,咱们继续!curl
把以前搞得先干掉oop
sudo umount /media/VBoxGuestAdditions sudo rmdir /media/VBoxGuestAdditions
搞定sshui
cd ~/.ssh/ rm -rf authorized_keys curl -O https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub mv vagrant.pub authorized_keys chmod 600 authorized_keys
history
(我把操做流程记在一个空文档中,可是懒得起名字,不当心随手就该删了,写教程的时候一脸懵逼,我想,在我制做的box
中有没有history
,嘿嘿,还真有!)执行以下命令打包
# 查看你的box名称 vboxmanage list vms vagrant package --base 列出来的名称 --output 指定打包后的存放位置及名称 # 举个例子: vagrant package --base centos_7_swarm-manager_1562576409540_69924 --output /data/download/virtualbox/virtualbox_amor_centos_7_1902.01.box
打完包直接添加 vagrant box
vagrant box add --name xxxxx 你制做的基础box # 举个例子: vagrant box add --name amor/centos /data/download/virtualbox/virtualbox_amor_centos_7_1902.01.box
Vagrantfile
把 box
改为你的 box
名称vagrant up
base box
过上了幸福的生活)忽然你脑子一抽经,误删了你的 base box
,或者你和你大老婆(系统)闹翻了,要干掉它(重装系统),可是你仍是想保留你的 base box
(装系统都没它烦人),怎么办?
vagrant boxx cloud
帐号base box
Ubuntu
的小伙伴,流程和这个差很少,可是官方更负责任点,文档在上面。本身看!