手当たり次第に書くんだ

飽きっぽいのは本能

目次に戻る

概要

virt-installを使用して仮想マシンを構築します。本稿では仮想マシンの作成とKickstartインストールを合わせて実施しています。

前提条件

OS

CentOS Stream 8を使用します。

SELinux

有効です。無効にする場合はこちらを参照して下さい。

Firewalld

無効です。有効化する場合はこちらを参照して必要な許可設定をして下さい。

その他

ベース環境は「仮想化ホスト」を指定している前提です。

設定

virt-installスクリプト

CentOS用のvirt-installスクリプト

virt-installは長くなるのでスクリプトにまとめておいたほうが簡単です。ネットワークで指定するブリッジインターフェイスは予め作成しておきましょう。

#!/bin/bash

name=myserver
datadir=/var/lib/libvirt/images
ksfile=ks-$name.cfg
ksfilepath=../kickstart/$ksfile

virt-install \
--name $name \
--memory 1536 \
--vcpus 1 \
--location $datadir/CentOS-Stream-8-x86_64-20210402-dvd1.iso \
--extra-args "inst.ks=file:/$ksfile console=ttyS0" \
--initrd-inject $ksfilepath \
--boot uefi \
--os-variant centos-stream8 \
--disk path=$datadir/$name.qcow2,bus=virtio,size=20 \
--network bridge=br10,model=virtio \
--graphics vnc \
--noautoconsole \
--autostart
オプション 説明
name 仮想マシン(インスタンス)の名前を指定します。
memory 仮想マシンに割り当てるメモリ容量を指定します。メモリはos-variantの設定値(OSの種類)で推奨値が異なり、推奨値を下回るメモリ容量の場合はvirt-installの実行時にメッセージが出力されますが、処理は継続します。
vcpus 仮想マシンに割り当てるCPUコア数を指定します。
location インストール元のISOファイルを指定します。SELinuxが有効な環境では/var/lib/libvirt/images以外のディレクトリを指定するとおそらくエラーになります。extra-args, initrd-injectを使用する場合はcdromではなくlocationを使用します。
extra-args CentOSのインストール時にインストーラーに渡すカーネルパラメータです。kickstartのファイル名を指定し、シリアルコンソールを設定(この設定が無いとvirsh consoleで出力されません)しています。
initrd-inject ここで指定したファイルを読み込みます。kickstartのファイル名を指定していますが、こちらはホスト上のパスで指定します。
boot ブートオプションの指定です。
os-variant 指定したOS用に仮想マシンの構成を最適化します。必須ではありませんが推奨される設定です。設定値は”osinfo-query os”コマンドで対象のShort IDを指定します。
disk インストール先のディスクやサイズ等を指定します。
network 仮想マシンが使用するネットワークインターフェイスを指定します。複数設定できます。
graphics グラフィカル表示構成を指定します。virt-managerからVNCでも接続したかった為、vncを指定しています。
noautoconsole ゲストコンソールに自動的に接続しません。–graphics vncとしている場合、このオプションを指定しなければvirt-viewerを起動しようとして先に進まなくなります。
autostart KVMホストの起動時に仮想マシンも自動的に起動します。

下記は”osinfo-query os”の出力結果からCentOSを抽出しています(気の利いたフィルタオプションは無い様なのでgrepしています)。一番左側がvirt-installで指定するShort IDとなります。

[root@centos ~]# osinfo-query os | grep centos
** (osinfo-query:118306): WARNING **: 00:31:30.007: Entity http://pcisig.com/pci/1B36/0100 referenced but not defined
 centos-stream8       | CentOS Stream 8                                    | 8        | http://centos.org/centos-stream/8
 centos5.0            | CentOS 5.0                                         | 5.0      | http://centos.org/centos/5.0
 centos5.1            | CentOS 5.1                                         | 5.1      | http://centos.org/centos/5.1
 centos5.10           | CentOS 5.10                                        | 5.10     | http://centos.org/centos/5.10
 centos5.11           | CentOS 5.11                                        | 5.11     | http://centos.org/centos/5.11
 centos5.2            | CentOS 5.2                                         | 5.2      | http://centos.org/centos/5.2
 centos5.3            | CentOS 5.3                                         | 5.3      | http://centos.org/centos/5.3
 centos5.4            | CentOS 5.4                                         | 5.4      | http://centos.org/centos/5.4
 centos5.5            | CentOS 5.5                                         | 5.5      | http://centos.org/centos/5.5
 centos5.6            | CentOS 5.6                                         | 5.6      | http://centos.org/centos/5.6
 centos5.7            | CentOS 5.7                                         | 5.7      | http://centos.org/centos/5.7
 centos5.8            | CentOS 5.8                                         | 5.8      | http://centos.org/centos/5.8
 centos5.9            | CentOS 5.9                                         | 5.9      | http://centos.org/centos/5.9
 centos6.0            | CentOS 6.0                                         | 6.0      | http://centos.org/centos/6.0
 centos6.1            | CentOS 6.1                                         | 6.1      | http://centos.org/centos/6.1
 centos6.10           | CentOS 6.10                                        | 6.10     | http://centos.org/centos/6.10
 centos6.2            | CentOS 6.2                                         | 6.2      | http://centos.org/centos/6.2
 centos6.3            | CentOS 6.3                                         | 6.3      | http://centos.org/centos/6.3
 centos6.4            | CentOS 6.4                                         | 6.4      | http://centos.org/centos/6.4
 centos6.5            | CentOS 6.5                                         | 6.5      | http://centos.org/centos/6.5
 centos6.6            | CentOS 6.6                                         | 6.6      | http://centos.org/centos/6.6
 centos6.7            | CentOS 6.7                                         | 6.7      | http://centos.org/centos/6.7
 centos6.8            | CentOS 6.8                                         | 6.8      | http://centos.org/centos/6.8
 centos6.9            | CentOS 6.9                                         | 6.9      | http://centos.org/centos/6.9
 centos7.0            | CentOS 7                                           | 7        | http://centos.org/centos/7.0
 centos8              | CentOS 8                                           | 8        | http://centos.org/centos/8

VyOS用のvirt-installスクリプト

VyOSの場合はオプションが少々異なります。

  • Kickstartは利用できない為、extra-args, initrd-injectは指定しない。
  • locationは使用できずcdromでISOを指定する必要がある(.treeinfoが無い)。
  • UEFIは使用できない為、bootオプションは指定しない。

UEFIについては以前は使用できていましたが、VyOSかCentOSのどちらかのバージョンアップにより現在は使用できないようです。おそらくセキュアブートに関連したものと推測しています。

#!/bin/bash

name=testgw
datadir=/var/lib/libvirt/images

virt-install \
--name $name \
--memory 512 \
--vcpus 1 \
--cdrom $datadir/vyos-1.4-rolling-202106151212-amd64.iso \
--os-variant debian10 \
--disk path=$datadir/$name.qcow2,bus=virtio,size=20 \
--network bridge=br10,model=virtio \
--graphics vnc \
--noautoconsole \
--autostart

VyOSはDebianがベースとなっているのでos-variantはDebianを指定します。

[root@centos ~]# osinfo-query os | grep debian
** (osinfo-query:118852): WARNING **: 00:41:42.439: Entity http://pcisig.com/pci/1B36/0100 referenced but not defined
 debian1.1            | Debian GNU/Linux 1.1                               | 1.1      | http://debian.org/debian/1.1
 debian1.2            | Debian GNU/Linux 1.2                               | 1.2      | http://debian.org/debian/1.2
 debian1.3            | Debian GNU/Linux 1.3                               | 1.3      | http://debian.org/debian/1.3
 debian10             | Debian 10                                          | 10       | http://debian.org/debian/10
 debian2.0            | Debian GNU/Linux 2.0                               | 2.0      | http://debian.org/debian/2.0
 debian2.1            | Debian GNU/Linux 2.1                               | 2.1      | http://debian.org/debian/2.1
 debian2.2            | Debian GNU/Linux 2.2                               | 2.2      | http://debian.org/debian/2.2
 debian3              | Debian GNU/Linux 3.0                               | 3.0      | http://debian.org/debian/3
 debian3.1            | Debian GNU/Linux 3.1                               | 3.1      | http://debian.org/debian/3.1
 debian4              | Debian GNU/Linux 4.0                               | 4.0      | http://debian.org/debian/4
 debian5              | Debian GNU/Linux 5.0                               | 5.0      | http://debian.org/debian/5
 debian6              | Debian 6.0                                         | 6.0      | http://debian.org/debian/6
 debian7              | Debian 7                                           | 7        | http://debian.org/debian/7
 debian8              | Debian 8                                           | 8        | http://debian.org/debian/8
 debian9              | Debian 9                                           | 9        | http://debian.org/debian/9
 debiantesting        | Debian testing                                     | testing  | http://debian.org/debian/testing

VyOSのDebianバージョンは下記で確認できます。

vyos@vyos:~$ cat /etc/debian_version
10.9

補足

以前までは、–hvm, –virt-type, –consoleのオプション設定も行っていましたが、改めて整理してみるとこれらの設定はデフォルト値であり、明示的な設定は不要でした。

virt-installで追加されるファイル

virt-installで仮想マシンを作成すると/etc/libvirt/qemu内に.xmlでのファイルが作成されます。この.xmlが仮想マシン毎の全ての設定となります。また、autostartを有効にした場合は/etc/libvirt/qemu/autostart内に.xmlのシンボリックリンクが作成されます。

目次に戻る

CentOS 8 virt-install

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る