2. 交互式安裝
2.1 圖形化-本地安裝
2.1.1 圖形化本地CDROM安裝
2.2.2 圖形化本地鏡像安裝
2.2 命令行-本地安裝
2.2.1 命令行CDROM安裝
2.3 圖形化-網絡安裝
2.3.1 圖形化HTTP鏡像
2.3.2 圖形化FTP鏡像
2.3.3 圖形化NFS鏡像
2.4 命令行-網絡安裝
2.4.1 命令行HTTP鏡像
2.4.2 命令行FTP鏡像
2.4.3 命令行NFS鏡像
3. 自動化安裝
3.1 圖形化-PXE安裝
3.2 命令行-PXE安裝
4. 鏡像安裝與克隆
2.1 本地圖像化CDROM安裝
2.2 本地命令行鏡像文件安裝
3. 圖形化網絡安裝
3.1 location方式安裝
3.2 PXE預啟動安裝
1. 概述
KVM的管理有以下幾種方式:
- 圖形界面
- 命令行
- API
本篇博客主要是從圖形界面和命令行,兩種KVM虛擬機管理方式,來配置虛擬機,並安裝操作系統。
2. 交互式安裝
交互式安裝,是區別自動化安裝的安裝方式。交互式安裝能夠給用戶一個很大的自定義空間,當然采用ks.cfg文件的自動化部署也有很大的空間。
交互式安裝,無論是從本地加載系統鏡像,還是從遠程(HTTP/FTP/NFS)下載鏡像,均是同一個安裝界面。不同的是從哪個URL下載而已。
2.1 圖形化-本地安裝
圖形化的本地安裝時,virt-mangeer是類似於VMware workstation一樣的軟件管理工具。能夠實現虛擬設備的分配和配置。
這里以創建一個KVM虛擬機,安裝CentOS6.5操作系統為例。
2.1.1 圖形化本地CDROM安裝
圖形化本地CDROM的安裝,與VMware workstation通過CDROM載入系統鏡像一樣。這里需要console事前已經通過loop形式,裝載了CentOS6.5的系統鏡像。
這種安裝方式比較適合本地沒有系統鏡像,但是卻載入了系統鏡像的有物理光驅等使用場景。[相當於使用物理光驅]
具體過程,參見博客《》
2.2.2 圖形化本地鏡像安裝
圖形化本地鏡像安裝,是在圖形界面啟動之后,選擇文件系統上的系統鏡像。
這種安裝方式比較適合本地沒有CDROM,但是有系統鏡像文件的使用場景,系統鏡像也可以通過其他協議上傳。[相當於建立虛擬光驅]
具體過程,參見博客《virt-manager圖形化配置虛擬機並安裝操作系統.md》
2.2 命令行-本地安裝
命令行管理工具為:virt-install和virsh,前者是安裝工具,后者是shell管理工具。
注:virt-install和virsh的help文檔,參見《virt-install.help.md》和《virsh.help.md》
2.2.1 命令行CDROM安裝
具體操作,參見博客《virt-install命令行配置虛擬機並安裝操作系統.md》
采用這種方式,有兩種情況:
- graphisc vnc
- graphisc none
- nographisc
采用graphisc vnc方式時,和virt-manger無異,均會啟動圖形界面來安裝操作系統。
采用graphisc none方式時,會以文本的形式安裝,文本輸出到當前終端界面。
采用此種方式配置虛擬機並安裝操作系統時,不適合批量部署,因為未提供自動化配置文件。
但是卻十分符合自定義標准,或者安裝windows操作系統
2.3 圖形化-網絡安裝
圖形化網絡安裝時,需要提前配置好支持HTTP/FTP/NFS協議的系統鏡像站點。支持三大協議的系統鏡像站點配置,參見博客《虛擬機console基礎環境配置——系統鏡像站點配置.md》
在部署好系統鏡像站點之后,三大協議的系統鏡像站點分別為:
- http://192.168.80.8/osimage/centos6.5
- ftp://192.168.80.8/osimage/centos6.5
- nfs:192.168.80.8:/mnt/cdrom
只需要在圖形化配置過程中,將對應的URL修改為上述內容即可。這樣的安裝方式,只不過是從遠程下載系統鏡像。
與此對應,本系列博文將自動化配置文件ks.cfg
- http://192.168.80.8/kscfg/http-ks.cfg
- ftp://192.168.80.8/pub/kscfg/ftp-ks.cfg
- nfs:192.168.80.8:
2.3.1 圖形化HTTP鏡像
圖像化HTTP鏡像站點,需要做出的選擇部分,如下圖:
2.3.2 圖形化FTP鏡像
2.3.3 圖形化NFS鏡像
圖形化NFS鏡像站點,配置部分如下圖:
2.4 命令行-網絡安裝
根據上面的工作,命令行在配置了graphics vnc的情況下,同樣會打開圖像界面來交互式安裝。命令行與圖形化安裝的最大區別在於,是否配置graphics vnc模式
如果采用nographics,並且配置了ks.cfg文件之后,便可非交互后台靜默安裝
下面的shell內容,是博主寫在腳本里的內容,后跟虛擬機的number,便可創建node${number}
2.4.1 命令行HTTP鏡像
安裝腳本,remote_http.sh,使用方式如,bash remote_http.sh 11
#!/bin/bash
virt-install \
--connect qemu:///system \
--name node$1 \
--vcpus sockets=2,cores=2,threads=1 \
--ram 512 \
--disk path=/mnt/data/vhost/node$1.img,size=8 \
--network bridge=br0,mac=00:00:00:80:00:$1,model=virtio \
--network bridge=br0,mac=00:00:00:10:00:$1,model=virtio \
--location=http://192.168.80.8/osimage/centos6.5/ \
--graphics vnc,port=59$1,keymap=us \
2.4.2 命令行FTP鏡像
安裝腳本,remote_ftp.sh,使用方式如,bash remote_ftp.sh 11
#!/bin/bash
virt-install \
--connect qemu:///system \
--name node$1 \
--vcpus sockets=2,cores=2,threads=1 \
--ram 512 \
--disk path=/mnt/data/vhost/node$1.img,size=8 \
--network bridge=br0,mac=00:00:00:80:00:$1,model=virtio \
--network bridge=br0,mac=00:00:00:10:00:$1,model=virtio \
--location=ftp://192.168.80.8/pub/osimage/centos6.5/ \
--graphics vnc,port=59$1,keymap=us \
2.4.3 命令行NFS鏡像
安裝腳本,remote_http.sh,使用方式如,bash remote_nfs.sh 11
#!/bin/bash
virt-install \
--connect qemu:///system \
--name node$1 \
--vcpus sockets=2,cores=2,threads=1 \
--ram 512 \
--disk path=/mnt/data/vhost/node$1.img,size=8 \
--network bridge=br0,mac=00:00:00:80:00:$1,model=virtio \
--network bridge=br0,mac=00:00:00:10:00:$1,model=virtio \
--location=nfs:192.168.80.8:/mnt/cdrom \
--graphics vnc,port=59$1,keymap=us \
3. 自動化安裝
自動化安裝,不僅對一個機器實現秒交互安裝,也能夠實現批量安裝。前提是配置了PXE無人值守環境。這個環境主要包括四部分:
- DHCP環境
用於給客戶機分配IP
- TFTP環境
用於客戶機下載引導程序
- 系統站點
用於客戶機下載完整鏡像
- 自動化配置文件
用於自動配置安裝過程
3.1 圖形化-PXE安裝
3.2 命令行-PXE安裝
4. 鏡像安裝與克隆
和VMware workstation一樣,可以通過CDROM設備,進行操作系統的安裝,前提是有系統鏡像。對於KVM而言,既可以使用圖像化安裝方式,也可以使用命令行安裝方式。
圖像化安裝方式,比較適合交互式的自定義安裝;而命令行模式的,比較適合批量自動化安裝(有自動化配置文件ks.cfg)。
2.1 本地圖像化CDROM安裝
本地圖像化安裝需要啟動圖形化。啟動圖像化之后,安裝過程參見博客《virt-manager圖像化安裝操作系統.md》
本篇博客啟動圖形化過程中報錯,具體解決方式參見博客《Error【0004】:virt-manager打開報錯.md》
2.2 本地命令行鏡像文件安裝
3. 圖形化網絡安裝
3.1 location方式安裝
location安裝方式,即從遠程HTTP/FTP/NFS服務器上獲取系統鏡像。自動化配置文件ks.cfg可以通過指定內核參數,從遠程HTTP/FTP/NFS上獲取。
location安裝方式可以從內核指定參數,配置安裝的虛擬機能夠從控制台直接登陸,即virsh console xxxx方式登陸。
#!/bin/bash
NODE=$1
if [ "$#" -ne "1" ];then
echo "指定虛擬機num." && echo 0;
fi
virt-install \
--name node$NODE \
--vcpus sockets=2,cores=2,threads=1 \
--ram 512 \
--location="" \
--extra-args="" \
--os-type linux \
--virt-type kvm \
--disk path=/mnt/data/vhost/node$NODE.img,size=10 \
--network bridge=br0,model=virtio,mac=00:00:00:80:00:$NODE \
--network bridge=br1,model=virtio,mac=00:00:00:10:00:$NODE \
--graphics vnc,listen=0.0.0.0,port=59$NODE,keymap=us \