我計劃創建一個服務,在openstack環境中休眠/喚醒未使用的計算節點,以便我需要計算節點的ip地址。 是否有任何API或命令可用於獲取OpenStack網絡中存在的IP地址(不是計算節點的名稱)計算機?獲取openstack網絡中計算節點的ip地址
回答
在OpenStack雲環境設置中使用的IP地址有兩種類型。
修正:
只能從OpenStack的網絡來訪問,也就是虛擬機之間。
浮動:
能否從OpenStack的雲網絡外部訪問,基本的工作原理不同的接口上,一般是由該IP提供給公衆從外部netwrok訪問該虛擬機。
現在,你知道這一點,按照這裏給出的API。 http://api.openstack.org/api-ref.html#ext-os-ext-ips
在通過JSON響應獲取IP地址時,首先必須檢查它是固定的還是浮動的。
這應該回答你的問題,我希望。如果不是的話請通知。
您可以查詢nova數據庫並獲取compute_node表中所有計算節點的ip。我在python中編寫了一個小函數來完成我的一個測試。
def get_compute_nodes(parameters):
try:
password = parameters['password']
db=_mysql.connect(user="root",passwd=password, db="nova")
query = """select host_ip from compute_nodes where deleted=0"""
db.query(query)
r=db.use_result()
results = r.fetch_row(maxrows=0)
return results
except Exception as exp:
print "Error in accessing the Nova database"
print exp
嗨,是否有一個「官方的方式」如何查詢數據庫?我的意思是,Nova Conductor處理所有的數據庫請求,沒有什麼應該直接進入數據庫,對吧? – RichArt
嗨!不,不幸的是,OpenStack沒有推薦查詢數據庫的「官方方式」。他們公開了這些API,以便用戶不必查詢數據庫。您也可以使用OpenStack Python SDK,但此時該方法只返回計算的名稱。因此,該方法必須進行修改,否則您可以編寫一個調用REST API的新方法。你可以在python中使用httplib庫來做到這一點。我會嘗試寫和添加它作爲答案。 –
- 1. 計算網絡的IP地址
- 2. 網絡計算機的IP地址
- 3. 在Android中獲取網絡IP地址
- 4. 獲取網絡用戶的IP地址
- 5. 如何獲取遠程計算機的本地網絡IP地址
- 6. 在Android模擬器上獲取WIFI網絡中的計算機IP地址
- 7. 如何從網絡上的IP地址獲取MAC地址?
- 8. 使用Win32網絡API獲取基於計算機名稱的本地計算機的IP地址
- 9. 刪除Openstack中的計算節點
- 10. 計算兩個IP地址之間的網絡2非CIDR
- 11. 從網絡上的IP地址查找特定計算機
- 12. 如何獲取vC++中網絡連接的PC的IP地址
- 13. 如何在openstack實例中獲取關聯的ip地址
- 14. 如何獲取WindowsStore Apps的本地網絡IP地址
- 15. 獲取套接字/網絡接口的本地IP地址
- 16. 使用java獲取本地網絡的IP地址
- 17. Openstack IP地址過濾器
- 18. 如何獲取Java中所有網絡設備的IP地址
- 19. 跨IP網絡的IP地址
- 20. 從網址獲取IP地址
- 21. 從IP地址和子網掩碼獲取網絡ID
- 22. 獲取和檢查本地計算機的IP地址
- 23. 從節點js中的IP地址獲取時區
- 24. 在虛擬網絡中獲取IP地址
- 25. 在ad hoc網絡中獲取其他IP地址
- 26. Arduino搜索網絡的IP地址,並獲得MAC地址
- 27. 如何在Java中獲取計算機的WAN IP地址?
- 28. 在PHP中獲取計算機的IP地址
- 29. 如何使用IP上的IP和CIDR來計算網絡和廣播地址
固定和浮動IP被分配給創建的實例,我需要的是主機的IP,即運行這些實例的計算節點。 – R45c4l
http://api.openstack.org/api-ref.html#identity-v2.0。向「v2.0 /令牌」發出POST請求,並且它應該返回包含服務目錄的JSON。在服務目錄字段中輸入「type」:「compute」,您將獲得計算模塊的公共URL。實例運行在這個公共URL的計算。(一般) –