在紅帽企業版7發布之后僅僅幾周,centos7也發布了,并且包含了與紅帽同樣令人興奮的功能。除了期待已久的systemd和當前熱門的Docker,此次發布還使系統自動從版本6更新到版本7而不需要安裝鏡像文件成為可能。雖然升級還需要重啟,因此不能算是一種live upgrade,但對于那些只能通過遠程訪問的服務器來說還是非常方便的。
紅帽早已發布并且文檔化了必要的更新工具。CentOS團隊還來不及導入、測試和重新構建工具,但是開發人員早已經在做開始做了-而且他們提供了未測試的二進制文件。
請注意:由于這些包還未經測試,你不應該,通過任何方式,在除了像備用測試機這種你可以簡單的重新部署并且沒有任何有價值數據的機器上嘗試它。千萬不要在生產機器上嘗試它!
但是如果你想初步的了解下工具是大體上如何工作的,我推薦你建立一個簡單CentOS 6虛擬機,安裝盡可能少的程序包以及所有的系統更新。然后,從上文提到的CentOS庫中安裝這些rpm。
在這些rpm當中有個Preupgrade Assistant,它可以在系統上安全的執行:preupg僅僅是分析系統而不會執行任何任務,執行后它會給出一些建議告訴更新程序在更新的時候去搜索什么。
由于我僅在安裝了很少服務的系統上運行,所以在運行preupg后我沒有得到實際的結果。甚至在一臺裝了更多服務的系統上也得到了相同的結果(有許多行,因此只顯示部分行作為例子);
$ sudo preupg
Preupg tool doesn't do the actual upgrade.
Please ensure you have backed up your system and/or data in the event of a failed upgrade
that would require a full re-install of the system from installation media.
Do you want to continue? y/n
y
Gathering logs used by preupgrade assistant:
All installed packages : 01/10 ...finished (time 00:00s)
All changed files : 02/10 ...finished (time 00:48s)
Changed config files : 03/10 ...finished (time 00:00s)
All users : 04/10 ...finished (time 00:00s)
...
042/100 ...done (samba shared directories selinux)
043/100 ...done (CUPS Browsing/BrowsePoll configuration)
044/100 ...done (CVS Package Split)
...
|samba shared directories selinux |notapplicable |
|CUPS Browsing/BrowsePoll configuration |notapplicable |
|CVS Package Split |notapplicable |
...
就像上面提到的,Preupgrade Assistant只是幫助分析在更新的時候會出現什么問題-真正的步驟需要用l redhat-upgrade-tool-cli. 工具完成。要讓這個工具可以有效工作,必須先導入CentOS 7的鍵:
$ sudo rpm --import http://isoredirect.centos.org/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
然后,實際的升級工具被調用,相應的選項是將來的發行版本以及下載數據的URL地址。另外由于這工具會對preupg沒有提前運行發出警告,故我不得不添加了--force選項屏蔽,雖然這個警告是正確的。一旦升級工具被調用起來,一些必要信息,包以及圖片開始下載,然后它會請求重啟,這重啟操作不會自動發生。
$ sudo /usr/bin/redhat-upgrade-tool-cli --force --network 7 --instrepo=http://mirror.centos.org/centos/7/os/x86_64
setting up repos...
.treeinfo
| 1.1 kB 00:00 getting boot images...
重啟之后,機器會使用下載好的包開始更新自己,依據這機器的處理速度不同相應的解析時間會有所不同,期望數分鐘而不是幾秒。無論怎樣,如果一切運行正常的話,下次登錄將會進入CentOS 7界面了。
$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
結論表明升級工具運行的很好。 雖然它比不上一個真正的live upgrade,如果提供一個非常好的升級遠程服務器方式。 我測試了一臺干凈的虛擬機還有一臺電腦裸機,遠程服務器,升級工具都工作地出奇的好。 不幸的是,分析工具沒能像我期望的那樣工作,這可能是由于它還未經測試或者是我沒有正確地使用它。隨著時間的推移, 我期待著升級工具會如何發展和改善。 但是 , 再一次,如前所述 – 不要 在自己的 產品 服務器上嘗試它。