1. 程式人生 > >virtualbox+vagrant學習-3-Vagrant Share-1-簡介

virtualbox+vagrant學習-3-Vagrant Share-1-簡介

Vagrant Share

通過 ngrok 內網穿透功能實現讓全世界人可以訪問虛擬機器的服務

Vagrant Share允許你與世界上的任何人共享您的Vagrant環境,幾乎支援你在任何網路環境中使用一個簡單命令vagrant share來在你的vagrant環境中直接實現協作。

Vagrant Share主要有三種模式或特徵。這些特性並不是相互排斥的,這意味著它們的任何組合在任何給定的時間都會處於活動狀態:

  • HTTP sharingHTTP共享將建立一個你可以傳給任何人的URL。這個URL將直接路由到您的Vagrant環境。使用這個URL的人不需要安裝Vagrant,因此它可以與任何人共享。這對於測試webhook或者向客戶、團隊成員、經理等展示您的工作非常有用。
  • SSH sharing:SSH共享將允許任何人通過在遠端端執行Vagrant connect—SSH立即訪問你的Vagrant環境。這對於結隊程式設計、除錯運維問題等非常有用。
  • General sharing:通過在遠端端執行Vagrant連線,任何人都可以訪問Vagrant環境的任何公開埠。如果遠端端希望像訪問區域網上的計算機一樣訪問你的Vagrant環境,這是非常有用的。

 


Installation

Vagrant Share是必須安裝的Vagrant外掛。它不包括在Vagrant系統包中。

首先檢視本地的外掛資訊:

userdeMBP:~ user$ vagrant plugin list
No plugins installed.

可見本地並沒有安裝外掛

然後執行vagrant share,返回的是幫助資訊,說明沒有安裝vagrant share:

userdeMBP:~ user$ vagrant share
Usage: vagrant [options] <command> [<args>]

    -v, --version                    Print the version and exit.
    -h, --help                       Print this help.

Common commands:
......

要安裝Vagrant Share外掛,執行以下命令:

userdeMBP:~ user$ vagrant plugin install vagrant-share
Installing the 'vagrant-share' plugin. This can take a few minutes...
Fetching: vagrant-share-1.1.9.gem (100%)
Installed the plugin 'vagrant-share (1.1.9)'!

安裝成功,這時再檢視本地的外掛資訊,就能夠看見該外掛了:

userdeMBP:~ user$ vagrant plugin list
vagrant-share (1.1.9, global)

然後執行vagrant share也可以成功執行起來了:

userdeMBP:~ user$ vagrant share
Vagrant Share now defaults to using the `ngrok` driver.
The `classic` driver has been deprecated.

For more information about the `ngrok` driver, please
refer to the documentation:

  https://www.vagrantup.com/docs/share/

==> default: Detecting network information for machine...
The Vagrant environment you're attempting to share appears to
not be running. Please verify that it is running and try again.

上面因為沒有將虛擬機器執行起來,也還沒有配置埠等,所以沒能成功,之後繼續

 

⚠️Vagrant Share需要使用ngrok

ngrok 是一個反向代理,通過在公共的端點和本地執行的 Web 伺服器之間建立一個安全的通道。ngrok 可捕獲和分析所有通道上的流量,便於後期分析和重放

為什麼要使用ngrok:

因為有時候需要臨時地將一個本地的Web網站部署到外網,以供他人體驗評價或協助除錯,那麼我們就需要:

  • 在一臺能夠執行與外網的伺服器上部署網站所需要的環境
  • 將網站部署到該伺服器上
  • 除錯成功後,將網站從伺服器上刪除

但是當你使用了ngrok後,就能夠直接在本機上執行你的Web網站來讓它們除錯,即:

  • 註冊下載ngrok,得到一串授權碼
  • 執行命令:
ngrok -authtoken  授權碼   指定埠,如80

80是你本地Web服務的埠,之後ngrok就會記住你的授權碼

  • 接下來再直接執行:
ngrok 80

 

  • 最後就會得到一串網址,通過這個網址就可以訪問你本地的Web服務了

 

詳細內容可見本部落格:

ngrok反向代理學習-1-簡介