本地开发环境搭建利器 --vagrant
遇到的问题
笔者需要部署一个 etcd 集群,并非使用 goreman 工具部署的伪集群。为了与真实环境对等,需要用到三台机器,然而笔者手上只有一台主机,Centos 系统,配置为 8G 双核。由此想到在单机 Centos 再启动虚拟机的想法。
环境准备
vagrant 的使用需要结合 VirtualBox,我们我们准备这两个软件的安装源,以及用到的 centos7 镜像:
笔者下载的是最新的版本,官网的下载速度实在慢(有需要可以联系笔者获取下载好的安装包),文件如下:
安装
如上的命令,即安装好 vagrant 和 VirtualBox。
初始化
vagrant 的常用命令如下,用于管理boxes的命令,比如添加、删除等等。此命令的功能主要通过以下子命令完成:
初始化的步骤,会生成一个 Vagrantfile,即配置文件。
Vagrantfile 配置
常用的配置如下所示:
config.vm.box:该名称是再使用 vagrant init 中后面跟的名字
config.vm.hostname:配置虚拟机主机名
config.vm.network:这是配置虚拟机网络,由于比较复杂,我们其后单独讨论
config.vm.synced_folder:除了默认的目录绑定外,还可以手动指定绑定
config.ssh.username:默认的用户是vagrant,从官方下载的box往往使用的是这个用户名。如果是自定制的box,所使用的用户名可能会有所不同,通过这个配置设定所用的用户名。
config.vm.provision:我们可以通过这个配置在虚拟机第一次启动的时候进行一些安装配置
还有更详细的配置,参见:https://www.vagrantup.com/docs/vagrantfile/。笔者使用的配置如下:
可以看到,配置比较简单,使用桥接的方式指定了网络,设置关闭 gui,并限制内存为 1GB。
启动
参考,[virtualbox-is-complaining-that-the-kernel-module-is-not-loaded](https://unix.stackexchange.com/questions/361617/virtualbox-is-complaining-that-the-kernel-module-is-not-loaded)。原因是 vagrant 依赖 kernel-devel gcc make perl, 启动 kernel-devel ,最好按照 vagrant 的提示进行安装和正在使用内核版本一直的库。
通过uname查看内核版本:
因此我们需要安装相应的包:
在官网下载了对应的包,并安装。启动 vagrant:
大功告成!
推荐阅读
[面试合集](http://blueskykong.com/categories/%E9%9D%A2%E8%AF%95%E5%9F%BA%E7%A1%80/)
参考
[Vagrant的配置文件Vagrantfile详解-2
](https://www.jianshu.com/p/44d9b8a3f1e7)
[如何处理VirtualBox启动错误消息:The vboxdrv kernel module is not loaded
](https://yq.aliyun.com/articles/653226)
[virtualbox-is-complaining-that-the-kernel-module-is-not-loaded](https://unix.stackexchange.com/questions/361617/virtualbox-is-complaining-that-the-kernel-module-is-not-loaded)
[www.vagrantup.com](https://www.vagrantup.com/docs/vagrantfile/)
版权声明: 本文为 InfoQ 作者【aoho】的原创文章。
原文链接:【http://xie.infoq.cn/article/fd47136401f2740c6ef7941c1】。文章转载请联系作者。
评论 (1 条评论)