virtualbox+vagrant學習-3-Vagrant Share-1-簡介
阿新 • • 發佈:2018-12-25
Vagrant Share
通過 ngrok 內網穿透功能實現讓全世界人可以訪問虛擬機器的服務
Vagrant Share允許你與世界上的任何人共享您的Vagrant環境,幾乎支援你在任何網路環境中使用一個簡單命令vagrant share來在你的vagrant環境中直接實現協作。
Vagrant Share主要有三種模式或特徵。這些特性並不是相互排斥的,這意味著它們的任何組合在任何給定的時間都會處於活動狀態:
- HTTP sharing :HTTP共享將建立一個你可以傳給任何人的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服務了
詳細內容可見本部落格: