原文:http://blog.csdn.net/hel12he/article/details/51069269
一个月没有更新过了。三月份终于把设计模式看完了,自己也写了一些设计模式的基础代码。也用到了几个设计模式到自己的项目中。
今天当然不是来说设计模式的,先说说这段时间学到的一个新东西。vagrant,其实之前在用laravel的时候,就知道了这么个东西,一直觉得xampp挺好呀,干嘛还要费神去搞这么个东西呢?
最近研究了一下,一下子就被其美貌所迷惑,不能自拔,今天先讲讲vagrant的基本知识,后续陆续会更新基于vagrant搭建的php7环境(box我都已经制作好,上传到百度云了,就等分享)、Go环境、Hadoop等。
实际上Vagrant只是一个让你可以方便设置你想要的虚拟机的便携式工具,它底层支持VirtualBox、VMware甚至AWS作为虚拟机系统,本书中我们将使用VirtualBox来进行说明,所以第一步需要先安裝Vagrant和VirtualBox。
安装环境:mac
注:windows环境下,基本一致
安装VirtualBox
直接来到官网 https://www.virtualbox.org/wiki/Downloads 点击下载最新的virtualbox,双击安装,一路傻瓜化完成。
安装Vagrant
网上有说什么使用gem命令来安装的,建议大家别进这个坑了,直接到官网 https://www.vagrantup.com/downloads.html 下载最新的vagrant,然后双击安装,也是一路傻瓜化,就不说。
在windows下安装vagrant,为了写入相应配置到环境变量,可能会要求重新启动一下系统。
如何配置Vagrant
下载一个合适的box
进行完以上步骤后,就需要考虑我们的虚拟机需要使用什么操作系统了,我这里会以CentOs7.0为例。在以前使用vm的过程中,我们需要自己去下载镜像,然后进行相关的安装,设置系统等等操作。而vagrant的开源社区,提供了很多已经打包好的操作系统,在vagrant的世界里被称为box。在http://www.vagrantbox.es/ 这里你可以找到你想要的操作系统box,当然你也可以自己制作一个。后续教程会讲到,这里就不多说。
完成一个box的安装
我的开发机是Mac,所以我建立了如下的开发环境目录:
$ /Users/helei/vagrant
$ cd /Users/helei/vagrant
本来,vagrant提供的在线安装,非常便利,但是无奈我国有非常NB的gfw,我为了速度,就先FQ出去把box下载到本地,然后再进行安装。
box链接:https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
$ vagrant box add {title} {url}
$ vagrant init {title}
$ vagrant up
vagrant box add 是添加box的命令
其中{title}可以自行设置,我这里使用的是 centos7 ,{url}是下载到本地box路径。我的路径是:/Users/helei/vagrant/centos-7.0-x86_64.box
下面把一些命令执行后的输出进行展示,方便大家比对:
# 安装box
$ vagrant box add CentOs7 /Users/helei/vagrant/centos-7.0-x86_64.box
输出内容:
Downloading or copying the box...
Extracting box...te: 47.5M/s, Estimated time remaining: --:--:--)
Successfully added box 'base' with provider 'virtualbox'!
box中的镜像文件被放到了:/Users/helei/.vagrant.d/boxes/,如果在window系统中应该是放到了: C:\Users\当前用户名.vagrant.d\boxes\目录下。
# 如果是才add 的box,就必须执行本步骤,初始化一次后,以后启动系统,就不需要执行本步骤。
$ vagrant init CentOs7
输出内容:
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.
这样就会在当前目录生成一个 Vagrantfile的文件,里面有很多配置信息,后面我在慢慢说,默认不做任何配置改动,也是可以启动系统的。
# 启动系统
$ vagrant up
输出内容:
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'base'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
...
ssh链接到安装的虚拟机
经过以上操作后,完成了虚拟机的安装,现在需要登录上虚拟机,进行操作。链接很简单,可以使用第三方(xshell等)shell工具或系统自带的,进行登录
在系统中,如mac,可直接使用 vagrant ssh
来完成链接。或者使用第三方如xshell,ip地址是:localhost,端口,需要观察,映射的22端口是多少。一般是2200 或者2222
用户名与密码均是: vagrant
【补充】使用windows的SecureCRT客户端登录上去以后,发现语言是德语,修改为英文的方式如下:
给 /etc/profile 文件最后面添加如下内容:export LANG='en_US.UTF-8'
然后 source /etc/profile
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的所有环境状态 |
下一篇,主要讲vagrant的配置,已经如果通过配置文件,实现多台虚拟机的启动,可以用这种方式搭建hadoop的环境额。