#KVMオペレーション自動化スクリプト #以下のスクリプトを実行することで、KVMのオペレーションを対話形式で #操作可能となります。 #選択メニューとして以下の項目があります。 #■基本操作 #起動、一時停止、再開、停止、強制停止等の基本的な操作を #対象の仮想マシンを選択することで実行できます。 #■インストール #新規作成したい仮想マシン名、メモリ量(MB)、ディスクサイズ(GB)、光学ドライブ又はイメージファイルのパスを #入力することで、仮想マシンのインストールが始まります。 #※ネットワークはブリッジ接続に固定しています。 #■削除 #削除したい仮想マシン名を入力することで、ゲストOSの削除が可能となります。 #■複製 #複製したい仮想マシン名を入力し、新規仮想マシン名を入力することで、複製が可能となります。 #■ライブマイグレーション #移行したい仮想マシン名、移行先のIPアドレス、移行先ホストのユーザ名、パスワードを #入力することで、ライブマイグレーションが実行可能となります。 #※前提条件として、ライブマイグレーションが実行できる環境(移行先をNFSで共有等)を設定して #おく必要があります。 #■バックアップ #バックアップを取得したい仮想マシン名、保存先を入力することでバックアップが #可能となります。 #■復元 #新規仮想マシン名、メモリ量(MB)、復元したいイメージファイルのパスを入力することで #仮想マシンを復元することが可能となります。 #※ネットワークはブリッジ接続に固定しています。 #■状態表示 #現在設定されている仮想マシンの一覧を表示することが可能となります。 #■終了 #スクリプトを終了します。 #シェルスクリプト #------------------------------------------------------------------------------------ #!/bin/bash PS3="実行したい処理番号を選択してください" select cmd in 基本操作 インストール 削除 複製 ライブマイグレーション バックアップ 復元 状態表示 終了 do case $cmd in 基本操作) select BASICOP in 起動 一時停止 再開 停止 強制停止 戻る do case $BASICOP in 起動) echo "起動したい仮想マシン名を入力してください" read guestname virsh start $guestname ;; 一時停止) echo "一時停止したい仮想マシン名を入力してください" read guestname virsh suspend $guestname ;; 再開) echo "再開したい仮想マシン名を入力してください" read guestname virsh resume $guestname ;; 停止) echo "停止したい仮想マシン名を入力してください" read guestname virsh shutdown $guestname ;; 強制停止) echo "強制停止したい仮想マシン名を入力してください" read guestname virsh destroy $guestname ;; 戻る) echo "戻ります" break ;; *) echo "$REPLY"'というコマンドはありません' ;; esac echo done ;; インストール) echo "仮想マシンのインストールを実行します" echo "新規仮想マシン名を入力してください" read guestname echo "メモリ量をMBで入力してください" read Memory echo "ディスクサイズをGBで入力してください" read Disk echo "光学ドライブ又はISOイメージのファイルのパスを入力してください" read PASS virt-install --name $guestname --ram $Memory --file=/var/lib/libvirt/images/$guestname.img --file-size=$Disk --network=bridge:br0 --cdrom=$PASS --vnc ;; 削除) echo "仮想マシンの削除を実行します" echo "削除したい仮想マシン名を入力してください" read guestname virsh destroy $guestname virsh undefine $guestname rm -f /var/lib/libvirt/images/$guestname.img ;; 複製) echo "仮想マシンの複製を実行します" echo "複製したい仮想マシン名を入力してください" read guestname echo "新規仮想マシン名を入力してください" read newguestname virsh destroy $guestname virt-clone -o $guestname -n $newguestname -f /var/lib/libvirt/images/$newguestname.img ;; 状態表示) echo "仮想マシンの一覧を表示します" virsh list --all ;; ライブマイグレーション) echo "ライブマイグレーションを実行します" echo "移行したい仮想マシン名を入力してください" read guestname echo "移行先のIPアドレスを入力してください" read IPADDR echo "移行先ホストのユーザ名を入力してください" read USER virsh migrate --live $guestname qemu+ssh://$USER@$IPADDR/system ;; バックアップ) echo "バックアップを実行します" echo "バックアップを取得したい仮想マシン名を入力してください" read guestname echo "バックアップ先のパスを入力してください" read BACKUP cp /var/lib/libvirt/images/$guestname.img $BACKUP ;; 復元) echo "復元を実行します" echo "新規仮想マシン名を入力してください" read guestname echo "メモリ量をMBで入力してください" read Memory echo "復元したいイメージファイルのパスを入力してください" read Img virt-install --import --name $guestname --ram $Memory --network=bridge:br0 --disk path=$Img ;; 終了) echo "終了します" break ;; *) echo "$REPLY"'という処理はありません' ;; esac echo done #------------------------------------------------------------------------------------