vagrant 安装

Vagrant是一款用来构建虚拟开发环境的外挂工具,能够简化虚拟机配置和管理。它底层支持VirtualBox、VMware、AWS等,很是适合使用php/python/ruby/java语言开发web应用,“代码在我机子上运行没有问题”这种说辞将成为历史。html

1. 安装VirtualBox

去官网 https://www.virtualbox.org/wiki/Downloads 下载最新版的Virtualbox,而后双击安装,一直点击确认完成。java

2. 安装Vagrant

去官网 https://www.vagrantup.com/downloads.html 下载最新版的Vagrant,而后双击安装,一直点击确认完成。在windows下安装vagrant,为了写入相应配置到环境变量,系统可能会要求从新启动。在命令行中,输入vagrant,查看程序是否是已经运行了。若是不行,请检查一下$PATH里面是否包含vagrant所在的路径
[TOC]python

add box的时候默认保存在C盘用户文件夹 C:\Users\xxx.vagrant.d,经过设置VAGRANT_HOME环境变量改变默认位置linux

WIN

setx VAGRANT_HOME "X:/your/path" 
setx VAGRANT_HOME "X:/your/path" /M (系统变量)

Linux

export VAGRANT_HOME='/path/to/vagrant_home'

参考

3. Vagrant命令详解

命令 做用
vagrant box add 添加box的操做
vagrant init 初始化box的操做,会生成vagrant的配置文件Vagrantfile
vagrant up 启动本地环境
vagrant ssh 经过ssh登陆本地环境所在虚拟机
vagrant halt 关闭本地环境
vagrant suspend 暂停本地环境
vagrant resume 恢复本地环境
vagrant reload 修改了Vagrantfile后,使之生效(至关于先 halt,再 up)
vagrant destroy 完全移除本地环境
vagrant box list 显示当前已经添加的box列表
vagrant box remove 删除相应的box
vagrant package 打包命令,能够把当前的运行的虚拟机环境进行打包
vagrant plugin 用于安装卸载插件
vagrant status 获取当前虚拟机的状态
vagrant global-status 显示当前用户Vagrant的全部环境状态

4. 使用Vagrant安装配置虚拟机

4.1 box是什么?

接下来,咱们须要选择使用何种操做系统,这里以centos7.2为例。之前基于虚拟机的工做流,咱们须要下载ISO镜像,安装系统,设置系统等操做。而Vagrant开源社区提供了许多已经打包好的操做系统,咱们称之为box。你能够从box下载地址(下文列出),找到你想要的box,固然你也能够本身制做一个。git

4.2 如何安装一个box?

咱们须要创建本身的开发环境目录:es6

$ mkdir -p /Users/jackyue/data/vagrant/centos7

$ cd /Users/jackyue/data/vagrant/centos7

Vagrant提供在线安装服务,很是方便,但因为伟大的GFW,咱们须要先FQ把box下载到本地,而后导入安装。box连接:https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.boxgithub

如下是导入安装说明:web

$ vagrant box add {title} {url}

$ vagrant init {title}

$ vagrant up

vagrant box add是添加box的命令,{title}是之后建立虚拟机的别名,{url}是下载到本地box的路径,也能够是服务器端的URL。ubuntu

说明:将box镜像添加到本地仓库,有三种方式:

  • 使用http绝对地址
vagrant box add precises64 http://files.vagrantup.com/precise64.box
  • 使用本地文件(从协议来讲,和上面同样,至关于file:///协议的地址)
vagrant box add precises64 ./precise64.box
  • 使用仓库名称
vagrant box add precises64 ubuntu/precise64

这种方式,vagrant会自动在中央仓库查找镜像,并下载到本地镜像库中。

vagrant box add ubuntu/precise64

省略本地镜像名称,则直接用中央仓库中的镜像名做为本地镜像名,这样作的好处是能够跟仓库中的镜像对应。

4.3 安装centos7 box

$ cd /Users/jackyue/data/vagrant/centos7     //找到一个目录,做为初始化目录

$ vagrant box add centos7 /Users/jackyue/data/vagrant/centos/centos-7.0-x86_64.box       //建议采起离线安装,这样有利于放置虚拟机文件到指定路径

==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos7' (v0) for provider: 
    box: Unpacking necessary files from: file:///Users/jackyue/data/vagrant/vagrant-centos-7.2.box
==> box: Successfully added box 'centos7' (v0) for 'virtualbox'!

box中的镜像文件被放到了/Users/jackyue/data/vagrant/.vagrant/machines/之下

4.4初始化镜像

$ vagrant init centos7

//若是是新添加的box,必须执行本步骤,初始化一次以后,就不须要再执行本步骤

A `Vagrantfile` has been placed in this directory.
You are now ready to `vagrant up` your first virtual environment!
Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.

初始化成功后,vagrant会在当前的初始化目录生成一个Vagrantfile配置文件,咱们能够修改它,进行个性化定制。在下一篇文章中,咱们会具体讲解关于Vagrantfile的配置。对于Vagrantfile文件,咱们能够直接编写,或者从网络上拉取Vagrantfile文件后,做为虚拟机配置文件,以下:

$ mkdir -p ~/vm/coreos

$ cd ~/vm/coreos

$ git clone https://github.com/coreos/coreos-vagrant.git

4.5 启动系统

$ vagrant up 

// 第一次开启的时候,建议一台一台地开启,这样的话方便记录映射的本地端口号

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos7_default_1493108555390_12825
==> default: Clearing any previously set network interfaces...

4.6 SSH链接安装的虚拟机

通过以上操做后,咱们完成了centos7虚拟机的安装,如今须要登陆虚拟机,进行操做,有如下三种方式:

在开发环境的目录(有Vagrantfile的地方),登陆虚拟机

$ vagrant ssh
  • 使用第三方工具,如secureCRT)或系统ssh命令进行登陆,IP为Vagrantfile中指定的hostonly地址,用户名与密码默认都是vagrant
  • 在宿主机的命令行,ssh到本地端口的方式登陆。观察客户机的22端口映射到宿主机的是多少,通常是2200或者2222,用户名与密码默认都是vagrant
$ ssh -p 2222 127.0.0.1

5. 打包分发

当你配置好开发环境后,退出并关闭虚拟机。在终端里,对虚拟机打包

# vagrant halt         // 在开发环境的目录,关闭centos7

# vagrant status       // 确认centos7关机

# vagrant package centos7 --output  centos7.box  --vagrantfile Vagrantfile

// --output NAME:(可选)设置经过NAME来指定输出的文件名;--vagrantfile FILE:(可选)将Vagrantfile直接封进box中

注:若是网络模式中使用private_network的话,在打包以前须要清除一下private_network的设置,避免没必要要的错误:rm -f /etc/udev/rule.d/70-persistent-net.rules

打包完成后会在当前目录生成一个centos7.box的文件,将这个文件分发给其余用户(开发者)。

其余用户只要添加这个 box ,并用其初始化本身的开发目录,就能获得一个如出一辙的开发环境了。

# vagrant box add centos7 centos7.box       

//添加package.box,镜像命名为centos7

$ vagrant init centos7      

// 初始化centos7镜像

$ vagrant up
相关文章
相关标签/搜索