KVM 仮想マシンの自動インストール

KVM 環境で仮想マシンを利用してインストール手順などを検証するとき、最低限のパッケージを入れた状態の OS を何度も繰り返して作成することがよくあります。このようなときは、仮想マシンを全自動でインストールするシェルを用意しておくと便利です。

仮想マシンを全自動でインストールするシェルはつぎの github に公開しています。
https://github.com/uvirt/kvm-sample
CentOS 6.8 用と CentOS 7.2 用の2つのシェルを用意しています。

しかしながら、yum レポジトリの設定だけは済ませておきたいといった場面がよくあります。これに対応するため、インストールメディアの DVD をゲスト OS 内の /media ディレクトリにコピーし、それを利用してローカル yum レポジトリの設定をおこなうようにしています。この方法により、ゲスト OS はいちいちインターネットにアクセスすることなく DVD に含まれる RPM パッケージを後から自由にインストールすることができます。

シェルの使用方法

シェルの使用方法を説明します。まずは、KVMホスト側の環境を設定します。つぎのコマンドを入力してKVMをインストールします。以下は Fedora 24 での例となります。

# dnf groupinstall virtualization --setopt=group_package_types=mandatory,default,optional -y
# dnf install libguestfs libguestfs-tools -y

つぎにゲストOSのインストールメディアをKVMホストのディレクトリ /var/lib/libvirt/images 以下にコピーします。

➤ CentOS 6.8 (DVD2は省略可能です)
# cd /var/lib/libvirt/images
# wget http://ftp.riken.jp/Linux/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-bin-DVD1.iso
# wget http://ftp.riken.jp/Linux/centos/6.8/isos/x86_64/CentOS-6.8-x86_64-bin-DVD2.iso

➤ CentOS 7.2
# cd /var/lib/libvirt/images
# wget http://ftp.riken.jp/Linux/centos/7.2.1511/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso

KVM 仮想マシン自動インストールのシェルをダウンロードします。

➤ CentOS 6.8
# wget https://raw.githubusercontent.com/uvirt/kvm-sample/master/centos68-install.sh

➤ CentOS 7.2
# wget https://raw.githubusercontent.com/uvirt/kvm-sample/master/centos72-install.sh

シェルをエディターで開いて、パラメータを設定します。以下の部分を設定したい値に変更してください。

#-- Guest Name (Domain Name)
DOM=centos68

#-- Guest Memory Size (MB)
RAM=1024
#-- Guest Disk Size (GB)
SIZE=16.0
# -- Virtual NETWORK
VIRTUALNETWORK=network:default

#-- root password
PASSWORD=password
#-- Hostname
HOSTNAME=centos68.example.com
#-- IP Address
IP=192.168.122.110
#-- Netmask
NETMASK=255.255.255.0
#-- Gateway IP
GATEWAY=192.168.122.1
#-- DNS server
NAMESERVER=8.8.8.8,8.8.4.4
#-- NTP server
NTPSERVERS=0.centos.pool.ntp.org,1.centos.pool.ntp.org,2.centos.pool.ntp.org,3.centos.pool.ntp.org

シェルを実行します。約15分で仮想マシンのインストールが完了します。

➤ CentOS 6.8
# sh centos68-install.sh

➤ CentOS 7.2
# sh centos72-install.sh

インストールが完了したら、つぎのコマンドで仮想マシンを起動できます。

➤ CentOS 6.8
# virsh list --all
# virsh start centos68
# virsh console centos68

➤ CentOS 7.2
# virsh list --all
# virsh start centos72
# virsh console centos72