#CentOS8KVM及び仮想マシンのセットアップ
###CentOS(ホストOS)のインストール
ホストOSをサーバー機にインストール
今回はディスプレイ・マウスを接続して、USBメモリからGUIにてインストール
パッケージは、
サーバー
FTPサーバー
仮想化ハイパーバイザー
ベーシックWebサーバー
を選択
ネットワークは、
192.168.10.50/24
で設定
再起動
今回は、
ホストOS:192.168.10.50 (Bridge:192.168.10.51)
上に、2つの仮想マシン
compute-vm01:192.168.10.52
compute-vm02:192.168.10.53
を作成
###CentOS(ホストOS)の設定
###ネットワーク設定
######現在のネットワーク設定
[root@trafficsentinelkvm ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 9c:5c:8e:c0:0a:d2 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.50/24 brd 192.168.10.255 scope global noprefixroute enp2s0
valid_lft forever preferred_lft forever
inet6 2400:4150:9020:b00:7fbe:99db:3d2f:ed89/64 scope global dynamic noprefixroute
valid_lft 288sec preferred_lft 288sec
inet6 fe80::6703:5d37:f92f:8105/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:52:d6:e5 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:52:d6:e5 brd ff:ff:ff:ff:ff:ff
######IP:192.168.10.50/24、デフォルトゲートウェイ:192.168.10.1、dns:192.168.10.1
[root@trafficsentinelkvm ~]# nmcli connection modify enp2s0 ipv4.address 192.168.10.50/24
[root@trafficsentinelkvm ~]# nmcli connection modify enp2s0 ipv4.gateway 192.168.10.1
[root@trafficsentinelkvm ~]# nmcli connection modify enp2s0 ipv4.dns 192.168.10.1
[root@trafficsentinelkvm ~]# nmcli connection modify enp2s0 ipv4.method manual
[root@trafficsentinelkvm ~]# nmcli connection up enp2s0
接続が正常にアクティベートされました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@trafficsentinelkvm ~]# hostname
trafficsentinelkvm.flownetsecure.com
###KVMインストール
######KVMおよび関連パッケージをインストール
[root@trafficsentinelkvm ~]# dnf update
[root@trafficsentinelkvm ~]# dnf install @virt
[root@trafficsentinelkvm ~]# dnf install virt-top libguestfs-tools
[root@trafficsentinelkvm ~]# dnf install qemu-kvm libvirt virt-install
[root@trafficsentinelkvm ~]# dnf install cockpit-machines # 仮想マシン用
[root@trafficsentinelkvm ~]# systemctl enable --now libvirtd
[root@trafficsentinelkvm /]# systemctl enable --now cockpit.socket
######ブリッジインターフェース(br0)を作成
[root@trafficsentinelkvm ~]# nmcli con show
NAME UUID TYPE DEVICE
enp2s0 bfa2bf8f-f4b4-4f4d-8806-af4fee721717 ethernet enp2s0
virbr0 58ff7692-c77d-439d-883b-d67f7887653d bridge virbr0
[root@trafficsentinelkvm ~]# nmcli con add type bridge ifname br0 con-name br0
接続 'br0' (63d74c4d-e049-4fdb-846a-ee9effe8e2e3) が正常に追加されました。
[root@trafficsentinelkvm ~]# nmcli con show
NAME UUID TYPE DEVICE
br0 63d74c4d-e049-4fdb-846a-ee9effe8e2e3 bridge br0
enp2s0 bfa2bf8f-f4b4-4f4d-8806-af4fee721717 ethernet enp2s0
virbr0 58ff7692-c77d-439d-883b-d67f7887653d bridge virbr0
######br0に、IPアドレス、gateway、DNS を設定(これがKVMのアドレスとなる)
[root@trafficsentinelkvm ~]# nmcli con mod br0 bridge.stp no
[root@trafficsentinelkvm ~]# nmcli con mod br0 ipv4.method manual ipv4.address "192.168.10.51/24" ipv4.gateway "192.168.10.1" ipv4.dns 192.168.10.1
######仮想ブリッジ作成
[root@trafficsentinelkvm ~]# nmcli con add type bridge-slave ifname enp2s0 master br0
接続 'bridge-slave-enp2s0' (e7b7c758-b9f5-48e7-ba63-c65eaf54128c) が正常に追加されました。
[root@trafficsentinelkvm ~]# nmcli con up br0
接続が正常にアクティベートされました (master waiting for slaves) (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/6)
[root@trafficsentinelkvm ~]# nmcli con show
NAME UUID TYPE DEVICE
enp2s0 bfa2bf8f-f4b4-4f4d-8806-af4fee721717 ethernet enp2s0
br0 63d74c4d-e049-4fdb-846a-ee9effe8e2e3 bridge br0
virbr0 58ff7692-c77d-439d-883b-d67f7887653d bridge virbr0
bridge-slave-enp2s0 e7b7c758-b9f5-48e7-ba63-c65eaf54128c ethernet --
bridge-slave-enp2s0が追加される
######物理ポートを削除し再起動
[root@trafficsentinelkvm ~]# sudo su
[root@trafficsentinelkvm ~]# nmcli con del enp2s0 && sudo reboot
接続 'enp2s0' (90d144fa-d884-44f0-86f0-81bedb92d229) が正常に削除されました。
リブートされる
物理インターフェースenp2s0のコネクション設定を削除するので、リモート接続している場合は、再起動でこのIPアドレス(192.168.10.50)への接続が切断されます。
再接続は、ブリッジインターフェースbr0に設定したIPアドレス(192.168.10.51)で接続します。
######再起動後、コネクションの表示・確認
[root@trafficsentinelkvm ~]# nmcli con show
NAME UUID TYPE DEVICE
br0 63d74c4d-e049-4fdb-846a-ee9effe8e2e3 bridge br0
virbr0 b1410b8a-44ab-44d0-86d2-44efbd6e93ae bridge virbr0
bridge-slave-enp2s0 e7b7c758-b9f5-48e7-ba63-c65eaf54128c ethernet enp2s0
[root@trafficsentinelkvm ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether 9c:5c:8e:c0:0a:d2 brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 9c:5c:8e:c0:0a:d2 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.51/24 brd 192.168.10.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 2400:4150:9020:b00:63d5:a6ad:6606:2f50/64 scope global dynamic noprefixroute
valid_lft 289sec preferred_lft 289sec
inet6 fe80::483e:9fae:62e6:5175/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:52:d6:e5 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:52:d6:e5 brd ff:ff:ff:ff:ff:ff
Web console: https://trafficsentinelkvm.flownetsecure.com:9090/ or https://192.168.10.51:9090/ が利用可能に
###ホストOS&KVM完成!
###KVM上に仮想マシンを作成
######ISOイメージの配置(/iso/)
mkdir /iso
ISOイメージのアップロード
[root@trafficsentinelkvm ~]# cd /iso && ls -l
合計 9047040
-rw-r--r--. 1 root root 9264168960 4月 27 23:13 CentOS-8.3.2011-x86_64-dvd1.iso
######ストレージプール(仮想マシンイメージの保管場所)の作成
mkdir -p /var/kvm/images
######仮想マシン「compute-vm01」の作成
[root@trafficsentinelkvm iso]# VM_NAME="compute-vm01"
[root@trafficsentinelkvm iso]# virt-install \
> --name ${VM_NAME}\
> --hvm --arch x86_64 \
> --os-type linux \
> --os-variant centos8 \
> --vcpus 1 --ram 8192 \
> --disk path=/var/kvm/images/${VM_NAME}.img,format=qcow2,size=100 \
> --network bridge=br0 \
> --graphics vnc,keymap=ja \
> --noautoconsole \
> --location /iso/CentOS-8.3.2011-x86_64-dvd1.iso \
> --check all=off \
> --extra-args ro
インストールの開始中...
ファイル vmlinuz を読出中... | 9.1 MB 00:00:00
ファイル initrd.img を読出中... | 70 MB 00:00:00
割り当て中 'compute-vm01.img' 0% [ ] 0 B/s | 17 MB --:--:--割り当て中 'compute-vm01.img' | 100 GB 00:00:01
仮想マシンのインストールが進行中です。インストール
が完了するまでコンソールの再接続を待っています。
######--extra-args ro
が無いと、仮想OSインストール中に、以下エラーが発生する
インストール中に次のエラーが発生しました。致命的なエラーとなるため、インストールを中止します。
DNF error: Error in POSTTRANS scriptlet in rpm package Kernel-core
######仮想マシン「compute-vm02」の作成
[root@trafficsentinelkvm iso]# VM_NAME="compute-vm02"
[root@trafficsentinelkvm iso]# virt-install --name ${VM_NAME} --hvm --arch x86_64 --os-type linux --os-variant centos8 --vcpus 1 --ram 8192 --disk path=/var/kvm/images/${VM_NAME}.img,format=qcow2,size=50 --network bridge=br0 --graphics vnc,keymap=ja --noautoconsole --location /iso/CentOS-8.3.2011-x86_64-dvd1.iso --check all=off --extra-args ro
インストールの開始中...
ファイル vmlinuz を読出中... | 9.1 MB 00:00:00
ファイル initrd.img を読出中... | 70 MB 00:00:00
割り当て中 'compute-vm02.img' | 50 GB 00:00:00
仮想マシンのインストールが進行中です。インストール
が完了するまでコンソールの再接続を待っています。
######仮想マシンのリスト
[root@trafficsentinelkvm iso]# virsh list
Id 名前 状態
-----------------------------
1 compute-vm01 実行中
2 compute-vm02 実行中
######ホストOSのCockpitにブラウザ接続(http://192.168.10.51:9090/)
ログインする
######作成した仮想マシンに接続して仮想マシンOSのインストールを継続する
####その他
######HTTPDなければ
[root@trafficsentinelkvm ~]# dnf -y install httpd httpd-tools httpd-devel httpd-manual
[root@trafficsentinelkvm ~]# systemctl start httpd
[root@trafficsentinelkvm ~]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@trafficsentinelkvm ~]# firewall-cmd --zone=public --add-service=http --permanent
必要無い?
[root@trafficsentinelkvm ~]# firewall-cmd --zone=public --add-port=9090/tcp --permanent
success
[root@trafficsentinelkvm ~]# firewall-cmd --reload
success
######仮想マシンの削除方法
[root@trafficsentinelkvm images]# virsh shutdown compute-vm01
ドメイン compute-vm01 はシャットダウン中です
[root@trafficsentinelkvm images]# virsh undefine compute-vm01 --remove-all-storage
ドメイン compute-vm01 の定義が削除されました
ボリューム 'vda'(/var/kvm/images/compute-vm01.img) が削除されました。
######仮想マシン再起動方法
[root@trafficsentinelkvm images]# virsh --connect qemu:///system start compute-vm01
ドメイン compute-vm01 が起動されました
[root@trafficsentinelkvm images]# virsh list
Id 名前 状態
-----------------------------
1 compute-vm01 実行中