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/223134rootpwの設定
検閲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