本文在MacBook Air下搭建,中间遇到一些问题,参考了一些其他文章梳理自己的搭建过程。
一、下载安装VirtualBox
下载地址:https://www.virtualbox.org/wiki/Downloads
二、下载安装Vagrant
下载地址:https://www.vagrantup.com/downloads.html
三、下载系统镜像
这里列出了其他的一些镜像,你可以根据你服务器的环境来选择:http://www.vagrantbox.es
本文使用的系统镜像是CentOS 7.0 x64:
https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
四、搭建
- 添加系统镜像到 Vagrant
假设我们下载的镜像存放路径是 ~/Downloads/centos-7.0-x86_64.box,在终端里输入:vagrant box add centos7 ~/Downloads/centos-7.0-x86_64.box
centos7是我给这个box取的名字,你完全可以根据你的习惯来命名。 - 初始化环境
创建一个开发目录(比如:~/vagrant),你也可以使用已有的目录,切换到开发目录里,用 centos7 镜像初始化当前目录的环境:cd ~/vagrant
vagrant init centos7
初始化完成之后,当前目录生成Vagrantfile,这是vagrant的配置文件,可以修改这个配置文件对操作系统进行个性化的定制,比如网络连接方式,共享的目录等。文件中的配置项都有详细的注释。 - 配置vagrant信息
config.vm.network "private_network", ip: "192.168.33.10"
设置虚拟机系统的私有网络地址,vagrant的三种网络连接方式差异请自行谷歌搜索(本文暂没用)。config.vm.synced_folder ".", "/workspace"
设置共享文件,把本文件所在文件夹路径,即~/vagrant 映射成虚拟机操作系统中的/workspace路径。你完全可以根据你的习惯设置共享目录。 - 启动vagrant
vagrant up
此步骤一定要在原目录(本文是~/vagrant)下进行,上命令触发vagrant根据Vagrantfile初始化操作系统 通过SSH连接操作系统
vagrant ssh
补充:
添加box
添加box到本地仓库有三种方式:
1 . 使用http远程添加
vagrant box add my_first_box https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
2 . 使用本地box添加
vagrant box add my_first_box D:/centos-7.0-x86_64.box
3 . 使用中央仓库添加
vagrant box add my_first_box hashicorp/precise64
本文演示的使用第二种本地添加box文件的方式
五、常用命令
- vagrant -v:查看版本;
- vagrant status:查看状态;
- vagrant reload:重启;
- vagrant suspend:将虚拟机挂起,虚拟机内存都保存到硬盘上,下次可以快速恢复;
- vagrant halt:将虚拟机关闭,虚拟机内存释放,下次启动要慢一点;
- vagrant destroy:将虚拟机删除,所有变更都丢失,下次启动要重新克隆一个 Vagrant box;
- vagrant package:当配置好开发环境后,可以打包环境,然后拿到任何地方都能用;
六、问题
本文的安装版本分别为:Vagrant 2.1.1+VirtualBox 5.2.12+CentOS 7.0 x64,发现真实机和虚拟机共享的文件夹资源总失败,查阅了很多文章,找到了针对我的解决方案:
1.进入虚拟机升级:
sudo yum update && sudo yum -y install kernel-headers kernel-devel
2.重启vagrant:
vagrant reload
3.解决
参考:
https://blog.csdn.net/gsls181711/article/details/48133659
https://blog.csdn.net/u010183402/article/details/51930899
https://stackoverflow.com/questions/42074246/vagrant-error-unable-to-mount-virtualbox-shared-folders-guest-additions-vboxs
https://blog.csdn.net/column/details/vagrant-tutorial.html