自分用メモ。
CentOSにKVMインストール の続き。
libvirtd 起動
$ systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:libvirtd(8)
https://libvirt.org
$ sudo systemctl start libvirtd
$ sudo systemctl enable libvirtd
$ systemctl status libvirtd
● libvirtd.service - Virtualization daemon
Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
Active: active (running) since 水 2019-12-11 09:58:51 JST; 25s ago
Docs: man:libvirtd(8)
https://libvirt.org
Main PID: 29943 (libvirtd)
CGroup: /system.slice/libvirtd.service
tq29943 /usr/sbin/libvirtd
tq30047 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_l...
mq30048 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_l...
12月 11 09:58:51 kvm_host dnsmasq[30044]: listening on virbr0(#14): 192.168.122.1
12月 11 09:58:51 kvm_host dnsmasq[30047]: started, version 2.76 cachesize 150
12月 11 09:58:51 kvm_host dnsmasq[30047]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN DHCP DHCPv6 no-Lua TFTP no-conntr...inotify
12月 11 09:58:51 kvm_host dnsmasq-dhcp[30047]: DHCP, IP range 192.168.122.2 -- 192.168.122.254, lease time 1h
12月 11 09:58:51 kvm_host dnsmasq-dhcp[30047]: DHCP, sockets bound exclusively to interface virbr0
12月 11 09:58:51 kvm_host dnsmasq[30047]: reading /etc/resolv.conf
12月 11 09:58:51 kvm_host dnsmasq[30047]: using nameserver 8.8.8.8#53
12月 11 09:58:51 kvm_host dnsmasq[30047]: read /etc/hosts - 2 addresses
12月 11 09:58:51 kvm_host dnsmasq[30047]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
12月 11 09:58:51 kvm_host dnsmasq-dhcp[30047]: read /var/lib/libvirt/dnsmasq/default.hostsfile
Hint: Some lines were ellipsized, use -l to show in full.
仮想ネットワーク 内部LAN 作成
$ sudo virsh net-list
名前 状態 自動起動 永続
----------------------------------------------------------
default 動作中 はい (yes) はい (yes)
$ cat <<- EOF > /tmp/internal_lan.xml
<network>
<name>internal_lan</name>
<bridge name='virbr1' stp='on' delay='0' />
<ip address='172.19.0.1' netmask='255.255.254.0'>
</ip>
</network>
EOF
$ sudo virsh net-define /tmp/internal_lan.xml
ネットワーク internal_lan が /tmp/internal_lan.xml から定義されました
$ sudo virsh net-autostart internal_lan
ネットワーク internal_lan が自動起動に設定されました
$ sudo virsh net-start internal_lan
ネットワーク internal_lan が起動されました
$ sudo virsh net-list
名前 状態 自動起動 永続
----------------------------------------------------------
default 動作中 はい (yes) はい (yes)
internal_lan 動作中 はい (yes) はい (yes)
仮想ネットワーク default 停止
$ sudo virsh net-list
名前 状態 自動起動 永続
----------------------------------------------------------
default 動作中 はい (yes) はい (yes)
internal_lan 動作中 はい (yes) はい (yes)
$ sudo virsh net-destroy default
ネットワーク default は強制停止されました
$ sudo virsh net-undefine default
ネットワーク default の定義が削除されました
$ sudo virsh net-list
名前 状態 自動起動 永続
----------------------------------------------------------
internal_lan 動作中 はい (yes) はい (yes)
仮想ネットワーク 外部接続用 bridge-IF 作成
作成前の状況を確認。
$ ip link show | grep mtu
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
3: eno2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
4: eno1.10@eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
5: virbr1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
6: virbr1-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr1 state DOWN mode DEFAULT group
ifcfg-eno1
はホストOSが使用しているので ifcfg-eno2
を仮想マシン用のIFとする。
$ cd /etc/sysconfig/network-scripts
$ sudo sed -i ifcfg-eno2 \
-e s/^BOOTPROTO=dhcp/BOOTPROTO=static/ \
-e s/^ONBOOT=no/ONBOOT=yes/ \
-e '$aBRIDGE=br2'
$ sudo cat << EOF > /tmp/ifcfg-br2
DEVICE=br2
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
EOF
$ sudo mv /tmp/ifcfg-br2 .
$ sudo chown root:root ifcfg-br2
$ sudo chmod 644 ifcfg-br2
$ sudo systemctl restart network
仮想マシン用 ストレージ作成
$ sudo virsh pool-list --all
名前 状態 自動起動
-------------------------------------------
$ sudo virsh pool-define-as vm_images logical - - /dev/sda3 VolGroup01 /dev/VolGroup01
プール vm_images が定義されました
$ sudo virsh pool-start vm_images
プール vm_images が起動されました
$ sudo virsh pool-autostart vm_images
プール vm_images が自動起動としてマークされました
$ sudo virsh pool-list
名前 状態 自動起動
-------------------------------------------
vm_images 動作中 はい (yes)
$ sudo virsh vol-create-as vm_images openstack_cmpt 4000G
ボリューム openstack_cmpt が 作成されました
$ sudo virsh vol-create-as vm_images openstack_ctrl 500G
ボリューム openstack_ctrl が 作成されました
$ sudo virsh vol-list --pool vm_images
名前 パス
------------------------------------------------------------------------------
lv_home /dev/VolGroup01/lv_home
lv_root /dev/VolGroup01/lv_root
lv_swap /dev/VolGroup01/lv_swap
openstack_cmpt /dev/VolGroup01/openstack_cmpt
openstack_ctrl /dev/VolGroup01/openstack_ctrl
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_home VolGroup01 -wi-ao---- 50.00g
lv_root VolGroup01 -wi-ao---- 50.00g
lv_swap VolGroup01 -wi-ao---- 20.00g
openstack_cmpt VolGroup01 -wi-a----- <3.91t
openstack_ctrl VolGroup01 -wi-a----- 500.00g
仮想マシン インストールイメージ配置
$ sudo mkdir /var/iso
★WinSCP などで /var/iso 配下にOSインストールイメージ(iso) を配置
$ ls -l /var/iso
合計 4277248
-rw-r--r--. 1 root root 4379901952 11月 26 2017 CentOS-7-x86_64-DVD-1611.iso
仮想マシン OSインストール用 キックスタートファイル作成
ホストOSインストール時に作成された anaconda-ks.cfg
を流用する。
$ sudo mkdir /var/ks
$ sudo cp -p /root/anaconda-ks.cfg /var/ks/ctrl.cfg
$ sudo vim /var/ks/ctrl.cfg
#version=DEVEL
# -- auto install by udon
install
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
# Use graphical install
# --no use graphical install by udon
#graphical
# Run the Setup Agent on first boot
# --no use setup agent by udon
#firstboot --enable
firstboot --disable
# --change device name by udon
#ignoredisk --only-use=sda
ignoredisk --only-use=vda
# Keyboard layouts
# --change keyboard layouts by udon
#keyboard --vckeymap=jp --xlayouts='jp'
keyboard --vckeymap=jp106 --xlayouts='jp'
# System language
lang ja_JP.UTF-8
# Network information
# --no setup network by udon
#network --bootproto=dhcp --device=eno1 --onboot=off --ipv6=auto --no-activate
#network --bootproto=dhcp --device=eno2 --onboot=off --ipv6=auto
#network --hostname=local.localdomain
# Root password
rootpw --iscrypted $6$gcFdG4Yd19LatI3C$4JJMV/v6xzNbODr3hkLOExDfelbj6q/.EuyWCcjYz2ZfvhqWeECGfFwSuAXrU9ogLH3GtGncaCsfNRgd7tvwx0
# System services
# --no setup ntp at setup by udon
#services --enabled="chronyd"
# System timezone
# --change hardware clock locale by udon
#timezone Asia/Tokyo --isUtc
timezone Asia/Tokyo
# System bootloader configuration
# --change boot-drive name by udon
# --kdump auto by udon
# --no display rhgb on boot by udon
#bootloader --location=mbr --boot-drive=sda
bootloader --location=mbr --boot-drive=vda --append="crashkernel=auto rhgb quiet"
# selinux disable by udon
selinux --disabled
# firewall disable by udon
firewall --disabled
# partition clear by udon
zerombr
# Partition clearing information
# --change device name by udon
#clearpart --all --initlabel --drives=sda
clearpart --all --initlabel --drives=vda
# Disk partitioning information
# --change partition by udon
#part pv.672 --fstype="lvmpv" --ondisk=sda --size=122888
#part biosboot --fstype="biosboot" --ondisk=sda --size=1
#part /boot --fstype="xfs" --ondisk=sda --size=512 --label=/boot
#volgroup VolGroup01 --pesize=4096 pv.672
#logvol /home --fstype="xfs" --size=51200 --label="/home" --name=lv_home --vgname=VolGroup01
#logvol swap --fstype="swap" --size=20480 --name=lv_swap --vgname=VolGroup01
#logvol / --fstype="xfs" --size=51200 --label="/root" --name=lv_root --vgname=VolGroup01
part /boot --fstype="xfs" --asprimary --ondisk=vda --size=512 --label=/boot
part pv.1 --ondisk=vda --grow --asprimary --size=1
volgroup VolGroup01 --pesize=4096 pv.1
logvol swap --fstype="swap" --size=4096 --name=lv_swap --vgname=VolGroup01
logvol / --fstype="xfs" --size=307200 --name=lv_root --vgname=VolGroup01 --label="/root"
logvol /home --fstype="xfs" --size=51200 --name=lv_home --vgname=VolGroup01 --label="/home"
logvol /var/log --fstype="xfs" --size=51200 --name=lv_log --vgname=VolGroup01 --label="/var/log"
%packages
@^minimal
@core
chrony
%end
%addon com_redhat_kdump --disable --reserve-mb='auto'
%end
%anaconda
pwpolicy root --minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy luks --minlen=6 --minquality=50 --notstrict --nochanges --notempty
%end
2020.05.18 追記
CentOS6.6をGUIからインストールしたkickstart.cfgを利用しようとしたらrepo
が認識できずに失敗した。
Kickstartを使ってCentOSを簡単にインストール
こちら様に書いてあるとおり以下のように修正すれば良い
repo --name="CentOS" --baseurl=cdrom:sr0/ --cost=100
↓
repo --name="CentOS" --baseurl=file:///mnt/source --cost=100
-
install
インストールの開始 -
auth --enableshadow --passalgo=sha512
デフォルトのまま。- シャドウパスワードを使用(
--enableshadow
) - SHA512 ハッシュアルゴリズムを使用(
--passalgo=sha512
)
- シャドウパスワードを使用(
-
cdrom
光学メディアからのインストール -
#graphical
グラフィカルインストールを使わない -
firstboot --disable
初期化セットアップアプリを利用しない -
ignoredisk --only-use=vda
/dev/vda
のみを使用する。
KVMはたしか/dev/vda
で認識したはず。。 -
keyboard --vckeymap=jp106 --xlayouts='jp'
キーボードレイアウトを変更 -
lang ja_JP.UTF-8
UTF-8 っていいよね -
#network
ネットワーク周辺はOSインストール後に操作するので無効化 -
rootpw --iscrypted
楽なのは--plaintext
でパスワードを丸見えさせることだけど丸見えである。
今回はホストOSと同じパスワードのままとした。 -
#services --enabled="chronyd"
NTPサービスはOSインストール後に操作するので無効化 -
timezone Asia/Tokyo
別に--isUtc
つけてもいいけどなんとなく -
bootloader
デバイス名を/dev/vda
に変更すること。
--append=~~
はつけなくてもいい。とおもう。 -
selinux --disabled
-
firewall --disalbed
どうせ止めるんでしょ? -
zerombr
clearpart --all --initlabel --drives=vda
パーティション初期化。両方やったほうが良い。 -
part /boot
パーティション/boot
を作成。デバイス名注意。 -
part pv.1
volgroup VolGroup01 --pesize=4096 pv.1
VGを作成する。 -
logvol
各パーティションを作成する。
小さめに作ってあとでLVM
で変更でもいい。 -
%packages
ホストOSに合わせる。
仮想マシン OSインストール
virt-install
のオプションは闇が深い。
参考:ソフトウェアエンジニアリング - Linux KVM操作
$ sudo virt-install \
--noreboot \
--name openstack_ctrl \
--connect=qemu:///system \
--ram 8192 \
--vcpu 8 \
--disk path=/dev/VolGroup01/openstack_ctrl \
--network bridge=br2,model=virtio \
--os-type linux \
--os-variant rhel7 \
--nographics \
--hvm \
--virt-type kvm \
--location /var/iso/CentOS-7-x86_64-DVD-1611.iso \
--initrd-inject /var/ks/ctrl.cfg \
--extra-args "ks=file:/ctrl.cfg console=tty0 console=ttyS0,115200n8"
Performing post-installation setup tasks
でちょっと待つけど安心して。
:省略
Performing post-installation setup tasks
Installing boot loader
.
Performing post-installation setup tasks
.
Configuring installed system
.
Writing network configuration
.
Creating users
.
Configuring addons
.
Generating initramfs
.
Running post-installation scripts
.
Use of this product is subject to the license agreement found at /usr/share/centos-release/EULA
Installation complete. Press return to quit
上記で Enterキー
を押下。
本当はそんなことしなくても自動停止するオプションもあるはず。
$ sudo virsh list --all
Id 名前 状態
----------------------------------------------------
- openstack_ctrl シャットオフ
キックスタートファイルなど間違えてしまいインストールが止まった場合は Ctrl + ]
を2回押してコンソールから抜け、以下のコマンドで仮想マシンを削除する。
$ sudo virsh undefine openstack_ctrl
ドメイン openstack_ctrl の定義が削除されました
$ sudo virsh destroy openstack_ctrl
ドメイン openstack_ctrl は強制停止されました