Vagrant使用指南

1、下載安裝 VirtualBox

下載地址:VirtualBox

2、安裝Vagrant

下載地址:Vagrant

3、下載系統鏡像

下載地址1:http://www.vagrantbox.es/
下載地址2:vagrant box | vagrantcloud.com
下載地址3:diy box

4、常用命令

1、vagrant box list  #box列表

2、添加box
   vagrant box add (box_name)  (file_path)
   #添加box box_name 為box取的名稱  file_path 系統鏡像地址
   vagrant box add (vagrant_box)
   #添加box vagrant box網為vagrant box封裝好的box鏡像名稱。
   #vagrant box add laravel/homestead
   #vagrant box add laravel/homestead --box-version=0.4.3
   #下載指定版本的系統鏡像

3、vagrant init (box_name)  
   #初始化 box_name 本地已安裝的box名稱
    
4、vagrant up  #啟動虛擬機

5、vagrant ssh  #ssh登錄虛擬機

6、vagrant halt  #關掉虛擬機

7、vagrant reload  #重啟虛擬機

8、vagrant destroy  #銷毀虛擬機

9、vagrant suspend  #虛擬機掛起

10、vagrant status   #查看虛擬機運行狀態

11、vagrant box remove (boxname)  #刪除指定的box環境

12、vagrant package   #對開發環境進行打包  

13、vagrant resume   #重新恢復啟動

當init 初始化 環境box后,會在當前目錄中生成一個Vagrantfile配置文件。

5、配置環境網絡

1、公有網絡設置
 找到 # config.vm.network "public_network"
 去掉注釋符 # 號:
 指定局域網ip:  config.vm.network "public_network", ip: "192.168.43.115"
 注:指定局域網ip時,先查看本地主機ip號段,如本地:192.168.43.229,配置192.168.43.*  如重啟后提示ip占用,則換其它號段試試。

2、私有網絡
找到 config.vm.network "private_network", ip: "192.168.100.100"
配置自己需要的私有ip

6、配置共享目錄

默認Vagrantfile文件所在目錄會跟虛擬機中根目錄下的vagrant目錄共享

設置其它目錄
找到 # config.vm.synced_folder 
去掉注釋符 # 號,并設置需要同步的目錄
如:
config.vm.synced_folder "/Users/flycorn/project", "/home/wwwroot/default",
create: true,  owner: "root",  group: "root"
第一個目錄是指本地的目錄,第二個目錄是指虛擬機中的目錄,create為true會在主機中自動創建該目錄,owner目錄所屬者,group目錄所屬用戶組。

7、環境打包

1、sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules   #刪除規則文件
2、vagrant package  #生成box文件

8、定義多主機

<code>編輯Vagrantfile文件</code>

config.vm.box = "flycorn"

config.vm.define "development"  do  |development|
end      #定義開發環境主機名
config.vm.define "production"  do  |production|
end      #定義生產環境主機名

啟動主機  vagrant  up  [主機名]
查看主機狀態  vagrant  status  [主機名]
ssh指定登錄某臺主機   vagrant ssh development

9、多主機的網絡設置

<code>編輯Vagrantfile文件</code>

#配置私有網絡
config.vm.define "development" do |development|
      development.vm.network "private_network", ip:"192.168.100.100"
  end
  config.vm.define "production" do |production|
      production.vm.network "private_network", ip:"192.168.100.101"
  end  
重啟主機 vagrant reload [主機名]

10、多主機的主機名

Hostname 是一個用來設置或顯示當前主機,域或者系統的節點名的程序.許多聯網程序使用這些名字來標識機器.NIS/YP同樣也使用域名.

<code>現在兩臺主機的主機名都是localhost</code>

vagrant ssh development
hostname 查看主機名
vim /etc/sysconfig/network 下面去修改, 或者在Vagrantfile里面去配置, 當啟動以后,vagrant會自動的設置主機名。
config.vm.define "development" do |development|
      development.vm.network "private_network", ip:"192.168.100.100"
      development.vm.hostname = "home-dev"
  end
  config.vm.define "production" do |production|
      production.vm.network "private_network", ip:"192.168.100.101"
      production.vm.hostname = "home-prod"
  end  
vagrant reload vagrant ssh development hostname 查看發現是我們配置的
vagrant ssh production
hostname
可以看到HOSTNAME后面的值就是主機名, 可以直接修改這個值, 修改完了 service network restart就可以生效
cat /etc/sysconfig/network

11、多主機的共享目錄

現在這兩臺主機都會有共同的同步目錄, 也就是默認的都會使用項目的目錄, 現在可以單獨為第一臺主機配置一個目錄

mkdir development
mkdir production
config.vm.define "development" do |development|
      development.vm.network "private_network", ip:"192.168.100.100"
      development.vm.hostname = "home-dev"
      development.vm.synced_folder "development", "/vagrant", create:true
  end
  config.vm.define "production" do |production|
      production.vm.network "private_network", ip:"192.168.100.101"
      production.vm.hostname = "home-prod"
      production.vm.synced_folder "production", "/vagrant", create:true
  end  

問題
1、An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
2、The box 'laravel/homestead' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Atlas, please verify you're logged in via
vagrant login. Also, please double-check the name. The expanded
URL and error message are shown below:
URL: ["https://atlas.hashicorp.com/laravel/homestead"]
Error:

解決辦法:sudo rm /opt/vagrant/embedded/bin/curl

12、增加硬盤容量

一般box自帶8g容量,對于一些特殊場景會不太夠用。Virtualbox 本身只支持vdi硬盤文件格式的擴容,對vmdk 格式的卻不支持。但是卻提供vmdk到vdi格式的轉化,正好可以利用這一功能進行擴容。

  • 1、關閉虛擬機
vagrant halt
  • 2、從Virtualbox管理面板上查看當前box的硬盤文件地址(選擇虛擬機->右鍵->設置->存儲->SATA Controller下對應磁盤)。進入文件所在目錄內執行:
VBoxManage clonehd box-disk1.vmdk box-disk1.vdi --format VDI
  • 3、給vdi格式硬盤文件擴容
VBoxManage modifyhd box-disk1.vdi --resize 20000
  • 4、從Virtualbox存儲界面上刪除原硬盤文件,然后加入新的 vdi 格式硬盤文件
如:刪除box-disk1.vmdk、添加box-disk1.vdi
  • 5、vagrant up 啟動虛擬機,然后 vagrant ssh 進入

  • 6、利用 cfdisk 工具創建主分區,謹記選擇格式為Linux LVM (8e)

sudo cfdisk /dev/sda
  • 7、重啟udev守護進程
sudo udevadm trigger

  • 8、查看分區
cat /proc/partitions

如沒有出現新建的分區重啟虛擬機:
vagrant reload
  • 9、利用 pvcreate 命令給新的分區創建物理卷
sudo pvcreate /dev/sda3
  • 10、查看VG Name
sudo pvdisplay | grep "VG Name"

如:VolGroup
  • 11、將新分區擴展到 VolGroup 組下
vgextend VolGroup /dev/sda3
  • 12、擴展邏輯分區
lvextend /dev/mapper/VolGroup-lv_root/dev/sda3
  • 13、resize生效
resize2fs /dev/mapper/VolGroup-lv_root
  • ps、在centos 7下,這一步會出錯
resize2fs 1.42.9 (28-Dec-2013)
resize2fs: Bad magic number in super-block while trying to open /dev/mapper/VolGroup-lv_root
Couldn't find valid filesystem superblock.

----------------------------------------------------------------------------------------------

執行xfs_growfs命令替換
xfs_grouwfs /dev/mapper/VolGroup-lv_root
  • 14、重啟成功
vagrant reload
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,406評論 6 538
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,034評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,413評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,449評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,165評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,559評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,606評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,781評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,327評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,084評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,278評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,849評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,495評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,927評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,172評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,010評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,241評論 2 375

推薦閱讀更多精彩內容