Posted by:
努力记

努力记,通过记录,计划,让自己的努力可以触碰彩虹!

2,941

Vagrant:跨平台开发环境

  • 2014-06-13
  • 暂无评论
Vagrant 是一款虚拟机管理工具,用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用
可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员。成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行,非常霸气。
目前的SAE及BAE(Paas)环境的本地开发环境搭建都是基于vagrant的基础上实现的
Vagrant支持VirtualBox(免费的虚拟机软件,跨平台),也支持VMware和AWS等
下载官方提供的基础镜像:http://www.vagrantbox.es/
基本环境搭建:
$ vagrant box add test precise64.box
$ vagrant init test # 可以切换到工作目录进行初始化 cd ~/work,默认会建立工作目录与虚拟机目录的映射
会在当前目录下生成vagrantfile,是vagrant的配置文件,目录映射,网络状态等设置
$ vagrant up # 启动环境
 
$ vagrant ssh # 进行ssh登录
$ cd /vagrant # 切换到开发目录,也就是刚刚init对应的工作目录
 
当在虚拟机中建立好开发环境后,可以通过打包该环境给其他开发人员使用统一的测试环境
$ vagrant package # 会在当前目录生成一个package.box文件
 
Vagrant有3种关闭方式:
  • $ vagrant suspend #将虚拟机挂起,虚拟机内存都保存到硬盘上,下次可以快速恢复。
  • $ vagrant halt #将虚拟机关闭,虚拟机内存释放,下次启动要慢一点。
  • $ vagrant destroy #将虚拟机删除,所有变更都丢失,下次启动要重新克隆一个 Vagrant box。
无论哪种方式都是通过
$ vagrant up启动
 
建立默认的目录映射:
既然是开发环境,那么开发工作肯定还是在本地完成,只是服务测试环境在虚拟机中实现,所以使用目录映射功能,将本地的目录映射到虚拟机的对应目录
在虚拟机中通过软连接实现
$ ln -fs /wwwroot /var/www
在配置文件vagrantfile中
config.vm.synced_folder "/wwwroot", "/var/www"
 
Vagrant的3种网络访问方式
  • Forwarded port:将虚拟机的某个端口绑定到本机端口
    config.vm.network :forwarded_port, guest: 80, host:8080  # guest:80 虚拟机端口,host 8080 本机端口
  • Private networks:分配给虚拟机一个私有ip,这样可以在本机上访问虚拟机的所有端口
    config.vm.network :private_network, ip: "192.168.1.100" # ip表示虚拟机的IP,如果需要多台虚拟机互访,则需要设置相同网段
  • Public networks:让虚拟机波路在真实的网络中,跟本机同等
    config.vm.network :public_network # 可以当作局域网中的一台计算机,如通过DHCP设置等
如果用来做为开发环境,则使用private相当合适,设定好本地host,基本可以实现到相同的环境
 
注:Vagrant启动的是完整的虚拟机,并不限定用来做什么
 
除了开发环境还能做什么:
Vagrant相当于一套使用命令的虚拟机建立操作,并提供了镜像的打包操作,可以简化环境搭建的过程
通过使用自动化运维工具可以将环境搭建自动化处理,非常方便
 
高楼大厦就是通过不断的添砖加瓦一层层搭建的,完整的自动化运维得以实现,再配合现在云计算思想,无疑将运维推向了一个新的方向

 



back up ↑

无觅相关文章插件,快速提升流量