KVM使う時に、VMのインストールの方法が複数あって毎回どうやってやろうか悩むので、自分が知っている範囲でまとめておきます。
環境
- 手元のマシン
- Mac OS X 10.9.5
- ホストOS
- Ubuntu 14.04
- IPアドレス:10.0.0.1
- ゲストOS
- CentOS 6
- KVM
- virsh 1.2.2
前提
- ホストOSのインストールは完了している
- KVMのインストールも完了している
インストール方法
virt-managerを使う
virt-manger
を使うとGUIでインストールが出来ます。
ホストOSに対してssh
して操作する場合は、X11を転送してあげると手元のマシンからvirt-manager
が使えます。
X11の転送については調べればあちこちに載っているので省略します。
$ ssh -X user@10.0.0.1
ログイン先で
$ virt-manager
と打てば以下の様な画面が開けて、あとは「New」など打てばVMを生成できます。
ということで非常に簡単なのであとは省略します。
virt-installを使う
virt-install
を使うこともできます。
その場合でもVNCでやる場合とconsoleでやる方法があるので両方載せておきます。
consoleでやる場合
consoleでやる場合は全てキーボードで完結できるので、エンジニアが好きな方法かもしれません。
virt-installするときに一緒にimageも作ってくれます。
imageのパスは/var/lib/libvirt/images/
を指定しました。
設定項目 | 設定値 |
---|---|
OS | CentOS 6 |
VM名 | centos_x86_64 |
image | centos_x86_64.img |
image size | 8GB |
image type | qcow2 |
CPU | 1コア |
メモリ | 1GB |
ネットワーク | default |
上記の条件で作成する場合、以下のコマンドになります。
$ virt-install \
--connect=qemu:///system \
-n centos_x86_64 \
-r 1024 \
--disk path=/var/lib/libvirt/images/centos_x86_64.img,size=8,format=qcow2 \
--vcpus=1 \
--os-type linux \
--os-variant=virtio26 \
--network network=default \
--nographics \
--extra-args='console=tty0 console=ttyS0,115200n8 keymap=ja' \
--location http://ftp.jaist.ac.jp/pub/Linux/CentOS/6/os/x86_64/
こうするとconsoleモードでインストールが始まります。
インストールが終わったあと、virsh console
でコンソールがつかめます。
extra-args
でコンソールの設定することで次からもコンソールつかめるようになってました。
前はログインしてからコンソールをつかめるように自分で設定してた気がするのですが、何か便利になってました。
#元から出来たのに以前のやり方が駄目だったのか、最近コマンドが進化したのか。。
VNCでやる場合
VNCによってリモートデスクトップでインストールすることも出来ます。
VNCはポート番号やパスワードを決めることが出来ます。
今回は以下のようにします。
設定項目 | 設定値 |
---|---|
port | 5901 |
listen | 0.0.0.0 |
keymap | ja |
password | hoge |
その場合のコマンドは以下です。
$ virt-install \
--connect=qemu:///system \
-n centos_x86_64 \
-r 1024 \
--disk path=/var/lib/libvirt/images/centos_x86_64.img,size=8,format=qcow2 \
--vcpus=1 \
--os-type linux \
--os-variant=virtio26 \
--network network=default \
--location http://ftp.jaist.ac.jp/pub/Linux/CentOS/6/os/x86_64/ \
--graphics vnc,port=5901,listen=0.0.0.0,keymap=ja,password=hoge
Starting install...
Retrieving file .treeinfo...
Retrieving file vmlinuz...
Retrieving file initrd.img...
Allocating 'virtinst-vmlinuz.Pqtk92'
Transferring virtinst-vmlinuz.Pqtk92
Allocating 'virtinst-initrd.img.IS1ztU'
Transferring virtinst-initrd.img.IS1ztU
Creating domain...
** (virt-viewer:14551): WARNING **: Could not open X display
Cannot open display:
Run 'virt-viewer --help' to see a full list of available command line options
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
Xが開けないと言われますが問題ありません。
あとは手元のマシンからVNCで接続してあげればよいです。
例としてはvnc://ホストマシンのIPアドレス:ポート番号
という感じです。
今回の場合、ホストマシンは10.0.0.1
とし、ポート番号は5901
にしたので、接続してみます。
Macの場合はFinderから「移動」→「サーバへ接続」を押してvnc://10.0.0.1:5901
として「接続」を押したあと、上記で設定したパスワードを入力してあげればよいです。
そうするとCentOSのインストール画面が開きます。
最近はVagrantなどの自動化ツールが流行っているので自分でインストールすることが少なくなるかもしれませんが、ツールを使いすぎると裏で何をしているのかわからなくなります。
そうなると困ったときにトラブルシューティングできません。
あくまで自分でもできた上で省略のためにツールを使う、という形が良いかと思い今回紹介しました。