這是 OpenStack 實施經驗分享系列的第 11 篇。python
本節教你們更新 OpenStack 組件的方法。請注意,是更新(Update)而不是升級(Upgrade)。更新是給組件打補丁,版本不變;而升級是刷新版本,好比從 kilo 升級到 liberty。git
對於已經部署好的 OpenStack,咱們有更新某個組件的需求嗎? 答案是:有!github
OpenStack 是軟件,是軟件就會有 bug。 OpenStack 包含了不少組件,結構很鬆散,每一個組件能夠單獨更新,只要保證各個組件都屬於同一個大版本(好比 kilo, liberty)就不會有問題。spa
當咱們遇到了 bug,若是社區已經有 fix,只須要更新包含該 fix 的組件就能夠了,其餘組件保持不變。ip
下面以 nova 組件爲例演示如何更新。 假設目前部署的 OpenStack 是 kilo,如今發現了一個 bug,須要升級,最簡單的辦法是升級到 nova 在 kilo 裏的最新版本,步驟以下:開發
從 github clone nova。部署
切換到 kilo 的最新版本。get
安裝 nova python 源碼。源碼
重啓全部 nova-* 服務。it
OpenStack 的因此代碼都是在 github 上維護的,每一個模塊有本身的 repository. nova 的 repository 在 https://github.com/openstack/nova
點擊 「Branches」,能夠看到 nova 最近的幾個版本。
咦,怎麼沒有 kilo? 彆着急,點擊 「Tags」。
這裏有 kilo-eol,"eol" 表示 「end of life」,意味着 nova 對於 kilo 不在更新了,是 kilo 的最終版本。若是要更新 kilo 上的 nova,用這個版本就好了。
經過 git clone 命令下載 nova,下載連接以下:
運行命令:
git clone https://github.com/openstack/nova.git
下載完成後,查看當前的 branch 爲 master:
切換到 kilo-eol:
確認目前已是 kilo-eol 了:
OpenStack 用 python 開發,更新版本很簡單,只須要經過 pip 命令安裝新版本的源代碼就好了,沒有編譯等步驟。
在 nova 目錄下執行以下命令:
pip install .
nova 已經從 nova-2015.1.3.dev1 更新到 nova-2015.1.4 了。
全部運行了 nova-* 服務的節點(控制節點和計算節點)都須要更新源代碼並重啓服務,最簡單的方法是重啓整個節點。
至此,nova 組件更新完成。下節咱們將再分享一個 troubleshooting 的案例。