pyVmomi [1] 是一個由 VMware 官方釋出的 Python API,可以用來存取 vSphere/vCenter 的資源。
另外有一些簡易的使用範例 [2],可以大略參考要如何開始使用 Python 連接 vSphere/vCenter。
這篇是用來記錄初步介接 vSphere/vCenter 的經驗。
Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification. Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. 註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
- Bertrand Meyer
- Charles Connell
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
2015年8月31日 星期一
2015年8月27日 星期四
在 gitlab 上更新 fork 出來的專案
在 GitLab 的介面上,可以透過 Fork 的功能,把別人的專案建立一個 fork 到自己的帳號底下
例如原始專案的網址是 http://gitlab/userA/project,fork 出來的專案網址會是 http://gitlab/userB/project。
不過原始專案會由原始專案的專案成員繼續更新,而自己 fork 下來的專案則會停在執行 fork 當時的狀況
如果想要跟著原始專案一起更新的話,需要額外做一點小撇步 [1]。
例如原始專案的網址是 http://gitlab/userA/project,fork 出來的專案網址會是 http://gitlab/userB/project。
不過原始專案會由原始專案的專案成員繼續更新,而自己 fork 下來的專案則會停在執行 fork 當時的狀況
如果想要跟著原始專案一起更新的話,需要額外做一點小撇步 [1]。
2015年8月21日 星期五
使用 pyVmomi 時略過 HTTPS 警告
在使用 pyVmomi 連接 VMware 的 API 時,第一個遇到的問題是程式出現以下的警告:
不過簡單地搜尋一下,就看到 [1] 的解法,只要把 requests 這個套件的警告關掉就可以了。
程式印出的回覆如下:
參考資料:
/usr/lib/python2.6/site-packages/requests-2.7.0-py2.6.egg/requests/packages/urllib3/connectionpool.py:768: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html看起來就是因為連線要使用 HTTPS,但是沒有給予憑證的問題~。
不過簡單地搜尋一下,就看到 [1] 的解法,只要把 requests 這個套件的警告關掉就可以了。
import atexit import requests from pyVim import connect # Disable the checking of certification. requests.packages.urllib3.disable_warnings() # Initiate the connection to VMware vSphere. service_instance = connect.SmartConnect( host="192.168.200.200", user="administrator@vsphere.local", pwd="qwer", port=443) atexit.register(connect.Disconnect, service_instance) # Get the session ID from the connection. session_id = service_instance.content.sessionManager.currentSession.key print("Session ID: %s" % session_id)
程式印出的回覆如下:
Session ID: 521eab6e-7ef1-d7e6-1f67-ba38dd7e2487
參考資料:
2015年8月19日 星期三
指定版本安裝 Python 套件:以 easy_install 為例
Python 常見的套件管理程式有 easy_install 跟 pip,兩者都有可能直接內建在作業系統上
因為軟體開發時,通常需要指派固定的第三方套件版本,以確保不會因為第三方套件的意外升級導致軟體出錯
因此就找了以 easy_install 來安裝指定版本的 Python 套件的方法。
完整的介紹可以參考 [1],有包括 easy_install 與 pip 的說明。
因為軟體開發時,通常需要指派固定的第三方套件版本,以確保不會因為第三方套件的意外升級導致軟體出錯
因此就找了以 easy_install 來安裝指定版本的 Python 套件的方法。
完整的介紹可以參考 [1],有包括 easy_install 與 pip 的說明。
2015年8月18日 星期二
在 Python 2.6 執行指令並擷取回應
想要用 Python 執行某個指令,並且把指令回覆的資料拿來做後續的程式處理
在 Python 2.7 以上版本可以用 subprocess.check_output() 這個方法
不過看了一下文件,Python 2.6 似乎沒有 check_output 的方法,有的只有 Popen 而已。
在 Python 2.7 以上版本可以用 subprocess.check_output() 這個方法
不過看了一下文件,Python 2.6 似乎沒有 check_output 的方法,有的只有 Popen 而已。
2015年8月12日 星期三
無法啟用 GlusterFS 的 NFS 服務
GlusterFS 本身有提供 NFS 的介面,並且預設就會開啟
不過最近在把一台壞掉的 GlusterFS 節點重裝,並且恢復成叢集的一部分時
遇到了 NFS 不知道為什麼,一直打不開的問題。
不過最近在把一台壞掉的 GlusterFS 節點重裝,並且恢復成叢集的一部分時
遇到了 NFS 不知道為什麼,一直打不開的問題。
2015年8月5日 星期三
在 Python 匯入其他資料夾的模組
這個問題在網路上其實可以找到非常多的討論,好像很多人都遇到一樣的問題
花了一些時間研究,雖然還是搞不太懂怎麼樣用相對路徑匯入模組
不過至少純以專案內自己的絕對路徑,目前實驗是可以運作的~。
花了一些時間研究,雖然還是搞不太懂怎麼樣用相對路徑匯入模組
不過至少純以專案內自己的絕對路徑,目前實驗是可以運作的~。