• Home
  • About
    • wanziの遇笺 photo

      wanziの遇笺

      一点随笔,一丝感悟,一些记录,一种成长。

    • Learn More
    • Instagram
    • Github
  • Archive
  • Category
  • Tag

Vagrant

21 Nov 2015

Reading time ~1 minute

一、Vagrant的认识

  Vagrant 是一款用来构建虚拟开发环境的工具,它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统。

Vagrant的作用:

  1. 统一开发环境。一次配置打包,统一分发给团队成员,统一团队开发环境,解决诸如”编码问题”,”缺少模块”,”配置文件不同”带来的问题;
  2. 避免重复搭建开发环境。新员工加入,不用浪费时间搭建开发环境,快速加入开发,减少时间成本的浪费;
  3. 多个相互隔离开发环境。可以在不用box里跑不同的语言,或者编译安装同一语言不同版本,搭建多个相互隔离的开发环境,卸载清除时也很快捷轻松。

二、安装

1、安装 VirtualBox

2、安装 Vagrant

下载地址:http://www.vagrantup.com/downloads

Window下可以使用软件包管理工具chocolate安装,参照https://chocolatey.org/ Mac OSX下可以使用brew安装。

3、安装系统镜像

3.1 通过Vagrant Cloud方式

  • 新建一个文件夹,如AgentBox,然后进入目录
  • 在https://atlas.hashicorp.com/boxes/search?utm_source=vagrantcloud.com&vagrantcloud=1上搜索想安装的镜像,找到对应的安装指令,如$ vagrant init ubuntu/precise64; vagrant up --provider virtualbox。 

3.2 通过添加box方式

  • 在http://www.vagrantbox.es/下载镜像。
  • ` $ vagrant box add {title} {url}`
    • 假设我们下载的镜像存放路径是~/box/precise64.box,在终端里输入: $ vagrant box add AgentBox ~/box/precise64.box AgentBox是我们给这个box命的名字,~/box/precise64.box是box 所在路径。
    • box文件也可以是远程地址:vagrant box add AgentBox http://files.vagrantup.com/lucid64.box
  • 初始化开发环境   先进入box里面,然后$ vagrant init AgentBox
  • 启动环境vagrant up

三、常用指令

1、 添加box vagrant box add AgentBox ~/box/precise64.box

box文件也可以是远程地址 base 为默认名称 vagrant box add base http://files.vagrantup.com/lucid64.box

2、vagrant init,初始化

如果你添加的box名称不是base,那么需要在初始化的时候指定名称,例如vagrant init AgentBox

3、vagrant up,启动虚拟机

4、vagrant ssh,ssh到虚拟机

5、vagrant reload,重启虚拟机(重新载入配置文件)

6、vagrant package –base precise64_default_1447845103364_6382 –output precise64.box打包分发

7、vagrant box list

8、vagrant status

四、主要配置

  开发目录下有一个文件Vagrantfile,里面包含有大量的配置信息,主要包括三个方面的配置,虚拟机的配置、SSH配置、Vagrant的一些基础配置。

1、box设置

config.vm.box = "AgentBox"

2、hostname设置

config.vm.hostname = "for_work"

3、虚拟机网络设置

config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "public_network"

4、同步目录

config.vm.synced_folder "../data", "/vagrant_data"

5、端口转发

config.vm.network "forwarded_port", guest: 80, host: 8080

6、内存和cpu核心

config.vm.provider "virtualbox" do |vb|
  #Display the VirtualBox GUI when booting the machine
  vb.gui = true
  #Customize the amount of memory on the VM:
  vb.memory = "1024"
  vb.cpus = 2
  vb.name = "my_vm"
end

参考

  1. GETTING STARTED
  2. Vagrant简介和安装配置
  3. Docker学习总结之Docker与Vagrant之间的特点比较


devopsvagrant Share Tweet +1