原文: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的环境额。

 
 

vagrant系列教程(一):vagrant的安装与初识(转)的更多相关文章

  1. python基础系列教程——Python库的安装与卸载

    python基础系列教程——Python库的安装与卸载 2.1 Python库的安装 window下python2.python3安装包的方法 2.1.1在线安装 安装好python.设置好环境变量后 ...

  2. 史上最详细的Android Studio系列教程一--下载和安装

    链接地址:http://segmentfault.com/a/1190000002401964#articleHeader4 原文链接:http://stormzhang.com/devtools/2 ...

  3. vagrant系列教程(三):vagrant搭建的php7环境(转)

    原文:http://blog.csdn.net/hel12he/article/details/51107236 前面已经把vagrant的基础知识已经基本过了一遍 了,相信只要按着教程来,你已经搭建 ...

  4. vagrant系列教程(二):vagrant的配置文件vagrantfile详解(转)

    原文:http://blog.csdn.net/hel12he/article/details/51089774 上一篇文章完整的讲叙了如何安装一个vagrant的环境.这里主要说一说vagrant的 ...

  5. vagrant系列教程(四):vagrant搭建redis与redis的监控程序redis-stat(转)

    上一篇php7环境的搭建 真是火爆,仅仅两天时间,就破了我之前swagger系列的一片文章,看来,大家对搭建环境真是情有独钟. 为了访问量,我今天再来一篇Redis的搭建.当然不能仅仅是redis的搭 ...

  6. vagrant系列三:vagrant搭建的php7环境

    原文:https://blog.csdn.net/hel12he/article/details/51107236 前面已经把vagrant的基础知识已经基本过了一遍 了,相信只要按着教程来,你已经搭 ...

  7. Tkinter系列教程01—引言和安装Tk—Python GUI编程

    目录 Tkinter教程系列01--引言和安装Tk 引言 什么是Tkinter 安装 Tk 为 Windows 安装 Tk 验证是否安装正确 为 GNU/Linux 安装 Tk 使用 Linux 的包 ...

  8. Android Studio系列教程一--下载和安装

    原文链接:http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1/ 背景 相信大家对Android Studio已经不陌生 ...

  9. Android Studio系列教程一--下载与安装

    背景 相信大家对Android Studio已经不陌生了,Android Studio是Google于2013 I/O大会针对Android开发推出的新的开发工具,目前很多开源项目都已经在采用,Goo ...

随机推荐

  1. Java数据结构和算法(十三)——哈希表

    Hash表也称散列表,也有直接译作哈希表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构.它基于数组,通过把关键字映射到数组的某个下标来加快查找速度,但是又和数组.链表 ...

  2. destoon各栏目调用汇总

    ================================================================== destoon各栏目调用汇总 ================== ...

  3. 使用Flink的SavePoint功能

    Flink通过SavePoint功能可以做到程序升级后,继续从升级前的那个点开始执行计算,保证数据不中断. Flink中CheckPoint用于保存状态,是自动执行的,SavePoint是指向Chec ...

  4. myeclipse10不用打开myeclipse configuration center安装插件的方法

    我使用myeclipse10,网上找了一大堆的插件安装方法,全部都是要通过help->myeclipse configuration center进行安装 不用打开myeclipse  conf ...

  5. .net 和 core2.0 数据库连接字符串

    Asp.net Core 数据库离线文件的连接(引自“张不水”兄的研究成果.) 一.绝对路径: "DefaultConnection": "Data Source=(lo ...

  6. express官网学习笔记

    npm init 创建一个package.json npm install express --save-dev 安装到项目依赖 便于多人开发 路由结构定义 app.METHOD(PATH, HAND ...

  7. python_如何设置文件缓冲类型

    案例: 将文件内容写入到硬件设备时候,使用系统调用,这类IO操作时间长,为了减小IO操作,通常会使用缓冲区(有足够多数据才能调用). 文件缓冲行为分为:全缓冲,行缓冲,无缓冲 如何解决? open(' ...

  8. logback使用配置详解

    title: logback使用配置详解 date: 2017-04-25 16:42:49 tags: 日志 --- 1.介绍 Logback是由log4j创始人设计的另一个开源日志组件,它当前分为 ...

  9. java事件处理机制

    java中的事件机制的参与者有3种角色:   1.event object:就是事件产生时具体的"事件",用于listener的相应的方法之中,作为参数,一般存在与listerne ...

  10. Servlet--HttpServletRequest接口,HttpServletResponse接口

    HttpServletRequest接口 定义 public interface HttpServletRequest extends ServletRequest; 用来处理一个对 Servlet ...