KVM環境にCentOS6.5をインストール(kickstart利用)

最低限のパッケージ構成を目指したいと思います。

KVM環境構築

KVMインストール
  • qemu-kvm KVM本体
  • python-virtinst virt-install,virt-cloneなどGUIでVMの操作をするコマンド群
  • libvirt 様々な仮想環境共通のAPIライブラリ
yum -y install qemu-kvm
yum -y install python-virtinst
yum -y install libvirt
/etc/init.d/libvirtd start
ブリッジインターフェースの作成

デフォルトだとNATになるようで不便なのでブリッジインターフェースを作成します。

cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-br0
  • vi ifcfg-br0
DEVICE=br0
HWADDR=08:2e:5f:32:54:f0
ONBOOT=yes
BOOTPROTO=none
TYPE=Bridge
IPADDR=192.168.1.3
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
  • vi ifcfg-eth0
DEVICE=eth0
HWADDR=08:2e:5f:32:54:f0
ONBOOT=yes
TYPE=Ethernet
BRIDGE=br0
仮想イメージの作成

仮想イメージのファイルフォーマットはいくつかありますが、内部スナップショットを取るためにはrawフォーマットではなくてqcow2フォーマットを指定する必要があります。

qemu-img create -f qcow2 /var/lib/libvirt/images/centos-server.qcow2 20G

ゲストOSをインストール

kickstartを使わずDVDインストール場合

インストールゲストOSのイメージを用意

mkdir /usr/local/src/KVM
cd !$
wget http://ftp.riken.jp/Linux/centos/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso
virt-install \
    --name server_name \
    --hvm \
    --virt-type kvm \
    --ram 2048 \
    --vcpus 2 \
    --arch x86_64 \
    --os-type linux \
    --os-variant rhel6 \
    --disk path=/var/lib/libvirt/images/centos-server.qcow2 \
    --network bridge=br0 \
    --nographics \
    --location /usr/local/src/KVM/CentOS-6.5-x86_64-bin-DVD1.iso \
    --extra-args "console=ttyS0"
kickstartを使いネットワークインストールの場合

kickstartファイルの準備

  • proxy環境
    こちらを参考にしてください。
    http proxy環境でkickstartを利用したネットワークインストール方法 - GeekなNooblog
    http://geekna.hatenablog.jp/entry/2014/01/07/223134

  • rootpwの設定
    検閲Tech: Kickstart中のパスワードの暗号化
    http://ken-etsu-tech.blogspot.jp/2008/01/kickstart.html

  • シリアルコンソールの設定
    virt-installで--extra-args "console=ttyS0"と指定した場合には、bootloaderの--appendにはconsole設定をしないこと。重複すると入力がエコーされるようになってしまいます。

  • vi /usr/local/src/KVM/ks.cfg

install
url --url=http://ftp.riken.jp/Linux/centos/6.5/os/x86_64/
lang ja_JP..UTF-8
keyboard jp106
network --onboot yes --device eth0 --bootproto static --ip 192.168.1.123 --netmask 255.255.255.0 --gateway 192.168.1.1 --noipv6 --nameserver 192.168.1.3 --hostname server_name
# network --onboot yes --device eth0 --bootproto dhcp --noipv6 --hostname server_name
rootpw  --iscrypted パスワード
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Tokyo
bootloader --location=mbr --driveorder=vda --append="crashkernel=aauto"
repo --name="CentOS"  --baseurl=http://ftp.riken.jp/Linux/centos/6.5/os/x86_64/ --cost=100

%packages --nobase
@core
%end

ゲストOSインストール

virt-install \
    --name server_name \
    --hvm \
    --virt-type kvm \
    --ram 2048 \
    --vcpus 2 \
    --arch x86_64 \
    --os-type linux \
    --os-variant rhel6 \
    --disk path=/var/lib/libvirt/images/centos-server.qcow2 \
    --network bridge=br0 \
    --nographics \
    --location http://ftp.riken.jp/Linux/centos/6.5/os/x86_64/ \
    --initrd-inject /usr/local/src/KVM/ks.cfg \
    --extra-args "console=ttyS0,115200n8 ks=file:/ks.cfg"
  • --name
    任意のサーバの名前

  • --hvm
    完全仮想化
    準仮想化は--paravirt

  • --virt-type kvm
    仮想化のタイプを選択、KVMとかXenとか

  • --ram 2048
    ゲストOSのRAMサイズ

  • --vcpus 4
    ゲストOSのCPU数

  • --arch x86_64
    CPUのアーキテクチャを選択64bitなのでx86_64。32bitならi386とか

  • --os-type linux
    OSの種類 windowsなども。

  • --os-variant rhel6
    OSの種類。オプションですが設定しておくとOSごとに最適化されたコンフィギュレーションが用意される。 fedora8とかwinxpとか設定可能。

  • --disk path=/var/lib/libvirt/images/centos-server.qcow2
    先ほど作成した仮想イメージを指定。

  • --network bridge=br0
    先ほど作成したブリッジインターフェースを指定。

  • --nographics
    ゲストOSのインストール時にGUIを使わない場合は指定。 VNCを利用する場合は--graphics vncと指定する。

  • --location /usr/local/src/KVM/CentOS-6.5-x86_64-bin-DVD1.iso
    インストールするdiskイメージを指定。

  • --initrd-inject /usr/local/src/KVM/ks.cfg
    kickstartファイルを指定する。これはホストOSのパスを指定。

  • --extra-args "console=ttyS0 ks=file:/ks.cfg"
    インストール時のコンソールを指定。
    kickstartファイルを指定。ホストOS

最低限必要なサービスだけ起動

私はblk-availability,crond,ip6tables,iptables,lvm2-monitor,network,rsyslog,sshd,udev-postのみchkconfig onしています。

参考

centos KVM virshコマンドのまとめ - mediawiki
http://fukumoto-tech.serveblog.net/wiki/index.php?centos%20KVM%20virsh%A5%B3%A5%DE%A5%F3%A5%C9%A4%CE%A4%DE%A4%C8%A4%E1

system2222:CentOS6.4(minimal) KVMによる仮想環境構築(テキストモード)
http://blog.livedoor.jp/hide_system/archives/51888446.html