読者です 読者をやめる 読者になる 読者になる

KVMメモ(2回目)

はじめに

rpmbuildでカーネルアップデートごっこするためにCentOSを入れたくなったので、 KVMに入れたときのメモ。

その昔にもKVMを単に使うということをしていたけれど、 結構かわっていたので再度メモ。

nbisco.hatenablog.com

環境

まずはこれを入れる

kvm本体とVNCクライアントのnovnc。 novncはブラウザから使える

$ sudo apt install kvm libvirt virtinst virt-viewer --install-recommends 
$ sudo apt install novnc --install-recommends

VMディスク作成

直接/dev/sdXとかを使ってもよいけども、 ディスク1個しかないし、ディスクプールもないので、 標準っぽいqcow2を使う。

$  qemu-img create -f qcow2 centos.img 10G

bridgeの作成

VMにも物理マシンと同じセグメントのIPを割り当てたいので、bridge接続できるようにしておく。

/etc/network% diff -ur interfaces.bk interfaces
--- interfaces.bk 2015-12-23 09:47:39.259176355 +0900
+++ interfaces    2015-12-23 09:54:19.371194634 +0900
@@ -1,3 +1,11 @@
 # interfaces(5) file used by ifup(8) and ifdown(8)
-auto lo
+auto lo br0 eth0
 iface lo inet loopback
+iface eth0 inet manual
+
+allow-hotplug eth0
+iface br0 inet dhcp
+bridge_ports eth0
+bridge_maxwait 0
+bridge_fd 0
+bridge_stp off

VMインストールサマリ

以下のシェルスクリプトを適宜変えて使う。

必要に応じて変えるのはこれ。

  • name:VMの名前
  • ram:VMに渡すメモリサイズ(MB)
  • vcpus:VMに渡すCPUの数
  • os-variant:特に指定しなくてもよかったかもしれないけど、CentOSなのでrhelにした。
  • disk:VM用ディスク。formatをきちんと指定しないと、VM上のOSがディスクサイズを認識できない。
  • cdrom:インストールにつかうISOファイル
#!/bin/bash

sudo virt-install \
    --connect qemu:///system \
    --name centos-kvm \
    --ram 2048 \
    --disk path=/path/to/centos.img,format=qcow2 \
    --graphics vnc,port=5900,keymap=ja,listen=0.0.0.0 \
    --network bridge=br0 \
    --cdrom /path/to/CentOS-7-x86_64-DVD-1511.iso \
    --vcpus 2 \
    --os-type linux \
    --os-variant rhel7 \
    --virt-type kvm \
    --boot cdrom \
    --hvm 

インストール後にしなきゃいけないこと

そのまま再起動すると、CDドライブに何も入っていないよ!みたいな感じでブートしないので、 VMのCDドライブ部分の設定をコメントアウトする (もしかすると、にするだけでもよかったかもしれない)。

$ sudo virsh
virsh# edit centos-kvm
(diffを取り忘れてしまったけど、cdromっぽいことが書いてある部分を根こそぎ消せばよい)

novncで画面を覗く

websockifyコマンドを叩いたあとで、FirefoxなどのブラウザでアクセスすればVNC画面が現れる。 ブラウザでできるなんていい時代になったものですね。

# 以下のコマンドをたたいたあと、localhost:9000/vnc.htmlにアクセスすると、VNC画面が現れる。
$ websocify -D --web=/usr/share/novnc/ 9000 localhost:5900