2016年12月19日

Vagrant - 利用 Rsync 自動同步檔案至 Vagrant 虛擬環境 ( Use Rsync to sync files to a Vagrant machine )

Vagrant 允許我們使用不同種的機制( 如:NFS、SMB、Rsync )同步檔案至虛擬環境中,本篇將介紹如何在 Mac 透過 Rsync 來自動同步檔案至 Vagrant 虛擬環境。( 其他 Mac 相關教學可以參考本篇整理。If you want to read this article in English, you can visit here )



前置作業
基本上 macOS 已經替你預先安裝好 Rsync,所以不需要特別安裝 (但版本較舊),但是你仍然可以透過 Homebrew 升級 Rsync。利用下面指令瞭解目前 Rsync 版本:
rsync --version


修改 Vagrant Machine 設定
開啟你的 Vagrant Machine 設定檔 ( Vagrantfile ),將自動同步設定加入:
 ...

  config.vm.synced_folder "/path/to/local/folder", "/path/to/vm/folder",
    type: "rsync",
    rsync__exclude: [".git/", "*.swp"]

 ...
注意,vm.synced_folder 後兩個參數需指定絕對路徑,而 rsync__exclude 則可以指定多個不要同步的檔案名稱、類型。


啟用 Rsync 自動同步
當你啟動 Vagrant 虛擬機器時,自動同步並不會跟著啟用。所以等待啟動完成,再啟用自動同步:
# 啟動虛擬環境
vagrant up

# 啟動 Rsync 自動同步
vagrant rsync-auto
你會看到它自動檢查檔案是否有異動,若有異動則進行同步。基本上,它同步速度與穩定度算 OK,但偶爾會延遲。為了讓 Rsync 同步能更加流暢順利,我們可以使用套件來取代內建的自動同步


Environment :
  ・ macOS
Reference :
  ・ Vagrant


熱門文章