2016年12月21日

Vagrant - 安裝 Vagrant 套件提升 Rsync 檔案同步的效率與穩定度 ( Install a better Rsync watcher for Vagrant mahcines )

Vagrant 允許我們使用 Rsync 同步檔案至虛擬環境中,但內建的自動同步穩定性、效率不夠完美,因此本次將介紹如何在 Mac 上透過安裝 Vagrant 套件(vagrant-gatling-rsync)讓 Rsync 自動同步更完美。( 其他 Mac 相關教學可以參考本篇整理。If you want to read this article in English, you can visit here )



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


安裝 vagrant-gatling-rsync 套件
首先安裝該套件:
# 列出已安裝套件
vagrant plugin list

# 安裝 vagrant-gatling-rsync
vagrant plugin install vagrant-gatling-rsync


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

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

  # 設定 vagrant-gatling-rsync 參數
  if Vagrant.has_plugin?("vagrant-gatling-rsync")
    # 設定同步延遲時間
    config.gatling.latency = 1.0
    # Log 時間格式
    config.gatling.time_format = "%H:%M:%S"
  end

  # True 表示啟動虛擬環境時也啟用自動同步
  config.gatling.rsync_on_startup = true

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


啟用 Rsync 自動同步
依照剛剛的設定 config.gatling.rsync_on_startup = true,當你啟動 Vagrant 虛擬環境時 vagrant-gatling-rsync 也會跟著啟動,因此它會開始監控檔案是否有異動,若有異動則開始自動同步。


Environment :
  ・ macOS
Reference :
  ・ Vagrant
  ・ vagrant-gatling-rsync


熱門文章