搭建vagrant

Vagrant是一个基于Ruby的工具,用于建立和部署虚拟化开发环境。php

 

详细操做步骤:html

工具及环境介绍:linux

工具及环境ios

版本nginx

下载地址redis

宿主机环境shell

win7 x64 旗舰版centos

http://msdn.itellyou.cn/缓存

VirtualBoxtomcat

VirtualBox-4.3.12-93733-Win

https://www.virtualbox.org/

vagrant

vagrant_1.6.3

http://www.vagrantup.com/

box

CentOS-6.3-x86_64-minimal.box

http://www.vagrantup.com/

xshell

xshell_4.0.0131.1397032097

http://www.netsarang.com/download/main.html

 

一、安装VirtualBox

下载地址:https://www.virtualbox.org/wiki/Downloads

VirtualBox 开源免费的,虽然 Vagrant 也支持 VMware,不过 VMware 是收费的,对应的 Vagrant 版本也是收费的

 

二、安装vagrant

    下载地址:http://downloads.vagrantup.com/ 根据提示一步步安装。

 

三、下载box

    下载官方封装好的基础镜像:

Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box

Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box

若是你要其余系统的镜像,能够来这里下载:http://www.vagrantbox.es/

 

注:vagrant使用该镜像来快速克隆出虚拟机

 

四、安装xshell

 

五、正式开始进行操做~

 

  • 新建一个工做目录

D盘的 D:\Myvagrant, cmd进入到此目录

 

  • 添加镜像到vagrant

假设咱们上面下载的镜像box放在 D:\Myvagrant\box\precise64.box 路径下

Note: 导入box的默认指令 vagrant box add name(给box自定义一个名) path

 

导入box: vagrant box add mybox ./box/precise64.box

 

注:mybox 是咱们给这个镜像命的一个名字,在配置文件中会vagrantfile会用到此名字,

如:config.vm.box = "mybox" ,这里的名字必定要对,不然没法启动

能够经过命令: vagrant box list 查看咱们添加的box

 

  • 初始化该目录

初始化:vagrant init mybox 或者 vagrant init

初始化后,就会生成一个Vagrantfile 的配置文件,和一个 .vagrant的隐藏目录

 

  • 修改Vagrantfile配置文件

config.vm.box = "mybox"

 

  • 启动:vagarnt up ,就能够了,

注意:若是不报错说明就是启动成功了,若是有错误,很大的缘由多是本机有开启虚拟化

技术,此时重启电脑,按F2或者其余的键进入bios设置,找到virtual相关字样开启便可。

 

 

  • 启动后使用xshell连接测试

ssh -p2222 vagrant@127.0.0.1

链接帐号:vagrant

链接密码:vagrant

su到root下密码:vagrant

 

  • 经常使用命令

vagrant init # 初始化

vagrant up [vm_name] # 启动虚拟机 , 虚拟机名是可选项

vagrant halt # 关闭虚拟机

vagrant reload # 重启虚拟机

vagrant ssh # SSH 至虚拟机

vagrant status # 查看虚拟机运行状态

vagrant suspend #暂停虚拟机

vagrant resume #恢复虚拟机 (与suspend 对应)

vagrant destroy # 销毁当前虚拟机

vagrant box list #列出当前导入的box

vagrant box remove [name] #移除box

vagrant box add [boxpath] # 给vagrant导入box

vagrant global-status #查看已建立的全部虚拟机

 

经过命令:vagrant -h 能够看见命令

 

注:在vagrant的项目目录下,能够经过命令: vagrant ssh ,获得当前vagrant的ssh信息

 

  • 分发打包

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

经过命令:vagrant package --output NAME --vagrantfile FILE打包

可选参数:

--output : (可选) 设置经过NAME 来指定输出的文件名

--vagrantfile FILE : (可选)能够将Vagrantfile 直接封装进box中

打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其余用户,其余用户只要添加这个 box 并用其初始化本身的开发目录就能获得一个如出一辙的开发环境了。

 

 

 

 

六、其余配置

Vagrant 默认是使用端口映射方式将虚拟机的端口映射本地从而实现相似 http://localhost:80 这

种访问方式,这种方式比较麻烦,新开和修改端口的时候都得编辑。相比较而言,host-only 模式

显得方便多了。打开Vagrantfile,将下面这行的注释去掉(移除 #)并保存:

config.vm.network :private_network, ip: "192.168.33.10"

重启虚拟机,这样咱们就能用 192.168.33.10 访问这台机器了,你能够把 IP 改为其余地址,只要

不产生冲突就行。

 

七、注意事项

使用 Apache/Nginx 时会出现诸如图片修改后但页面刷新仍然是旧文件的状况,是因为静态文件缓存形成的。须要对虚拟机里的 Apache/Nginx 配置文件进行修改:

1

2

3

4

5

# Apache 配置添加:

EnableSendfile off

# Nginx 配置添加:

sendfile off;

 

 

 

 

 

 

配置多台虚拟机

 

  • 修改Vagrantfile配置文件,该文件管控着虚拟机的运行

    修改后的文档:启用了四个虚拟机,内存均为256M

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

# -*- mode: ruby -*-

# vi: set ft=ruby :

app_servers = {

:http => '192.168.58.20',

:php => '192.168.58.21'

}

Vagrant.configure("2") do |config|

config.vm.box = "centos6.3"

config.vm.define :haproxy do |haproxy_config|

haproxy_config.vm.network :private_network, ip: "192.168.58.10"

haproxy_config.vm.network :forwarded_port, guest: 80, host: 8080

config.vm.provider :virtualbox do |vb|

vb.name = "haproxy"

vb.customize ["modifyvm", :id, "--memory", "256"]

end

end

app_servers.each do |app_server_name, app_server_ip|

config.vm.define app_server_name do |app_config|

app_config.vm.hostname = "#{app_server_name.to_s}.vagrant.internal"

app_config.vm.network :private_network, ip: app_server_ip

# app_config.vm.synced_folder "../app", "/opt/app"

app_config.vm.provider "virtualbox" do |vb|

vb.name = app_server_name.to_s

vb.customize ["modifyvm", :id, "--memory", "256"]

end

end

end

config.vm.define :redis do |redis_config|

redis_config.vm.hostname = "redis.vagrant.internal"

redis_config.vm.network :private_network, ip: "192.168.58.30"

redis_config.vm.provider "virtualbox" do |vb|

vb.name = "redis"

vb.customize ["modifyvm", :id, "--cpuexecutioncap", "50"]

vb.customize ["modifyvm", :id, "--memory", "256"]

end

end

end

  • 开启虚拟机,这里你能够彻底开启,也能够只开启一台

PS: 第一次开启的时候,建议一台一台的开启,这样的话方便记录ssh链接端口号(我的偏好使用xshell)

    

 

 

 

  • 打包

    关闭当前机器,而后打包(我这里为haproxy这台机器安装了epel源)

   

   

 

 

使用感觉:

    搭建了一个haproxy + tomcat的环境,三台机器全开,占用系统资源也不是很大,跑起来绝对没问题,也挺流畅~

 

参考文档:

斌哥的网站:http://opslinux.com/shi-yong-vagrantda-zao-ni-de-xu-ni-huan-jing.html

爽神的网站:http://www.iamle.com/archives/1684.html

Vagrantfile借用站点:http://blog.sina.com.cn/s/blog_804327560101eiyk.html

官方站点:http://docs.vagrantup.com/v2/

相关文章
相关标签/搜索