Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added VyOS #47

Merged
merged 1 commit into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,5 @@ This project was written and is maintained by the following individuals:
* Ozzy Schoonover <[email protected]>
* Alexander Deca <[email protected]>
* Xinyu Wei <[email protected]>
* Kelly Christians <[email protected]>
* Kelly Christians <[email protected]>
* Ariadne Haske <[email protected]>
5 changes: 5 additions & 0 deletions node-definitions/vyos/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# VyOS

[Download](https://vyos.net/get/nightly-builds/) a nightly `.iso` image.

Instructions on how to make the `.qcow2` from an `.iso` are in the [`image-definitions/vyos`](image-definitions/vyos) folder.
55 changes: 55 additions & 0 deletions node-definitions/vyos/VyOS-Router.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
id: VyOS-Router
general:
nature: router
description: |-
Opensource Router and Firewall Platform
https://docs.vyos.io/
read_only: false
device:
interfaces:
has_loopback_zero: true
physical:
- eth0
- eth1
- eth2
- eth3
- eth4
- eth5
serial_ports: 1
default_count: 6
loopback:
- lo
ui:
visible: true
label_prefix: vyos-
icon: router
label: VyOS
sim:
linux_native:
libvirt_domain_driver: kvm
driver: server
disk_driver: sata
ram: 512
cpus: 1
cpu_limit: 100
nic_driver: virtio
boot:
timeout: 60
uses_regex: false
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
configuration:
generator:
driver: null
schema_version: 0.0.1
8 changes: 8 additions & 0 deletions virl-base-images/vyos/VyOS-1.5-rolling-202409200006.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
id: VyOS-1.5-rolling-202409200006
node_definition_id: VyOS-Router
description: VyOS-1.5-rolling-202409200006
label: VyOS-1.5-rolling-202409200006
disk_image: vyos-1.5-rolling-202409200006.qcow2
read_only: false
disk_subfolder: VyOS-1.5-rolling-202409200006
schema_version: 0.0.1
77 changes: 77 additions & 0 deletions virl-base-images/vyos/proxmox-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
This works for CML v2.7.2.

### 1. Get an image

VyOS free images are [nightly](https://vyos.net/get/nightly-builds/) builds, packaged as `.iso` files.

These require installation onto a virtual machine.

### 2. Prepare the VM

This install is Proxmox VE, but other hypervisors should work.

I used the GUI and attached the above `.iso` onto a cd-rom.

Settings used:

| Option | Value |
| ---- | ---- |
| Type | Linux |
| Version | 6.x - 2.6 Kernel |
| Machine | Default (i440fx) |
| vCPU | 1 |
| Memory | 1024 MB |
| Hard Disk | 2GB Virtio Block |
| Network Device | Virtio |

### 3. Booting the VM

When it boots, the credentials are `vyos` / `vyos`

### 4. Installing the VM

To install VyOS to the hard disk, type:

`install image`

This is mostly defaults except the config file for boot is `/opt/vyatta/etc/config.boot.default`

<pre>
Would you like to continue? y
What would you like to name this image? ENTER
Please enter a password for the vyos user: vyos
Please enter a password for the vyos user: vyos
What console should be used by default? (K: KVM, S: Serial?) ENTER
Which one should be used for installation (Default :/dev/vda) ENTER
Would you like to use all the free space on the drive [Y/n] Y
Which file would you like as boot config? (Default: 1) 2
</pre>

Power off the VM.

### 5. QCOW2

Proxmox puts hard disks into `/var/lib/vz/images/<vm-id>`

Get the VM ID if needed
```
root@proxmox-host:/var/lib/vz/images/103# qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
103 VyOS running 2048 2.00 265237
```

Find the file
```
root@proxmox-host:/var/lib/vz/images/103# ls
vm-103-disk-0.qcow2
```

Copy to `/tmp`
```
root@proxmox-host:/var/lib/vz/images/103# cp vm-103-disk-0.qcow2 /tmp/
```

Compress the qcow2 ... this takes the file from 2GB to 500MB. This image has the name of the .ISO to distinguish the version
```
root@proxmox-host:/tmp# qemu-img convert -c -O qcow2 /tmp/vm-103-disk-0.qcow2 /tmp/vyos-1.5-vyos-1.5-rolling-202409200006.qcow2
```
Loading
Loading