使用Vagrant 构建开发环境

最近vagrant比较流行,它的主要作用简言之就是打包一份已经装好的系统,打包好的系统在各平台通用。特别是对于一个比较复杂的开发环境,新换一台电脑,新换一个工作,必须在重新搭建环境,这种事情搞起来还是比较费时间的,比如PHP开发所用的LAMP环境(我平时都装LANMP – Apache+Nginx+MySQL+PHP),还有Redis,MongoDB,RabbitMQ这些扩展的东东,虽然自己有完全的文档,但是多年搞下来也成一个体力活儿了。这样vagrant对我的优势简直不言而愉了。可以将一个已经打包好的系统给你,你可以和我有完全相当的开发环境。节省时间,提升效率

废话不多说了,接下来开始使用这个vagrant

安装软件的事情就不??铝耍?agrant+virtualbox),闭眼下一步就行
下载一个box镜像(直接找个镜像下载就行)

上面那两步完成以后,让我们来添加一个叫lamp的box

添加一个叫lamp的虚拟机(MAC OS X环境)

PHP

vagrant box remove lamp
mkdir  lamp
cd lamp
vagrant box add lamp ~/dev/ubuntu-14.04-amd64.box
vagrant init

1
2
3
4
5
6
vagrant box remove lamp
mkdir  lamp
cd lamp
vagrant box add lamp ~/dev/ubuntu-14.04-amd64.box
vagrant init
 
vi Vagrantfile 编辑配置文件,加入以下内容,在初始化的时候会用到

在这里介绍一下网络配置,一般情况单机开发用私有网络,只有自己可以访问这个IP,但是这个IP还可以联互联网,满足了我们大部分人的需求
PHP

config.vm.box = "lamp"
config.vm.hostname = "lamp"
config.vm.network "private_network", ip: "192.168.8.10"

1
2
3
4
config.vm.box = "lamp"
config.vm.hostname = "lamp"
config.vm.network "private_network", ip: "192.168.8.10"
 
vagrant ssh

vagrant package lamp –output D:/vagrant/lamp.box

———————————–分割线下面是一些命令————————————

PHP

vagrant box add lamp ~/dev/ubuntu-14.04-amd64.box #添加虚拟机 lamp
vagrant box list #列出所有虚拟机
vagrant box remove “web" #删除虚拟机web

vagrant init  # 初始化
vagrant up  # 启动虚拟机
vagrant halt  # 关闭虚拟机
vagrant reload  # 重启虚拟机
vagrant ssh  # SSH 至虚拟机
vagrant status  # 查看虚拟机运行状态
vagrant destroy  # 销毁当前虚拟机

注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:
[centos]
sudo rm -f /etc/udev/rule.d/70-persistent-net.rules
[ubuntu]
sudo vim /etc/interface

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
vagrant box add lamp ~/dev/ubuntu-14.04-amd64.box #添加虚拟机 lamp
vagrant box list #列出所有虚拟机
vagrant box remove “web" #删除虚拟机web
 
vagrant init  # 初始化
vagrant up  # 启动虚拟机
vagrant halt  # 关闭虚拟机
vagrant reload  # 重启虚拟机
vagrant ssh  # SSH 至虚拟机
vagrant status  # 查看虚拟机运行状态
vagrant destroy  # 销毁当前虚拟机
 
注:如果网络模式中使用 private_network 的话,在打包之前需要清除一下private_network的设置,避免不必要的错误:
[centos]
sudo rm -f /etc/udev/rule.d/70-persistent-net.rules
[ubuntu]
sudo vim /etc/interface
 
———————————–分割线下面是在windows下实际操作————————————

PHP

PS D:\vagrant> ls

    目录: D:\vagrant

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         2016/3/8     17:08             19 p.php
-a----         2016/3/9     13:10      436951040 trusty-server-cloudimg-amd64-vagrant-disk1.box
-a----         2016/3/9     21:15     1220018733 ubuntu-14.04-amd64.box
-a----        2016/3/10      8:52           3180 Vagrantfile

PS D:\vagrant> vagrant box add lamp D:\vagrant\ubuntu-14.04-amd64.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'lamp' (v0) for provider:
    box: Unpacking necessary files from: file://D:/vagrant/ubuntu-14.04-amd64.box
    box: Progress: 100% (Rate: 42.3M/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'lamp' (v0) for 'virtualbox'!
PS D:\vagrant> vagrant box list
lamp (virtualbox, 0)
PS D:\vagrant> vagrant init lamp
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.
#########################在此处有编辑配置文件的操作#############################
PS D:\vagrant> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'lamp'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant_default_1457571466457_85328
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
    default: Adapter 3: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2200
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 4.3.36
    default: VirtualBox Version: 5.0
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => D:/vagrant
PS D:\vagrant>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
PS D:\vagrant> ls
 
 
    目录: D:\vagrant
 
 
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         2016/3/8     17:08             19 p.php
-a----         2016/3/9     13:10      436951040 trusty-server-cloudimg-amd64-vagrant-disk1.box
-a----         2016/3/9     21:15     1220018733 ubuntu-14.04-amd64.box
-a----        2016/3/10      8:52           3180 Vagrantfile
 
 
PS D:\vagrant> vagrant box add lamp D:\vagrant\ubuntu-14.04-amd64.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'lamp' (v0) for provider:
    box: Unpacking necessary files from: file://D:/vagrant/ubuntu-14.04-amd64.box
    box: Progress: 100% (Rate: 42.3M/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'lamp' (v0) for 'virtualbox'!
PS D:\vagrant> vagrant box list
lamp (virtualbox, 0)
PS D:\vagrant> vagrant init lamp
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.
#########################在此处有编辑配置文件的操作#############################
PS D:\vagrant> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'lamp'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant_default_1457571466457_85328
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
    default: Adapter 3: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2200
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 4.3.36
    default: VirtualBox Version: 5.0
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => D:/vagrant
PS D:\vagrant>
 
用xshell来连接vagrant

时间: 2024-10-10 01:25:27

使用Vagrant 构建开发环境的相关文章

Dreamweaver如何构建开发环境

在开发网站,特别是开发网络数据库之前,首先应该认真构建好 Dreamweaver MX 2004+ASP.NET 开发环境.本例将向读者介绍如何在 Windows XP SP2 操作系统下构建开发环境. 操作步骤 ( 1 )单击[开始]→[控制面板],如图 1-1 所示. 图 1-1 打开控制面板 ( 2 )在弹出的[控制面板]窗口中双击[添加或删除程序]按钮图标,在弹出的[添加或删除程序]对话框中选择安装 IIS 服务器,如图 1-2 所示.   ( 3 )安装好 IIS 服务器后,在[控制面

《iOS9开发快速入门》——第1章,第1.2节构建开发环境—Xcode 7.0

1.2 构建开发环境-Xcode 7.0iOS9开发快速入门苹果公司在发布了最新的 iOS 9 系统后,又发布了最新的 Xcode 7.0.本节将主要讲解Xcode 7.0的安装.苹果账号的绑定和更新文件/组件等相关方面的内容. 1.2.1 安装Xcode 7.0Xcode 7.0可以从应用商店直接下载,并自动安装到计算机上.但是由于Xcode 7.0较大,直接从应用商店下载需要很长的时间.所以,很多时候大家都是从其他途径下载.这个时候,就需要手动进行安装.安装过程如下: (1)双击下载的Xco

Dreamweaver构建Blog(2)-构建开发环境

dreamweaver Doking's BLOG开发环境的构建 了解Doking's BLOG功能和开发目的之后,接下来就是构建好开发环境. 2.1  ASP.NET运行环境的构建 在开始开发Doking's BLOG前,应该先构造好开发环境.下面介绍的是在Windows 2000/XP操作系统中的构建方法. 2.1.1 安装IIS服务器 按[开始]→[控制面板]→[安装/删除Windows组件],勾选"安装Internet信息服务组件",如图2-1所示. 图2-1  windows

gstreamer在Ubuntu下构建开发环境

1,Ubuntu已经安装了gstreamer库,因此只需要再安装几个开发库即可,是 libstreamer0.10-0libstreamer0.10-devlibstreamer0.10-0-dbg 在新立得里选中应用即可 2,测试gstreamer开发库 #include <gst/gst.h>int main (int   argc,char *argv[]){    const gchar *nano_str;    guint major, minor, micro, nano;   

在Dreamweaver中构建ASP.net开发环境

asp.net|dreamweaver 在开发网站,特别是开发网络数据库之前,首先应该认真构建好 Dreamweaver MX 2004+ASP.NET 开发环境.本例将向读者介绍如何在 Windows XP 操作系统下构建开发环境. 操作步骤 ( 1 )单击[开始]→[控制面板]. ( 2 )在弹出的[控制面板]窗口中双击[添加或删除程序]按钮图标,在弹出的[添加或删除程序]对话框中选择安装 IIS 服务器. ( 3 )安装好 IIS 服务器后,在[控制面板]窗口中单击管理工具,然后在弹出的[

Spark 1.0 开发环境构建:maven/sbt/idea

因为我原来对maven和sbt都不熟悉,因此使用两种方法都编译了一下.下面记录一下编译时候遇到的问题.然后介绍一下如果使用IntelliJ IDEA 13.1构建开发环境. 首先准备java环境和scala环境: 1. jdk 1.7 2. scala 2.11.1 1. maven 首先安装maven,我安装的是3.2.3, 可以直接下载binary.解压即可用.需要设置一下环境变量: export MAVEN_HOME=/project/spark_maven/spark/apache-ma

新手学Linux(二)----使用 Vagrant 打造跨平台开发环境(一)

前言 什么是Vagrant Vagrant能做什么 尽可能避免Work on my machine错误 缩短搭建开发环境的时间 Vagrant的主要使用者 前言     做Web开发少不了要在本地搭建好开发环境,虽然说目前各种脚本都有对应的Windows版,甚至是一键安装包,但很多时候和Windows环境的相性并不是那么好,各麻烦的问题是实际部署的环境通常是Linux,常常还要面临着开发和部署环境不一致,上线前还要大量的调试.更要命的是,如果有很多机器需要装的话,那就真是一个灾难了. 什么是Va

搭建Cocos2d-JS开发环境

使用Cocos2d-JS引擎开发游戏,主要的程序代码是JavaScript语言,因此,凡是能够开发JavaScript语言工具都适用于Cocos2d-JS游戏开发.本书我们推荐WebStorm和Cocos Code IDE工具. 搭建WebStorm开发环境我们在以往使用了WebStorm开发工具,它是非常优秀的JavaScript开发工具,WebStorm工具可以开发和调试基于Cocos2d-JS引擎的JavaScript程序代码,但是测试和调试时候只能运行在Web浏览器上.WebStorm安

搭建Cocos Code IDE开发环境

Cocos Code IDE是Cocos2d-x团队开发的,用于开发Cocos2d-JS和Cocos2d-x Lua绑定的游戏工具,它是基于Eclipse[ Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境.幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK).--引自于百度百科 http://baike.baidu.com/subview/