Vagrant+virtualbox+centos 搭建linux虚拟机

vagrant

author : huangteng


Ruby写的一个轻巧的构建虚拟环境的工具。就目前而言,我觉得除了Apache
NIFI项目需要外,还有别的两个重要的用途:

  1. 构建一个统一的环境,这个环境也可以是像生产环境的开发环境。这样的好处显而易见,因为我们经常遇到一个问题就是代码在开发环境是OK的,但是一发布就各种问题,通过Vagrant配置一个和生产环境一样的开发环境,我们可以在一个box里开发,通过镜像来传递每个人的代码,更加安全,解决环境问题。

  2. 每个项目都要去搭建环境,每个人的搭建环境水平和认识不一致。通过vagrant搭建一个统一的环境,这些问题就都没有了哦。

Vagrant 安装


Vagrant安装是傻瓜式的,只是win10系统的可能会略坑,现在最新的版本应该是1.9.4,建议下载1.9.1版本的,最新版的我安装的过程中一直会出现Gem的错误,如果对Ruby不是很了解的话,这种错误是很难搞定的,最好的办法还是换一个版本一直next就行。
安装完成后,在cmd运行vagrant,出现–help信息就说明你搞定安装了。

Centos-7.0-x86_64.box


这是一些大牛自己写的box,直接在网上下载来就行。我使用的是centos7,你也可以用ubatu等。

Xshell 5


shell命令工具,我推荐使用这个,当然你可以选中任意你喜欢的。

Vagrant+VirtualBox+Centos-7.0-x86_64.box

搭建一个linux的虚拟机环境步骤:
cd到一个文件夹;

添加box;title是虚拟机的别名,boxUrl是.box文件的地址
1. vagrant box add {title} {boxUrl}

初始化
2. vagrant init {title}

启动
3. vagrant up

这个时候在你的文件夹下就会有一个box的配置文件Vagrantfile
现在就需要通过Vagrantfile文件来设置网络链接方式,设置完成之后
执行一下vagrant reload重启一下。

上述网络设置解析

  1. Forwarded port–端口映射

语法:

config.vm.forwarded_port 80, 8080
UDP:
config.vm.forwarded_port 80, 8080, protocol: "udp"

其实这种设置很好理解,就是物理机的8080端口实际映射了虚拟机的80端口,访问8080实际都是转发给了虚拟机的80端口。默认是TCP协议,如果采用UDP协议需要单独声明协议的内容。
这样的配置问题就是很多端口的时候映射就多了,这就是个麻烦事情了。这样设置之后不能支持在宿主机器上采用小于1024的端口转发,这样ssl(443)进行https链接就不可以用了

  1. Private network–私有网络

语法:

config.vm.network "private_network", ip: "192.168.50.4"

这个也很简单,就是只有主机可以访问虚拟机,别的都不可以,这样的缺点就是明显不能实现前边说的在同一环境中进行团队开发。里面的ip是虚拟机的ip,可以通过Xshell设置连接,需要的密码默认都是vagrant,需要的key的地址之类的,你执行一下vagrant ssh就可以看到了哦。

  1. Pulic network–公有网络

语法:

公共地址 DHCP获取时会自动分配一个地址
config.vm.network "public_network"
config.vm.network "public_network", ip: "192.168.1.120"
设置桥接的网卡:
config.vm.network "public_network", :bridge => 'en1: Wi-Fi (AirPort)'

其实用法和私有网络差不多,可以设置桥接的网卡,团队可以协作开发,唯一的痛点就是必须要有网络才行。
其实可以理解成为这样设置之后虚拟机就是和你的主机平行的,都在一个网络上,是平行的独立的两台电脑一样。

设置好网络之后通过Xshell建立连接,就ok了。环境就搭建好了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章