本文是探討在基於RHEL/CentOS5系列linux上部署convirt宿主機,以KVM做爲Hypervisor。因爲一臺CMS能夠管理足夠的宿主機,因此部署一臺CMS將不是很大的問題,在之後會研究自動部署CMS。python
對於安裝過ConVirt的朋友必定知道,官網WIKI提供的方式是先下載convirture官方的yum源文件,而後經過連網再去下載安裝CMS和convirture-tools的相關軟件,結合本地linux的yum源解決相關的軟件依賴問題。通常狀況下,對於部署少許的幾臺宿主機而言,連網外網下載也不會有很大問題,可是若批量部署宿主機,幾百臺,幾千臺甚至更多那按照官方步驟安裝的話將是一個麻煩的工做,何況連外網部署也具備必定的安全風險。爲了可以快速批量的部署宿主機,我做了多方的研究和測試。linux
這裏我想提一點,在研究虛擬化以前,我也只是瞭解一些,對於怎麼樣去實際部署,怎麼樣去選擇軟件,shell,python,kickstart,lvm,nfs都只是出於瞭解階段,可是實際問題放在這,就要想盡辦法去實現,不會的現學,不瞭解的就去了解。我以爲運維最重要的是要有思路,要學會分析問題。web
1.下載convirt-tools.shell
http://www.convirture.com/downloads/convirture-tools/2.0.1/convirture-tools-2.0.1.tar.gzcentos
2.解壓convirture-tools到home目錄下。在官方wiki看到,在安裝convirture-tools以前,須要以root用戶執行./convirt-tool install_dependencies 而後再執行./convirt-tool setup。所以在安裝CentOS5.6系統時就將相應的軟件包安裝好,會省去不少麻煩。安全
經過分析軟件包裏的腳本文件在/home/convirture-tools/common/scripts裏的RedHat_functions文件了找到以下代碼服務器
- #install convirt tool dependencies
- install_dependencies(){
- cd /etc/yum.repos.d
- if [ "${VER%.*}" == "6" ]; then
- wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo
- else
- wget --no-cache http://www.convirture.com/repos/definitions/rhel/5.x/convirt.repo
- fi
- $SUDO yum -y install dnsmasq tunctl tcp_wrappers socat expect pexpect
- }
能夠看到在進行setup以前須要安裝dnsmasq,tunctl,tcp_wrappers,socat,expect,pexpect,其中socat是centos自帶光盤中沒有的包,其他的都是能夠經過光盤鏡像中獲取,所以,只需到http://www.convirture.com/repos/definitions/rhel/5.x/convirt.repo文件中的app
http://www.convirture.com/repos/deps/RHEL/5.x/去下載好32爲的或64爲的socat備用。而後將代碼修改成運維
- #install convirt tool dependencies
- install_dependencies(){
- # cd /etc/yum.repos.d
- # if [ "${VER%.*}" == "6" ]; then
- # wget --no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo
- # else
- # wget --no-cache http://www.convirture.com/repos/definitions/rhel/5.x/convirt.repo
- # fi
- $SUDO yum -y install dnsmasq tunctl tcp_wrappers socat expect pexpect
- }
這樣在安裝系統的過程當中就不從convirt的官方下載軟件,以方便從本身搭建的yum源下載。tcp
3.做修改後從新打包convirt-tools。備用。
4.搭建本身的yum源。本文采用web服務器存放CentOS5.6的鏡像內容,並將下載好的socat,從新打包好的convirt-tools放到web服務器上。
實際上部署和安裝通常的linux沒啥區別,就是在部署時儘可能只安裝須要的軟件包,多餘的不要,將盡可能多的資源分配給虛擬機,以提升虛擬機性能。部署狀況有如下幾種
1.若是是全新安裝部署,服務器都還在機房裏沒有發出去,能夠採用PXE方式安裝,定製好kickstart 文件就能夠批量安裝了。
2.咱們的需求是要逐步更換正在運行的Vmware和XenServer,並且服務器沒有遠控。最早想到的就是用U盤引導+kickstart到現場去安裝
3.因爲咱們使用的服務器一部分在公司,另外一部分託管到別的機房,因此第2種方案有點費神費力。因而我開始研究是否能夠在線遠程更換。經過編輯grub+vmlinuz+initrd.img+kickstart+vnc能夠實現遠程更換。