1、XMLテンプレート
<! -
WARNING:これは、自動生成されたファイルです。ITへの変更がある可能性が高い
上書きされ、失われました。:このxml構成の変更は、使用して行われるべき
virshを編集ノード1
かのlibvirt APIを使用して他のアプリケーションを。
- >
<ドメインタイプ= 'KVM'>
<名前>ノード1 </名前>
<UUID> fb0d1a74-26c5-4734-87b9-3d8f87ea5eb4 </のuuid>
<メモリユニット= 'KiBの'> 1048576 </メモリ>
<currentMemory単位= 'KiBの'> 1048576 </ currentMemory>
<VCPU配置= '静的'> 1 </ VCPU>
<OS>
<タイプアーチ= 'x86_64の'マシン= 'PC-i440fx-rhel7.0.0'> HVM </タイプ>
<ブートDEV = 'HD' />
<
<CPUモードが= 'カスタム'の一致= '正確'>
<モデルフォールバック= '許可'>ハスウェル-noTSX </モデル>
</ CPU>
<クロックオフセット= 'UTC'>
<タイマー名= 'RTC' tickpolicy =」キャッチアップ'/>
<タイマー名='ピット」tickpolicy = '遅延' />
<タイマー名= 'HPET'が存在= 'NO' />
</クロック>
<on_poweroff>破壊</ on_poweroff>
<on_reboot>再起動</しませんon_reboot>
<on_crash>再起動</ on_crash>
<午後>
<サスペンドに-MEM有効= 'NO' />
<ディスクへのサスペンドが有効= 'NO' />
</午後>
<デバイス>
<エミュレータ>は/ usr / libexecに/ QEMU-KVM </エミュレータ>
<ディスクタイプ= 'ファイル'デバイス= 'ディスク'>
<ドライバ名= 'QEMU' TYPE = 'QCOW2' />
<ソースファイル= 'の/ var / libに/のlibvirt /画像/ centos7.0.qcow2' />
<目標DEV = 'HDA'バス= 'IDE' />
<アドレスタイプ= 'ドライブ'コントローラ= '0'バス= '0'ターゲット= '0'単位= '0' />
</ディスク>
<コントローラタイプ= 'USB'インデックス= '0'モデル= 'ICH9-ehci1'>
<アドレスタイプ= 'PCI'ドメイン= '0000 'バス=' 0' ×00スロット= '0x06の'機能= '0x7の' />
</コントローラ>
<コントローラタイプ= 'USB'インデックス= '0'モデル= 'ICH9-uhci1'>
<マスターstartPortと= '0' / >
<アドレスタイプ= 'PCI'ドメイン= '0000'バス= 'が0x00の'スロット= '0x06の'機能=」0x0'の多機能= 'オン' />
</コントローラ>
<コントローラタイプ= 'USB'インデックス= '0'モデル= 'ICH9-uhci2'>
<マスターstartPortと= '2' />
<アドレスタイプ= 'PCI'ドメイン= '0000'バス= '0×00'スロット= '0x06の'機能= '0x1の' />
</コントローラ>
<コントローラタイプ= 'USB'インデックス= '0'モデル= 'ich9- uhci3 '>
<マスターstartPortと=' 4 '/>
<アドレスタイプ=' PCI 'ドメインは= '0000'バス= '0×00'スロット= '0x06の'機能= 'を0x2'/>
</コントローラ>
<コントローラタイプ=' PCI 'インデックス= '0'モデル= 'PCIルート'/>
<コントローラタイプ= 'IDE'インデックス= '0'>
<アドレスタイプ= 'PCI'ドメイン= '0000'バス= '0×00'スロット=' 0×01 '機能=' 0x1'の/>
</コントローラ>
<コントローラタイプ= 'のvirtio-シリアル'指数= '0'>
<アドレスタイプ= 'PCI'ドメイン= '0000'バス= '0×00'スロット= '0×05'関数= 'は0x0' />
</コントローラ>
<インターフェイスタイプ= 'ネットワーク'>
<MACアドレス= '52:54:00:FF:01:01 '/>
<ソースネットワーク=' private1 '/>
<機種='のvirtio '/>
<アドレスタイプ=' PCI」ドメイン= '0000'バス= '0×00'スロット= '0×03'関数= 'は0x0' />
</インターフェイス>
<インターフェイスタイプ= 'ネットワーク'>
<MACアドレス= '52:54:00:7E:01:02' />
<ソースネットワーク= 'private2' />
<機種= 'のvirtio' />
<アドレスタイプ= 'PCI'ドメイン= '0000'バス= '0×00'スロット= '0x08に'機能= 'が0x0' />
</インターフェイス>
<インターフェイスTYPE = 'ネットワーク'>
<MACアドレス= '52:54:00:B3:01:03 '/>
<ソースネットワーク=' public1 '/>
<機種='のvirtio '/>
<アドレスタイプ=' PCI」ドメイン= '0000'バス= '0×00'スロット= '0x09の'機能= 'は0x0' / >
</インターフェイス>
<インターフェイスタイプ= 'ネットワーク'>
<MACアドレス= '52:54:00:62:01:04 '/>
<ソースネットワーク=' public2 '/>
<機種='のvirtio '/>
<アドレスタイプ= 'PCI'ドメイン= '0000'バス= '0×00'スロット= 'は0x0A'関数= 'は0x0' />
</インターフェイス>
<シリアル型= 'PTY'>
<ターゲットポート= '0' />
<シリアル/>
<コンソールタイプ= 'PTY'>
<ターゲット・タイプ= 'シリアル'ポート= '0' />
</コンソール>
<チャネル・タイプ= 'spicevmc'>
<ターゲット・タイプ= 'のvirtio' NAME = 'com.redhat .spice.0' />
<アドレスタイプ= 'のvirtio-シリアル'コントローラ= '0'バス= '0'ポート= '1' />
</チャネル>
の<input type = 'マウス'バス= 'PS2' />
<INPUT TYPE = 'キーボード'バス= 'PS2' />
<グラフィックTYPE = 'スパイス' autoport = 'YES'>
<画像圧縮= 'OFF' />
</グラフィック>
<音響モデルは= 'ICH6'>
<アドレスTYPE = 'PCI'ドメイン= '0000'バス=の'0x00の'スロット= '0×04'関数= 'は0x0' />
</サウンド>
<動画>
<機種= 'QXL'ラム= '65536' VRAM = '65536 'vgamemは=' 16384'ヘッド= '1' />
<アドレスタイプ= 'PCI'ドメインは= '0000'バス= '0×00'のスロットは= '0×02'関数= 'は0x0' />
</ビデオ>
<redirdevバス= 'USB'タイプ= 'spicevmc'>
</ redirdev>
<redirdevバス= 'USB' TYPE = 'spicevmc'>
</ redirdev>
<memballoonモデル= 'のvirtio'>
<アドレスタイプ= 'PCI' =ドメイン'0000'バス= '0×00'スロット= '0x07の'機能= 'が0x0' />
</ memballoon>
</デバイス>
</ドメイン>
図2に示すように、画像ファイルの後端
3、スクリプトを作成します
[ルート@ localhostのOMC]#のCAT /home/jy/kvm/cmd/clonevm.sh
#/ binに/ bashのの
#パラメータは、受信
#仮想マシン名
DOMname = $ 1
、その後、IF [-z $ DOMname]
「エコー名前を入力してくださいのVMを! "
終了します。9
Fiの
UUID = $(のuuidgen)#
ストレージプールセットポジション
IMGDIR ="の/ var / libに/ libvirtの/画像"
#リア鏡に配置されたディレクトリ
IMG_BK_DIR ="の/ var / libに/ libvirtの/画像/ bkimg」
#vmXMLテンプレートパス
VM_XMLPATH = "/ホーム/ JY / KVM / CMD / xmltmpl / centos7.xml"
#vm設定パス
VM_XML_SYSPATH = "の/ etc / libvirtの/ QEMU" #仮想マシン数ストレージファイルディレクトリVM_CODEFILE =「/ホーム/ JY / KVM /cmd/xmltmpl/vmcode.txt「STARTNUM = `$ VM_CODEFILE`のCATの#は、01-09,10-19,20-29を作成する現在のコーディングマシンを取得します30-39 TO_CREATE_VMNO = $ [STARTNUM + 1] tmpNum = 0
場合は、[$ TO_CREATE_VMNOは10 -lt];その後、
tmpNum = "0 $ TO_CREATE_VMNO"
他
tmpNum = "$ TO_CREATE_VMNO"
Fi回線
MAC_START_PREFIX = "52:54:00:FF:$ tmpNum"
#linux TMPL名
LINUX_BACK_IMG = "centos7.0を。 QCOW2"
".... VMを作成して開始しエコー"
Macは$ MAC_START_PREFIX "でスタートエコー"現在のVM
#检查是否存在
[-fもし"$ IMGDIR / $ DomName.qcow2"];その後、
エコー「はおそらく、VM名を確認してくださいすでに存在しています!"
1番出口
Fiの
CP $ VM_XMLPATH /mnt/tmplvm.xml
のsed -i "sの#<名前>。* </名前>#<名前> $ DomName </名前>#" /mnt/tmplvm.xml
のsed -i「sの#<UUID>。* </ UUID>#<UUID> $ UUID </ UUID>#」
-i sedの"S / <ソースファイル=」。* \。QCOW2' \ /> / <ソースファイル= '$ imgName' \ /> /" /mnt/tmplvm.xml
sedの-i "S / <MACアドレス= 「\(\ {2 \} \):(。* \)\(。* \)\(。* \)\:\(\ {2 \} \。):\(。* \) '\ /> / <MACアドレス=' $ MAC_START_PREFIX:\ 6「\ /> /「/mnt/tmplvm.xml
OS7確保するためのテンプレートとして#、フロントミラーを作成
QEMU-IMGは、-f QCOW2 -b $作成 IMG_BK_DIR / $を$ IMGDIR LINUX_BACK_IMG / $ DomName.qcow2 25G&>を/ dev / null
SLEEP 3
CP /mnt/tmplvm.xml $ VM_XML_SYSPATH / $ DomName.xml
virshをDEFINE $ VM_XML_SYSPATH / $ DomName.xml
エコー$ TO_CREATE_VMNO> VM_CODEFILE $
エコー「を作成したVM !成功"
のvirt-マネージャの
#は、テンプレートのXMLをコピーし、名前を変更し、UUID、ネットワークカードのMAC(マシン・コードのXX:XX:XX:XX: 01( 最初のマシン、二機02):XX)