VitualBox+Vagrant搭建Centos7 掛載共享目錄


1.安裝VirtualBox和Vagrant

在win10下先安裝VirtualBox然后再安裝Vagrant。我這里用的VirtualBox6.0.8,Vagrant_2.2.4_x86_64。

1)安裝VirtualBox
直接下載安裝一直點下一步即可;

2)安裝Vagrant
直接下載安裝一直點下一步即可;

注意:下載的時候,virtualbox和vagrant的版本要搭配,建議都下載最新版的。還有就是要根據自己的操作系統版本進行選擇32位或者64位下載。在windows系統中,可能還需要配置環境變量以及一定要開啟VT-x/AMD-V硬件加速

在windows下安裝vagrant,為了寫入相應配置到環境變量,可能會要求重新啟動一下系統,或者可以自己將bin目錄配置進環境變量,可不需重啟系統

2.下載box

我這里用的Centos7

http://cloud.centos.org/centos/7/vagrant/x86_64/images/CentOS-7.box

官網的box列表更多centos7box列表,可以選擇自己需要的系統進行安裝

3.添加box

創建一個目錄,把CentOS-7.box放到創建的目錄下,然后cmd到該目錄下執行以下命令

vagrant box add centos7 CentOS-7.box

4.初始化Centos7

執行初始化后會在當前文件夾下生成一個文件Vagrantfile

vagrant init centos7

修改配置文件如下

Vagrant.configure("2") do |config|
  config.vm.box = "centos7"  #box名稱
  config.vm.hostname = "centos7"  #系統下的主機名
  config.vm.synced_folder "E:/dnmp", "/dnmp",create: true,owner: "root", group: "root",mount_options:["dmode=775","fmode=644"] #共享目錄
  config.vm.network "public_network", ip: "192.168.1.131" #采用橋接網絡,共享主機網絡
  config.vm.provider "virtualbox" do |vb|
    vb.memory = 2048
    vb.cpus = 2
    vb.name = "centos7_box"
  end
end

共享目錄配置解釋

config.vm.synced_folder   
   "your_folder"(必須)   //物理機目錄,可以是絕對地址或相對地址,相對地址是指相對與vagrant配置文件所在目錄
  ,"vm_folder(必須)"    // 掛載到虛擬機上的目錄地址
  ,create(boolean)--可選     //默認為false,若配置為true,掛載到虛擬機上的目錄若不存在則自動創建
  ,disabled(boolean):--可選   //默認為false,若為true,則禁用該項掛載
  ,owner(string):'www'--可選   //虛擬機系統下文件所有者(確保系統下有該用戶,否則會報錯),默認為vagrant
  ,group(string):'www'--可選   //虛擬機系統下文件所有組( (確保系統下有該用戶組,否則會報錯),默認為vagrant
  ,mount_options(array):["dmode=775","fmode=664"]--可選  //dmode配置目錄權限,fmode配置文件權限  默認權限777
  ,type(string):--可選     //指定文件共享方式,例如:'nfs',vagrant默認根據系統環境選擇最佳的文件共享方式

5.安裝vbguest插件,(防止掛載失敗,提示because the filesystem "vboxsf" is not available的問題,提前執行該命令安裝插件)

使用 vagrant 啟動 Virtualbox ,能夠將宿主機當前目錄下的文件同步(復制)到虛擬機 /dnmp目錄,但在虛擬機中對 /dnmp所做的修改並不會在宿主機目錄生效,無法實現雙向共享

由於vagrant沒有Guest Additions,通過vagrant不能創建共享文件夾,所以需要下載vbguest插件,當啟動時自動安裝Guest Additions

所以需要關閉虛擬機然后執行安裝命令,安裝完成后重新加載虛擬機,會看到VirtualBox Guest Additions installer正在安裝。

vagrant plugin install vagrant-vbguest

6.啟動虛擬機(啟動后可看到VirtualBox會有該虛擬機自動生成)

vagrant up
首次執行vagrant up可能需要20分鍾左右,根據自家網絡情況而定
 
以下為ssh連接的ip和地址,端口,賬號密碼信息

 

7.連接虛擬機

vagrant ssh

初始密碼賬戶是:

賬戶 密碼
vagrant vagrant
root vagrant

可以登錄后使用sudo -s 或 su root 切換到root賬號

sudo -s

注意:centos7不能直接使用ssh通過賬號密碼連接到服務器,使用centos7.3則可以

centos7.3連接ssh方法:ip:127.0.0.1 端口:2222 賬號:root 密碼:vagrant

8.設置開機自動掛載和防止重新更新(可不操作,本人沒操作)

由於我們上面安裝好了Guest Additions,需要修改vagrantfile配置文件,以免下次啟動時重復安裝Guest Additions,在配置文件最后一個end前添加兩行命令(新添加的配置需要使用vagrant reload重新加載配置)

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

... config.vbguest.auto_update = false #防止重新安裝更新 config.vbguest.no_remote = true #不從遠程web端下載

... end

然后ssh連接到服務器。因為系統調用fstab的時候,Virtualbox的共享目錄的模塊還沒有加載,所以我之前安裝總是失敗。最終的解決方案如下:在文件 /etc/rc.local 中(用root用戶)追加如下命令

mount -t vboxsf sharing /mnt/share

9.重啟虛擬機查看是否可以共享目錄

重啟可以看到Machine booted and ready! default: /dump=> E:/dnmp

自行測試新增文件,可以在共享目錄 dump下面創建文件看看是否可以進行雙向共享

10.vagrant常用命令

命令 描述
vagrant box add 添加box的操作
vagrant init 初始化box的操作,會生成vagrant的配置文件Vagrantfile
vagrant up 啟動本地環境
vagrant ssh 通過 ssh 登錄本地環境所在虛擬機
exit 退出虛擬機
vagrant halt 關閉本地環境
vagrant suspend 暫停本地環境
vagrant resume 恢復本地環境
vagrant reload 修改了 Vagrantfile 后,使之生效(相當於先 halt,再 up)
vagrant destroy 徹底移除本地環境
vagrant box list 顯示當前已經添加的box列表
vagrant box remove 刪除相應的box
vagrant package 打包命令,可以把當前的運行的虛擬機環境進行打包
vagrant plugin 用於安裝卸載插件
vagrant status 獲取當前虛擬機的狀態
vagrant global-status 顯示當前用戶Vagrant的所有環境狀態

更多詳細配置:https://blog.csdn.net/youcijibi/article/details/103119974

 

window執行bat啟動虛擬機例子

cmd /k "cd /d D:\vb_centos_box & vagrant up & vagrant ssh -c 'cd /dnmp;docker-compose up -d;/bin/bash' "

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM