CML2 上で VyOS を使う
VyOS を CML2 上で動作させる手順をメモしておきます。 作業は Rocky Linux8 上で行いました。
今回、作成した CML2 用 VyOS イメージ
今回作成した CML2 用 VyOS イメージは下記のうち、下側の vyos-1.3.0-rc4-cml2.qcow2
です。
|
ファイル名 |
SHA512 |
オリジナル版 |
vyos-1.3.0-rc4-qemu.qcow2 |
c287862fe69d86fd4a42b560a7833c04b76da217f8dffa7d7dbde7e52eba91cab006c1da1d8b06407eb67edb8ac4ea7b6e33ff6368af33657741cae3d0586617 |
CML2 版 |
vyos-1.3.0-rc4-cml2.qcow2 |
02890e3ae3e58ee7b243646f8ab337999bbe0db3a0b743782de336a49de7eb64ad6fe424409107edc3722495b04d7d664f717ed3cfd1e9bb0c9de7982fa1d217 |
qcow2 イメージのダウンロード
VyOS のダウンロードページ から vSphere 用の OVA ファイルはダウンロード出来ます。 ですが、少なくてもこのメモを記載している時点では KVM 用の .qcow2 イメージはダウンロード候補が無く、ダウンロードすることが出来ません。
その為、今回は VyOS monthly snapshots and release candidates から .qcow2 イメージをダウンロードします。
CLI からは以下のようにダウンロードします。
| curl -LO https://s3.amazonaws.com/s3-us.vyos.io/snapshot/vyos-1.3.0-rc4/qemu/vyos-1.3.0-rc4-qemu.qcow2
|
qemu-img のインストール
今回の手順では qemu-nbd
を利用します。 qemu-nbd
は qemu-img
パッケージに含まれている為、qemu-img
をインストールします。
grub.cfg の修正
前の手順でダウンロードした vyos-1.3.0-rc4-qemu.qcow2 をそのまま CML2 上で起動してもコンソールが表示されません。 デフォルトでカーネルオプションが console=tty0
になっている為、これを console=ttyS0
へ修正します。 設定ファイルを修正する為に VyOS の .qcow2 ファイルをマウントします。
| modprobe nbd max_part=63
qemu-nbd --connect=/dev/nbd0 vyos-1.3.0-rc4-qemu.qcow2
mount /dev/nbd0p3 /mnt
|
上記では /dev/nbd0p3
としてマウントしていますが、これは fdisk
でパーティション情報を確認すると Type が Linux filesystem
になっているパーティションが /dev/nbd0p3
である為です。
1
2
3
4
5
6
7
8
9
10
11
12 | # fdisk -l /dev/nbd0
Disk /dev/nbd0: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 5DC1084C-5CAB-4327-AA28-2B8A2D3B854E
Device Start End Sectors Size Type
/dev/nbd0p1 34 2047 2014 1007K BIOS boot
/dev/nbd0p2 2048 526335 524288 256M EFI System
/dev/nbd0p3 526336 20971486 20445151 9.8G Linux filesystem
|
カーネルオプションを定義している設定ファイルは /mnt/boot/grub/grub.cfg
に存在します。 これを以下のように修正します (もしくは、そもそも console=ttyS0
に設定された VyOS 1.3.0-rc4 for QEMU (Serial console)
というメニューエントリがある為、VyOS 1.3.0-rc4 for QEMU (KVM console)
のメニューエントリを削除するだけでも良いと思われます)。
変更前
| menuentry "VyOS 1.3.0-rc4 for QEMU (KVM console)" {
linux /boot/1.3.0-rc4/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/1.3.0-rc4 console=tty0
initrd /boot/1.3.0-rc4/initrd.img
}
|
変更後
console=tty0
を console=ttyS0
へ修正します。
| menuentry "VyOS 1.3.0-rc4 for QEMU (KVM console)" {
linux /boot/1.3.0-rc4/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/1.3.0-rc4 console=ttyS0
initrd /boot/1.3.0-rc4/initrd.img
}
|
設定ファイルの修正作業が完了したらアンマウントします。
このままでは「オリジナルの VyOS イメージ」と「修正後のイメージ」のファイル名が紛らわしい為、ファイル名を修正しておきます。
| mv vyos-1.3.0-rc4-qemu.qcow2 vyos-1.3.0-rc4-cml2.qcow2
|
CML2 でのノード定義
CML2 でのノード定義は下記からダウンロード出来ます。
実際の内容は以下の通りです。 VyOS は Debian ベースである為、CML2 にデフォルトでインストールされている Ubuntu のノード定義をベースにしています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 | id: vyos
sim:
linux_native:
driver: server
libvirt_domain_driver: kvm
disk_driver: virtio
nic_driver: virtio
ram: 1024
cpus: 1
data_volume: 0
boot_disk_size: 64
inherited:
image:
ram: true
cpus: true
cpu_limit: true
data_volume: true
boot_disk_size: true
node:
ram: true
cpus: true
cpu_limit: true
data_volume: true
boot_disk_size: true
general:
nature: router
description: VyOS - Open source router and firewall platform
read_only: true
schema_version: 0.0.1
configuration:
generator:
driver: ubuntu
provisioning:
volume_name: cidata
media_type: iso
files:
- name: meta-data
content: |-
instance-id: ubuntu
local-hostname: vyos
editable: false
- name: user-data
content: |-
#cloud-config
hostname: vyos
editable: true
device:
interfaces:
physical:
- eth0
- eth1
- eth2
- eth3
- eth4
- eth5
- eth6
- eth7
- eth8
- eth9
- eth10
- eth11
- eth12
- eth13
- eth14
- eth15
loopback:
- lo
has_loopback_zero: true
default_count: 4
serial_ports: 1
boot:
timeout: 180
completed:
- Welcome to VyOS
pyats:
os: linux
ui:
group: Others
icon: router
label: VyOS
label_prefix: vyos-
visible: true
description: |-
VyOS - Open source router and firewall platform
1 GB DRAM, 1 vCPU (can be adjusted)
Username: vyos
Password: vyos
|
イメージの定義は以下の通りです。
ID |
Label |
Description |
Disk Image |
Node Definition |
vyos-1.3.0-rc4 |
VyOS 1.3.0 RC4 |
VyOS 1.3.0 RC4 |
vyos-1.3.0-rc4-cml2.qcow2 |
VyOS |
参考
vyos-1.3.0-rc4-qemu.qcow2 の /boot/grub/grub.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | set default=0
set timeout=5
serial --unit=0
terminal_output --append serial
terminal_input serial console
insmod efi_gop
insmod efi_uga
menuentry "VyOS 1.3.0-rc4 for QEMU (KVM console)" {
linux /boot/1.3.0-rc4/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/1.3.0-rc4 console=tty0
initrd /boot/1.3.0-rc4/initrd.img
}
menuentry "VyOS 1.3.0-rc4 for QEMU (Serial console)" {
linux /boot/1.3.0-rc4/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/1.3.0-rc4 console=ttyS0
initrd /boot/1.3.0-rc4/initrd.img
}
menuentry "VyOS 1.3.0-rc4 for QEMU - password reset (KVM console)" {
linux /boot/1.3.0-rc4/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/1.3.0-rc4 console=tty0 init=/opt/vyatta/sbin/standalone_root_pw_reset
initrd /boot/1.3.0-rc4/initrd.img
}
menuentry "VyOS 1.3.0-rc4 for QEMU - password reset (Serial console)" {
linux /boot/1.3.0-rc4/vmlinuz boot=live rootdelay=5 noautologin net.ifnames=0 biosdevname=0 vyos-union=/boot/1.3.0-rc4 console=ttyS0 init=/opt/vyatta/sbin/standalone_root_pw_reset
initrd /boot/1.3.0-rc4/initrd.img
}
|