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.
- Bertrand Meyer
Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems.
- Charles Connell
註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
註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 時,第一個遇到的問題是程式出現以下的警告:
看起來就是因為連線要使用 HTTPS,但是沒有給予憑證的問題~。
不過簡單地搜尋一下,就看到 [1] 的解法,只要把 requests 這個套件的警告關掉就可以了。
程式印出的回覆如下:
參考資料:
1 |
/ 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 |
不過簡單地搜尋一下,就看到 [1] 的解法,只要把 requests 這個套件的警告關掉就可以了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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) |
程式印出的回覆如下:
1 |
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 匯入其他資料夾的模組
這個問題在網路上其實可以找到非常多的討論,好像很多人都遇到一樣的問題
花了一些時間研究,雖然還是搞不太懂怎麼樣用相對路徑匯入模組
不過至少純以專案內自己的絕對路徑,目前實驗是可以運作的~。
花了一些時間研究,雖然還是搞不太懂怎麼樣用相對路徑匯入模組
不過至少純以專案內自己的絕對路徑,目前實驗是可以運作的~。
訂閱:
文章 (Atom)