有沒有辦法通過命令行shell知道我目前是在Google Compute Engine計算機還是其他位置(開發計算機)?如何知道某臺計算機是否爲Google Compute Engine實例
5
A
回答
4
,如果你的應用程序或腳本的計算引擎實例中使用的元數據服務器運行時,您可以很容易地檢測。向服務器發出請求時,元數據服務器的任何響應都將包含
Metadata-Flavor: Google
標頭。您可以查找此標頭以可靠地檢測您是否在Compute Engine中運行。例如,以下curl請求會返回
Metadata-Flavor: Google
標頭,表示該請求是在計算引擎實例內進行的。[email protected]:~$ curl metadata.google.internal -i HTTP/1.1 200 OK Metadata-Flavor: Google Content-Type: application/text Date: Thu, 10 Apr 2014 19:24:27 GMT Server: Metadata Server for VM Content-Length: 22 X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN 0.1/ computeMetadata/
4
您還可以use the dmidecode
utility to probe the virtual hardware如果你不想讓網絡通話:不是實際調用它
[email protected]:~$ sudo dmidecode -s bios-vendor | grep Google
Google
2
你也可以做一個DNS查找元數據服務器。
例如,做dig +short metadata.google.internal
內谷歌的計算實例將輸出是這樣的:
[[email protected]]# dig +short metadata.google.internal
169.254.169.254
但是,如果你做同樣的命令(dig +short metadata.google.internal
)標準的服務器內,谷歌雲外,你可以得到一個空的答覆。
所以檢查,所有你需要做的(在bash
例如)是:
GMETADATA_ADDR=`dig +short metadata.google.internal`
if [[ "${GMETADATA_ADDR}" == "" ]]; then
echo "I am NOT in a Google VM!"
else
echo "I AM INSIDE a Google VM! Whoohoo!"
fi
相關問題
- 1. Google是否爲Google Compute Engine實例發佈DNS記錄?
- 2. 在Google Compute Engine中創建虛擬機實例時出錯
- 3. Google Compute Engine GPU
- 4. 如何使用Google Compute Engine中的快照恢復實例?
- 5. 如何將實例從Google Compute Engine導出到其他雲
- 6. 如何獲取Google Compute Engine實例的特定元數據值?
- 7. Google Compute Engine:如何禁用VM實例的防火牆?
- 8. 如何從本地計算機「混帳」到Google雲端平臺實例?
- 9. 如何知道文件是否在計算機中使用?
- 10. 從Google Compute Engine實例中刪除用戶
- 11. 從Google Compute Engine訪問Google Cloud SQL實例?
- 12. OAuth:從Google App Engine內部啓動Google Compute實例
- 13. Google計算引擎實例是否睡眠?
- 14. Google Compute Engine虛擬機備份策略
- 15. 自動停止並啓動Google Compute Engine實例
- 16. 'Google App Engine'遠比'Google Compute Engine'貴嗎?
- 17. 是否可以在Google Compute Engine上爲Kubernetes設置Stackdriver Monitoring?
- 18. 如何知道某個類是否映射爲Hibernate實體?
- 19. Google Compute Engine - 調整實例的大小後,SSH連接失敗
- 20. 如何在Google Compute Engine上驗證BigQuery?
- 21. 如何休眠Google Compute Engine服務器?
- 22. 在Google Compute Engine實例上自定義Java堆大小
- 23. 使用SSHJ連接到Google Compute Engine實例
- 24. 從Google Compute Engine中刪除所有停止的實例
- 25. 無法連接到新的Google Compute Engine Windows實例
- 26. 在Google Compute Engine實例上啓動時運行mongoDB
- 27. 使用OVA文件(VirtualBox圖像)創建Google Compute Engine VM實例
- 28. 通過Mac OS X終端登錄Google Compute Engine實例
- 29. Google Compute Engine中的實例重複需要多長時間?
- 30. Castle ActiveRecord - 如何知道對象實例是否爲瞬態?