vagrant系列五:Vagrant使用中遇到的坑

遇到的問題

之前寫了一系列的vagrant使用教程,當時寫這個教程的時候實在windows的環境下。最近再mac上使用,遇到了一些麻煩。

原文章路徑

今天最想說的一個問題就是權限的問題。

在windows中由於沒有文件權限的概念,所有當我們共享目錄後,共享目錄默認就是777權限。
但是當我使用mac時,共享後的目錄權限以及用戶組都不正確了。無法正常使用。這樣導致的一個直接問題就是:

項目a運行在虛擬機中,需要向runtime目錄寫入日誌或者臨時文件之類的,總之就是需要讀寫權限。

解決辦法

當時我直接ssh上vagrang後,給予777權限,無法寫入,然後又在主機給予777權限,可以寫入一個文件,但是下個文件又拿到權限寫入。

後來由各種google與百度,看到說使用nfs的方式可以解決這個問題,但是各方給出的解決方案都很成舊,有的方法使用後甚至虛擬機都無法啓動了。

沒辦法,老老實實上官網看nfs相關的配置吧。老實說官方給的文檔真的是有點太簡單抽象了,只能結合之前的一些東西結合起來使用。最終終於找到辦法,這裏將相關的配置貼出來,供大家參考。

  config.vm.define :php7 do |p7|
    p7.vm.provider "virtualbox" do |v|
          v.customize ["modifyvm", :id, "--name", "php6", "--memory", "512"]

          ## 域名解析慢
          v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
          v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
    end
    p7.vm.box = "CentOs7"
    p7.vm.hostname = "php7"
    p7.vm.network :private_network, ip: "192.168.33.10"

    # ssh 奇怪:第一次啓動虛擬機無法獲取ip
    p7.ssh.username = "root"
    p7.ssh.password = "vagrant"
    p7.ssh.host = "192.168.33.11"
    p7.ssh.port = 22

    ## nfs文件權限問題  啓動了好幾次才正常,不知道原因
    p7.vm.synced_folder "./www", "/data/wwwroot", type: "nfs", :nfs => {
      :linux_nfs_options => ["not_root_squash"],
      :map_uid => 0,
      :map_gid => 0
    }
  end

這個配置是在一個 Vagrantfile 中配置多臺機器的配置文檔。其中遇到的一些奇怪問題,註釋中都標明瞭。
* 配置的ip地址,首次使用 vagrant up php7 後,無效,需要重新啓動,虛擬機才能拿到這個ip。至今不懂爲什麼,麻煩知道的告訴我一下啊!
* nfs配置信息全面解決了權限問題。你需要給出什麼權限直接在 vagrang 虛擬機中進行設置。但是在掛載目錄時,有時候配置的新機器會莫名其妙重新啓動好幾次纔可以。我啓動了三次。
* 另一個坑是,新機器安裝後,需要配置dns解析。否則有的資源是無法下載的。

$ vim /etc/resolv.conf

## 增加以下內容
nameserver 8.8.8.8
  • 由於配置了啓動時使用 root 帳號,需要每次在mac上啓動的時候輸入機器密碼,很麻煩,官方指導配置 /etc/sudoers 如下內容
Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE

該配置僅針對mac

總結

這類問題還是蠻常見,對於使用很久的用戶,輕鬆解決了,但是對於大多數使用vagrant的新手,這個問題很頭痛,可能直接導致放棄使用vagrant吧。爲了不讓你放棄,我必須寫出來幫助大家渡過這道坑。

發佈了113 篇原創文章 · 獲贊 153 · 訪問量 62萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章