搭建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/

相關文章
相關標籤/搜索