Vagrant 实战

Vagrant 是一个可创建轻量级、高复用性和便于移植的开发环境的工具。

此文章是作者折腾vagrant的笔记, 希望大家看后,不再去网上搜罗资料, 能顺利搭建vagrant环境。vagrant更新较快, 还建议大家以官网为主。Vagrant官网

面临的问题

  • 开发人员设备不统一, win , Mac , Linux等
  • 开发环境不统一, 各种软件安装、版本和依赖管理困难
  • 没有专业的人员来进行系统管理
  • 换了设备还要折腾新的开发环境

如果你希望本地开发, 同时拥有统一的开发环境, Vagrant 可以帮你搞定。

实战:Windows下,使用Vagrant部署Linux 开发环境

安装VirtualBox

下载 Vagrant

  • 下载安装Windows版
    window版是msi安装文件,直接界面安装即可。
    如果下载centos版本,是rmp包
    rpm -ivh vagrant_1.8.1_x86_64.rpm

安装 Vagrant

mkdir vagrant_getting_started
cd vagrant_getting_started
vagrant init

执行init命令后, 会在当前目录生成一个配置文件 Vagrantfile

添加Vagrantbox

vagrant box add hashicorp/precise64
vagrant up

其中 hashicorp/precise64 是在(https://atlas.hashicorp.com/boxes/search)这里定义的, 会直接从网络下载镜像。

鉴于下载速度极慢,Vagrantbox还可以支持下载好直接本地add.

  • Vagrantbox资源及下载到本地

Vagrantbox镜像网站

  • 安装操作系统镜像, 例如我们下载一个centos镜像

[CentOS 6.5 x86_64](https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box]

从本地添加vbox

mkdir vagrant_getting_started
mkdir vagrant_vbox  #centos65-x86_64-20140116.box 下载到此目录
cd vagrant_getting_started

vagrant box add centos65 vagrant_vbox/centos65-x86_64-20140116.box
vagrant up

其中centos65是我们自定义的vbox镜像命名,vagrant_vbox/centos65-x86_64-20140116.box是vbox下载镜像的本地路径。

查看已经添加的box列表

vagrant box list

centos65 (virtualbox, 0)

说明添加成功。

接下来可以配置Vagrantfile

Vagrant.configure(2) do |config|
    
  #box add 的名字
  config.vm.box = "centos65"
  
  #Vagrant的三种网络配置
  #端口映射(Forwarded port) 把宿主计算机的端口映射到虚拟机的某一个端口上,访问宿主计算机端口时,请求实际是被转发到虚拟机上指定端口的。
  #例如下面的配置,将访问宿主计算机8080端口的请求都转发到虚拟机的80端口上进行处理       #访问localhost:8080,对应访问虚拟机的80端口
  #优点:容易实现外网访问虚拟机
  #缺点:端口比较多时,配置麻烦;不支持在宿主机器上使用小于1024的端口来转发。比如:不能使用SSL的443端口来进行https连接。
  config.vm.network "forwarded_port", guest: 80, host: 8080
  
  #私有网络(Private network) ,只有主机可以访问虚拟机,如果多个虚拟机设定在同一个网段也可以互相访问,当然虚拟机是可以访问外部网络的。
  #优点:安全,只有自己能访问
  #缺点:因为私有的原因,所以团队成员其他人不能和你协作
  config.vm.network "private_network", ip: "192.168.33.10"
  
  #公有网络(Public network) ,虚拟机享受实体机器一样的待遇,一样的网络配置,vagrant1.3版本之后也可以设定静态IP。
  #优点:方便团队协作,别人可以访问你的虚拟机
  #缺点:需要有网络,有路由器分配IP
  config.vm.network "public_network", ip: "192.168.12.253"
  
  
  #设置文件同步,如下 ../www_data 是本地目录, /vagrant_data是虚拟机文件目录
  #两个目录设置为同步,这样就可以直接本地编辑文件,使用虚拟机配置的软件环境了。
  config.vm.synced_folder "../www_data", "/vagrant_data"
  

启动虚拟机

vagrant up

配置ssh 登录

vagrant ssh

执行此命令后,vagrant会生成ssh配置,

hostname: localhost

port:   2222

Connection Type: SSH

User Name:  vagrant

Password:   vagrant

使用ssh 工具 , 如 xshell 即可登录虚拟机

另外,登录到虚拟机如果想使用root,可以配置root密码

sudo passwd root

打包分发

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

vagrant package

打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。

也可以把配置文件打包进box

vagrant package --vagrantfile Vagrantfile

Vagrant 常用命令

Vagrant的命令很多.官网上有 完整的列表, 这里会介绍一些常用的.
vagrant up

vagrant up这会运行基于 Vagrantfile配置文件的vagrant. 我用来启动和重启开发环境.
vagrant suspend

vagrant suspend 这个能暂停当前环境操作. 最好在关机前做好这一步,以防下次开机配置无法恢复.
Starting, Pausing, and Resuming: 启动和重启可以直接使用vagrant up. 所有之前的状态都会被保存起来.
vagrant destroy

vagrant destroy永久性的移除你的虚拟环境.
vagrant reload

vagrant reload 和vagrant reload --provision如果环境挂了,可以重启.如果加了--provision, 就会恢复资料库. 这在使用Cookbooks 或Puppet移除或添加东西时很有效果.
vagrant ssh

vagrant ssh所有公共文件夹中的操作都会同步到虚拟环境,但如果需要直接操作可使用该命令.
vagrant ssh-config

vagrant ssh-config这个显示连接到虚拟环境的所有配置项信息.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容

  • 1,介绍Vagrant 我们做web开发的时候经常要安装各种本地测试环境,比如apache,php,mysql,r...
    meng_philip123阅读 2,424评论 0 12
  • 开发需要在各种系统上进行开发任务,运维则需要在各种系统上学习工具使用。因此,虚拟机恐怕也是 IT 人员最常使用的工...
    李广慧阅读 5,441评论 3 24
  • Vagrant是什么 Vagrant是一个软件,可以自动化虚拟机的安装和配置流程。目前市面上个人PC的主流操作系统...
    北魏企鹅阅读 29,795评论 3 40
  • [Vagrant入门一(转)]阅读目录VirtualBox安装Vagrant安装Vagrant配置links 原文...
    汉相萧何阅读 890评论 0 0
  • —— 顾城 小巷又弯又长 没有门没有窗 我拿把旧钥匙敲着厚厚的墙 这是我读过的最无奈的诗。 一直以来,有个地方你进...
    岚风的叶子阅读 192评论 0 0