KVM 虛擬機自動部署腳本:kvm_vm_setup

jopen 9年前發布 | 80K 次閱讀 虛擬化 kvm_vm_setup

kvm_vm_setup 是 KVM 虛擬機自動部署腳本,可以自動化的完成 kvm 虛擬機的部署,包括 ip 注入。

主要功能如下:

1 全自動的完成虛擬機生成、主機名、ip地址配置;

2 支持Windows系統、RHEL6/RHEL7、CentOS6/CentOS7、RHEL6/RHEL7衍生系統、Ubuntu系統的部署,其它系統未做測試;

使用前提條件:

1 Windows、Linux系統按照幫助文檔要求制作鏡像:

Windows 鏡像制作請參考Windows_img_make,Linux鏡像制作請參考Linux_img_make;

2 宿主機上,鏡像、虛擬機的存儲路徑為/datapool;

3 如果要使用lvm,vg的名字必須是datavg;

4 宿主機系統只支持RHEL6/RHEL7、CentOS6/CentOS7、RHEL6/RHEL7衍生系統,本腳本通過調用Libvirt配置虛擬機,通過guestfish編輯虛擬機鏡像,需要安裝虛擬化組件、Libvirt組件、guestfish組件:

首先需要運行firsh.sh腳本,會自動判斷操作系統,并安裝組件,升級操作系統。

安裝完成后重啟系統,并啟動libvirt服務。

service libvirtd restart

使用方法:

1 下載腳本源代碼

git clone https://github.com/xiaoli110/kvm_vm_setup

2 編輯vm.csv文件,格式如下:

#vmflag,template,name,disk1_size,disk2_size,mem_size,cpu_num,nic_type,nic1_bridge,nic2_bridge,vnc_port,outip,outmask,outgw,inip,inmask,ingw

#vm template name must be ''win2003ent32chs' 'win2003ent64chs' 'win2008ent64chs' 'centos56x64' 'ubuntu1204X64'

#keyword vmLvm means create lvm for vm,default vg is datavg

#keyword vmCpOnly means not resize images , just cp imaiges,default vg is datavg

#kerword url: means download vm images path,like

#url:http://172.16.1.100/

ftp:ftp://ftpuser1:password@ftp.myimages.com:10021/

ftp:ftp://ftpuser2:password@ftp.myimages2.com:10021/

此處如果指定url,會到url上去拉去虛擬機鏡像,支持ftp方式,拉取方式為url加鏡像名字,鏡像名字為下面虛擬機配置文件中的鏡像名字。

可以指定兩個url,腳本會自動比較多個url的速度,需要在url里面放置一個200MB大小的名為“ratetest”的文件。

如果沒有指定url,腳本會認為/datapool已經有指定的鏡像,如果/datapool下面也沒有鏡像,就會報錯退出。

vm,win2003ent32chs,win2003-138,20G,20G,2048,2,e1000,br1,br1,5921,10.10.10.21,255.255.255.0,10.10.10.1,192.168.122.138,255.255.255.0,none

vmLvm,win2003ent32chs,virt1-lab-222,10G,10G,2048,2,e1000,br2,br2,59222,10.0.0.222,255.0.0.0,10.0.0.1,172.16.2.222,255.255.255.0,none

vmCpOnly,centos6564.qcow2,centos65-8,30G,20G,2048,2,virtio,br1,br1,59008,10.10.10.8,255.255.255.0,10.10.10.1,172.16.2.8,255.255.255.0,none

虛擬機生成配置文件信息如下:

第一個關鍵字意義如下:

vm 使用qcow2方式,并通過guestfish進行文件系統的擴展;

vmLvm 使用lvm方式;

vmCpOnly 使用qcow2方式,直接復制鏡像。

第二個關鍵字為鏡像名字,建議名字包含操作系統信息。

后面的配置關機字依次為虛擬機主機名,第一塊磁盤大小,第二塊磁盤大小,CPU、內存配置等信息。

注意:

1 如果使用vm關鍵字進行磁盤擴展,第一塊磁盤必須大于鏡像;

2 每個關鍵字必須有內容,第二塊磁盤必須有,最小為1G;

3 ip地址合法性本腳本不作檢查;

4 CentOS7的虛擬機只支持在CentOS7的宿主機上進行配置。

運行腳本

使用命令

python virtauto.py 就可以自動生成虛擬機。

virtauto.py 幫助信息如下:

kvm vm setup script

-h, --help print this

--vg,assige vg name,such as --vg=datavg,vg=vmVG

default vg name is 'datavg' if not assige

--config,assige config file name ,such as --config=vm.csv

config file must in same directory and must be csv

default config file name is 'vm.csv' if not assige

--url,give path to download vm images,such as --url=ftp://user1:pass@172.16.1.100/

項目主頁:http://www.baiduhome.net/lib/view/home/1437968618894

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!