CML の Reference Platform に同梱されている yaml ファイル
現時点で最新の Cisco CML は バージョン 2.7.0 です。 CML は「CML 本体」と別に「起動するノードイメージ」を集めた Reference Platform を併せて利用するのが一般的です。 CML へノードを追加するには「ノードそのもののイメージファイル」とは別に、下記のふたつが必要になります。
- Node definition
- Iamge definition
今回は現時点で最新の Reference Platform に含まれている Node definition と Image definition の .yaml ファイルをメモしておきます。
検証環境¶
以下のファイルに含まれる .yaml ファイルを対象にしました。
- refplat-20240225-fcs.iso
- refplat-20240322-supplemental.iso
refplat-20240225-fcs.iso¶
ディレクトリ構造
├── node-definitions
│ ├── alpine-trex.yaml
│ ├── alpine-wanem.yaml
│ ├── alpine.yaml
│ ├── asav.yaml
│ ├── cat8000v.yaml
│ ├── cat9000v-q200.yaml
│ ├── cat9000v-uadp.yaml
│ ├── csr1000v.yaml
│ ├── desktop.yaml
│ ├── ioll2-xe.yaml
│ ├── iol-xe.yaml
│ ├── iosvl2.yaml
│ ├── iosv.yaml
│ ├── iosxrv9000.yaml
│ ├── nxosv9000.yaml
│ ├── server.yaml
│ └── ubuntu.yaml
└── virl-base-images
├── alpine-base-3-19-1
│ ├── alpine-base-3-19-1.qcow2
│ └── alpine-base-3-19-1.yaml
├── alpine-desktop-3-19-1
│ ├── alpine-desktop-3-19-1.qcow2
│ └── alpine-desktop-3-19-1.yaml
├── alpine-trex-3-19-1
│ ├── alpine-trex-3-19-1.qcow2
│ └── alpine-trex-3-19-1.yaml
├── alpine-wanem-3-19-1
│ ├── alpine-wanem-3-19-1.qcow2
│ └── alpine-wanem-3-19-1.yaml
├── asav-9-20-2
│ ├── asav9-20-2-2.qcow2
│ └── asav-9-20-2.yaml
├── cat8000v-17-13-01a
│ ├── c8000v-universalk9_8G_serial.17.13.01a.qcow2
│ └── cat8000v-17-13-01a.yaml
├── cat9000v-q200-17-12-01prd9
│ ├── cat9000v-q200-17-12-01prd9.yaml
│ └── cat9kv-prd-17.12.01prd9.qcow2
├── cat9000v-uadp-17-12-01prd9
│ ├── cat9000v-uadp-17-12-01prd9.yaml
│ └── cat9kv-prd-17.12.01prd9.qcow2
├── csr1000v-17-03-08a
│ ├── csr1000v-17-03-08a.yaml
│ └── csr1000v-universalk9.17.03.08a-serial.qcow2
├── ioll2-xe-17-12-01
│ ├── ioll2-xe-17-12-01.yaml
│ └── x86_64_crb_linux_l2-adventerprisek9-ms
├── iol-xe-17-12-01
│ ├── iol-xe-17-12-01.yaml
│ └── x86_64_crb_linux-adventerprisek9-ms
├── iosv-159-3-m8
│ ├── iosv-159-3-m8.yaml
│ └── vios-adventerprisek9-m.spa.159-3.m8.qcow2
├── iosvl2-2020
│ ├── iosvl2-2020.yaml
│ └── vios_l2-adventerprisek9-m.ssa.high_iron_20200929.qcow2
├── iosxrv9000-7-11-1
│ ├── iosxrv9000-7-11-1.yaml
│ └── xrv9k-fullk9-x-7.11.1.qcow2
├── nxosv9300-10-4-2-f
│ ├── nexus9300v64.10.4.2.F.qcow2
│ └── nxosv9300-10-4-2-f.yaml
├── server-tcl-14-0
│ ├── server-tcl-14-0.yaml
│ └── tcl-14-0.qcow2
└── ubuntu-22-04-20240126
├── jammy-server-cloudimg-amd64.img
└── ubuntu-22-04-20240126.yaml
Node definitions¶
Alpine-trex
#
# alpine trex node definition
# added 2019-10-28
# part of VIRL^2
#
id: trex
configuration:
generator:
driver: alpine
provisioning:
volume_name: cfg
media_type: iso
files:
- name: node.cfg
content: |
# this is a shell script which will be sourced at boot
hostname inserthostname-here
# configurable user account
USERNAME=cisco
PASSWORD=cisco
editable: true
device:
interfaces:
has_loopback_zero: false
default_count: 2
management:
- eth0
physical:
- eth0
- eth1
- eth2
serial_ports: 1
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:
description: Alpine Linux
nature: server
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 1
disk_driver: virtio
driver: server
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 512
boot:
completed:
- "VIRL^2 TRex Node"
timeout: 60
ui:
description: |2
Cisco TRex Traffic Generator Container
(runs in *stateless* mode)
512 MB DRAM
##### Users
The user account is configurable (cisco/cisco by default).
##### Important
TRex **MUST** have at least 2 interfaces. The first interface is used for
management (consider to connect it using a bridged external connector and
giving it a static IP so that a GUI can be connected to it), the 2nd and
3rd interface is for data. The 3rd interface is optional.
The GUI can be downloaded from
[here](https://github.com/cisco-system-traffic-generator/trex-stateless-gui),
search for "Builds". Ensure the version matches the image.
group: Others
icon: access_point
label: TRex
label_prefix: trex-
visible: true
Alpine-wanem
#
# alpine wan emulator node definition
# added 2019-10-28
# part of VIRL^2
#
id: wan_emulator
configuration:
generator:
driver: wan_emulator
provisioning:
volume_name: cfg
media_type: iso
files:
- name: node.cfg
content: |
# this is a shell script which will be sourced at boot
hostname inserthostname-here
# configurable user account
USERNAME=cisco
PASSWORD=cisco
# WAN Emulator configuration
LATENCY="100"
JITTER="0"
LOSS="0.0"
BANDWIDTH="512"
editable: true
device:
interfaces:
has_loopback_zero: false
default_count: 2
physical:
- eth0
- eth1
serial_ports: 1
inherited:
image:
ram: false
cpus: false
cpu_limit: true
data_volume: false
boot_disk_size: false
node:
ram: false
cpus: false
cpu_limit: true
data_volume: false
boot_disk_size: false
general:
description: WAN Emulator
nature: server
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 1
disk_driver: virtio
driver: server
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 512
boot:
completed:
- "VIRL^2 WAN Emulator"
timeout: 60
ui:
description: |2
WAN Emulator Node
512 MB DRAM
Emulate WAN characteristics such as delay and packet loss.
##### Configuration
Can be static using variables put into the
configuration field of the node as shown here
##### Users
The user account is configurable (cisco/cisco by default).
```plain
LATENCY="100"
JITTER="0"
LOSS="0.0"
BANDWIDTH="512"
```
There's also a text based UI available on the console
of the node that allows to configure and monitor the
WAN emulator.
group: Others
icon: access_point
label: WAN Emulator
label_prefix: wan-em-
visible: true
Alpine
#
# alpine base node definition
# added 2019-10-28
# part of VIRL^2
#
id: alpine
configuration:
generator:
driver: alpine
provisioning:
volume_name: cfg
media_type: iso
files:
- name: node.cfg
content: |
# this is a shell script which will be sourced at boot
hostname inserthostname-here
# configurable user account
USERNAME=cisco
PASSWORD=cisco
editable: true
device:
interfaces:
has_loopback_zero: false
default_count: 1
physical:
- eth0
- eth1
- eth2
- eth3
serial_ports: 1
# loopback:
# - lo0
# - lo1
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:
description: Alpine Linux
nature: server
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 1
disk_driver: virtio
driver: server
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 512
boot_disk_size: 16
video:
memory: 16
boot:
completed:
- "Welcome to Alpine Linux"
timeout: 60
pyats:
os: linux
ui:
description: |2
Alpine Linux
512 MB DRAM, 1 vCPU, 16GB base disk
##### Configuration
Shell commands in the configuration field of the node are just sourced as user `root`
when the node starts up. This is based on Alpine Linux. More info [here](https://wiki.alpinelinux.org/wiki/Main_Page)
##### Users
The user account is configurable (cisco/cisco by default).
This image has a couple of tools:
- iperf -- basic traffic generation
- routem -- OSPF/BGP control plane traffic generation
- tcpdump, traceroute, ping, telnet, ssh
- runs a SSH daemon
##### Example
```shell
hostname desktop-0
ip address add 10.0.0.10/24 dev eth1
ip link set dev eth1 up
ip route add 10.0.0.0/8 dev eth1
ip route add default via 10.0.0.1
```
[Link](https://www.alpinelinux.org/)
group: Others
icon: server
label: Alpine
label_prefix: alpine-
visible: true
Asav
#
# asav node definition
# generated 2018-11-17
# part of VIRL^2
#
id: asav
configuration:
generator:
driver: asav
provisioning:
volume_name: disk
media_type: iso
files:
- name: day0-config
content: |
hostname inserthostname-here
end
editable: true
inherited:
image:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
node:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
device:
interfaces:
has_loopback_zero: false
default_count: 2
management:
- Management0/0
physical:
- Management0/0
- GigabitEthernet0/0
- GigabitEthernet0/1
- GigabitEthernet0/2
- GigabitEthernet0/3
- GigabitEthernet0/4
- GigabitEthernet0/5
- GigabitEthernet0/6
- GigabitEthernet0/7
- GigabitEthernet0/8
serial_ports: 1
general:
description: Cisco Adaptive Security Virtual Appliance
nature: firewall
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 1
disk_driver: virtio
driver: asav
libvirt_domain_driver: kvm
nic_driver: vmxnet3
ram: 2048
boot:
timeout: 120
completed:
- "INFO: Power-On Self-Test complete."
pyats:
os: asa
config_extract_command: show run
ui:
description: |2-
Cisco Adaptive Security Virtual Appliance (ASAv)
2 GB DRAM, 1 vCPU
Maximum 8 interfaces, including Management0/0.
[CCO Link](https://www.cisco.com/c/en/us/support/security/virtual-adaptive-security-appliance-firewall/tsd-products-support-series-home.html)
group: Cisco
icon: firewall
label: ASAv
label_prefix: asav-
visible: true
Cat8000v
#
# cat8000v node definition
# generated 2021-09-06
# part of VIRL^2
#
id: cat8000v
configuration:
generator:
driver: csr1000v
provisioning:
volume_name: disk
media_type: iso
files:
- name: iosxe_config.txt
content: |-
hostname inserthostname-here
end
editable: true
inherited:
image:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
node:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
device:
interfaces:
has_loopback_zero: true
default_count: 4
loopback:
- Loopback0
physical:
- GigabitEthernet1
- GigabitEthernet2
- GigabitEthernet3
- GigabitEthernet4
- GigabitEthernet5
- GigabitEthernet6
- GigabitEthernet7
- GigabitEthernet8
- GigabitEthernet9
- GigabitEthernet10
- GigabitEthernet11
- GigabitEthernet12
- GigabitEthernet13
- GigabitEthernet14
- GigabitEthernet15
- GigabitEthernet16
- GigabitEthernet17
- GigabitEthernet18
- GigabitEthernet19
- GigabitEthernet20
- GigabitEthernet21
- GigabitEthernet22
- GigabitEthernet23
- GigabitEthernet24
- GigabitEthernet25
- GigabitEthernet26
serial_ports: 2
general:
description: Catalyst 8000V Edge Software
nature: router
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 1
disk_driver: virtio
driver: csr1000v
libvirt_domain_driver: kvm
nic_driver: vmxnet3
ram: 4096
boot:
timeout: 250
completed:
- "Would you like to enter the initial configuration dialog?"
- "Press RETURN to get started!"
- "%CVAC-4-CONFIG_DONE:"
pyats:
os: iosxe
series: csr1000v
config_extract_command: show run
ui:
description: |-
Catalyst 8000V Edge Software
4 GB DRAM, 1 vCPU
[CCO Link](https://www.cisco.com/c/en/us/products/routers/catalyst-8000v-edge-software/index.html)
group: Cisco
icon: router
label: CAT8000V
label_prefix: cat8000v-
visible: true
Cat9000v-q200
#
# cat9000v Q200 node definition
# generated 2023-11-22
# part of CML^2
#
id: cat9000v-q200
configuration:
generator:
driver: cat9000v
provisioning:
volume_name: CDROM
media_type: iso
files:
- name: iosxe_config.txt
content: |-
hostname inserthostname-here
!
end
editable: true
- name: conf/vswitch.xml
content: |-
<?xml version="1.0"?>
<!-- Copyright (c) 2020 by Cisco Systems, Inc.-->
<!-- All rights reserved. -->
<!-- Virtual Cat9k configuration information -->
<switch>
<!-- Virtual Board ID to indicate Q200 or UADP asic simulation -->
<board_id>20613</board_id>
<!-- Unique Serial# must be provided for each running instance -->
<prod_serial_number>CML12345Q200</prod_serial_number>
<!-- Number of ports must appear before other port information -->
<port_count>8</port_count>
<port lpn="1">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="2">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="3">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="4">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="5">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="6">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="7">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="8">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="9">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="10">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="11">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="12">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="13">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="14">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="15">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="16">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
</switch>
editable: true
inherited:
image:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
node:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
device:
interfaces:
has_loopback_zero: true
min_count: 9
default_count: 9
loopback:
- Loopback0
physical:
- GigabitEthernet0/0
- GigabitEthernet1/0/1
- GigabitEthernet1/0/2
- GigabitEthernet1/0/3
- GigabitEthernet1/0/4
- GigabitEthernet1/0/5
- GigabitEthernet1/0/6
- GigabitEthernet1/0/7
- GigabitEthernet1/0/8
serial_ports: 2
general:
description: Catalyst 9000v Q200
nature: switch
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 4
disk_driver: ide
driver: csr1000v
libvirt_domain_driver: kvm
nic_driver: e1000
ram: 18432
boot:
timeout: 600
completed:
- "Would you like to enter the initial configuration dialog?"
- "Press RETURN to get started!"
- "%SSH-5-ENABLED:"
pyats:
os: iosxe
series: cat9k
config_extract_command: show run
ui:
description: |-
**BETA** Catalyst 9000 series with Q200 data plane virtual switch
**_NO SUPPORT IS PROVIDED FOR THIS IMAGE_**
18 GB DRAM, 4 vCPU
[CCO Link](https://www.cisco.com/c/en/us/support/switches/catalyst-9300-series-switches/series.html)
group: Cisco
icon: switch
label: BETA CAT9000v Q200
label_prefix: cat9000v-q200-
visible: true
Cat9000v-uadp
#
# cat9000v UADP node definition
# generated 2023-11-22
# part of CML^2
#
id: cat9000v-uadp
configuration:
generator:
driver: cat9000v
provisioning:
volume_name: CDROM
media_type: iso
files:
- name: iosxe_config.txt
content: |-
hostname inserthostname-here
!
end
editable: true
- name: conf/vswitch.xml
content: |-
<?xml version="1.0"?>
<!-- Copyright (c) 2020 by Cisco Systems, Inc.-->
<!-- All rights reserved. -->
<!-- Virtual Cat9k configuration information -->
<switch>
<!-- Virtual Board ID to indicate Q200 or UADP asic simulation -->
<board_id>20612</board_id>
<!-- Unique Serial# must be provided for each running instance -->
<prod_serial_number>CML12345UADP</prod_serial_number>
<!-- Number of ports must appear before other port information -->
<port_count>8</port_count>
<port lpn="1">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="2">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="3">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="4">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="5">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="6">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="7">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="8">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="9">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="10">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="11">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="12">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="13">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="14">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="15">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
<port lpn="16">
<asic_id>0</asic_id>
<asic_ifg>0</asic_ifg>
<asic_slice>0</asic_slice>
</port>
</switch>
editable: true
inherited:
image:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
node:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
device:
interfaces:
has_loopback_zero: true
min_count: 9
default_count: 9
loopback:
- Loopback0
physical:
- GigabitEthernet0/0
- GigabitEthernet1/0/1
- GigabitEthernet1/0/2
- GigabitEthernet1/0/3
- GigabitEthernet1/0/4
- GigabitEthernet1/0/5
- GigabitEthernet1/0/6
- GigabitEthernet1/0/7
- GigabitEthernet1/0/8
serial_ports: 2
general:
description: Catalyst 9000v UADP
nature: switch
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 4
disk_driver: ide
driver: csr1000v
libvirt_domain_driver: kvm
nic_driver: e1000
ram: 18432
boot:
timeout: 600
completed:
- "Would you like to enter the initial configuration dialog?"
- "Press RETURN to get started!"
- "%SSH-5-ENABLED:"
pyats:
os: iosxe
series: cat9k
config_extract_command: show run
ui:
description: |-
**BETA** Catalyst 9000 series with UADP data plane virtual switch
**_NO SUPPORT IS PROVIDED FOR THIS IMAGE_**
18 GB DRAM, 4 vCPU
[CCO Link](https://www.cisco.com/c/en/us/support/switches/catalyst-9300-series-switches/series.html)
group: Cisco
icon: switch
label: BETA CAT9000v UADP
label_prefix: cat9000v-uadp-
visible: true
Csr1000v
#
# csr1000v node definition
# generated 2018-11-17
# part of VIRL^2
#
id: csr1000v
configuration:
generator:
driver: csr1000v
provisioning:
volume_name: disk
media_type: iso
files:
- name: iosxe_config.txt
content: |-
hostname inserthostname-here
end
editable: true
inherited:
image:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
node:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
device:
interfaces:
has_loopback_zero: true
default_count: 4
loopback:
- Loopback0
physical:
- GigabitEthernet1
- GigabitEthernet2
- GigabitEthernet3
- GigabitEthernet4
- GigabitEthernet5
- GigabitEthernet6
- GigabitEthernet7
- GigabitEthernet8
- GigabitEthernet9
- GigabitEthernet10
- GigabitEthernet11
- GigabitEthernet12
- GigabitEthernet13
- GigabitEthernet14
- GigabitEthernet15
- GigabitEthernet16
- GigabitEthernet17
- GigabitEthernet18
- GigabitEthernet19
- GigabitEthernet20
- GigabitEthernet21
- GigabitEthernet22
- GigabitEthernet23
- GigabitEthernet24
- GigabitEthernet25
- GigabitEthernet26
serial_ports: 2
general:
description: Cloud Services Router 1000V
nature: router
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 1
disk_driver: virtio
driver: csr1000v
libvirt_domain_driver: kvm
nic_driver: vmxnet3
ram: 3072
boot:
timeout: 250
completed:
- "Would you like to enter the initial configuration dialog?"
- "Press RETURN to get started!"
- "%CVAC-4-CONFIG_DONE:"
pyats:
os: iosxe
series: csr1000v
config_extract_command: show run
ui:
description: |2-
Cloud Services Router 1000V
3 GB DRAM, 1 vCPU
[CCO Link](https://www.cisco.com/c/en/us/support/routers/cloud-services-router-1000v-series/tsd-products-support-series-home.html)
[Release Notes](https://www.cisco.com/c/en/us/td/docs/routers/csr1000/release/notes/xe-16/csr1000v-rn-16-6-book.html)
group: Cisco
icon: router
label: CSR1000v
label_prefix: csr1000v-
visible: true
Desktop
#
# desktop node definition
# added 2018-12.06
# part of VIRL^2
#
id: desktop
configuration:
generator:
driver: alpine
provisioning:
volume_name: cfg
media_type: iso
files:
- name: node.cfg
content: |
# this is a shell script which will be sourced at boot
hostname inserthostname-here
# configurable user account
USERNAME=cisco
PASSWORD=cisco
editable: true
device:
interfaces:
has_loopback_zero: false
default_count: 1
physical:
- eth0
- eth1
- eth2
- eth3
serial_ports: 1
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:
description: Alpine Linux with X11 Desktop
nature: server
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 1
disk_driver: virtio
driver: server
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 512
boot_disk_size: 16
video:
memory: 16
boot:
completed:
- "Welcome to Alpine Linux"
timeout: 60
pyats:
os: linux
ui:
description: |2
Alpine Linux
512 MB DRAM, 1 vCPU, 16GB root disk size
##### Configuration
Shell commands in the configuration field of the node are just sourced as user `root`
when the node starts up. This is based on Alpine Linux. More info [here](https://wiki.alpinelinux.org/wiki/Main_Page)
##### Users
The user account is configurable (cisco/cisco by default).
##### Example
```shell
hostname desktop-0
ifconfig eth1 10.0.0.1 netmask 255.255.255.0 up
route add -net 10.0.0.0/8 dev eth1
```
[Link](https://www.alpinelinux.org/)
group: Others
icon: host
label: Desktop
label_prefix: desktop-
visible: true
Ioll2-xe
#
# ioll2-xe node definition
# generated 2023-10-18
# part of VIRL^2
#
id: ioll2-xe
configuration:
generator:
driver: iosvl2
provisioning:
volume_name: disk
media_type: iso
files:
- name: ios_config.txt
content: hostname inserthostname-here
editable: true
device:
interfaces:
has_loopback_zero: true
default_count: 4
loopback:
- Loopback0
physical:
- Ethernet0/0
- Ethernet0/1
- Ethernet0/2
- Ethernet0/3
- Ethernet1/0
- Ethernet1/1
- Ethernet1/2
- Ethernet1/3
- Ethernet2/0
- Ethernet2/1
- Ethernet2/2
- Ethernet2/3
- Ethernet3/0
- Ethernet3/1
- Ethernet3/2
- Ethernet3/3
serial_ports: 1
inherited:
image:
ram: true
cpus: false
data_volume: false
boot_disk_size: false
cpu_limit: true
node:
ram: true
cpus: false
data_volume: false
boot_disk_size: false
cpu_limit: true
general:
description: IOL XE Switch
nature: switch
read_only: false
schema_version: 0.0.1
sim:
linux_native:
driver: iol
libvirt_domain_driver: iol
ram: 1024
cpu_limit: 100
boot:
timeout: 30
completed:
- Press RETURN to get started!
pyats:
os: ios
series: iosv
config_extract_command: show run
ui:
description: |-
1024 MB DRAM, running in a container
group: Cisco
icon: switch
label: IOL-L2
label_prefix: iol-l2-
visible: true
Iol-xe
#
# iol-xe node definition
# generated 2023-10-18
# part of VIRL^2
#
id: iol-xe
configuration:
generator:
driver: iosv
provisioning:
volume_name: disk
media_type: iso
files:
- name: ios_config.txt
content: |
hostname inserthostname-here
!
! In order to avoid entering a configuration dialog
! on boot, please ensure that all ethernet interfaces
! have some ip configuration present here such as the
! example below:
!
interface range Ethernet 0/0 - 3
no ip address
shutdown
!
end
editable: true
device:
interfaces:
has_loopback_zero: true
default_count: 4
loopback:
- Loopback0
physical:
- Ethernet0/0
- Ethernet0/1
- Ethernet0/2
- Ethernet0/3
- Ethernet1/0
- Ethernet1/1
- Ethernet1/2
- Ethernet1/3
- Ethernet2/0
- Ethernet2/1
- Ethernet2/2
- Ethernet2/3
- Ethernet3/0
- Ethernet3/1
- Ethernet3/2
- Ethernet3/3
serial_ports: 1
inherited:
image:
ram: true
cpus: false
data_volume: false
boot_disk_size: false
cpu_limit: true
node:
ram: true
cpus: false
data_volume: false
boot_disk_size: false
cpu_limit: true
general:
description: IOL XE Router
nature: router
read_only: false
schema_version: 0.0.1
sim:
linux_native:
driver: iol
libvirt_domain_driver: iol
ram: 1024
cpu_limit: 100
boot:
timeout: 30
completed:
- Press RETURN to get started!
pyats:
os: ios
series: iosv
config_extract_command: show run
ui:
description: |2-
1024 MB DRAM, running in a container
group: Cisco
icon: router
label: IOL
label_prefix: iol-
visible: true
Iosvl2
#
# iosvl2 node definition
# generated 2018-11-17
# part of VIRL^2
#
id: iosvl2
configuration:
generator:
driver: iosvl2
provisioning:
volume_name: disk
media_type: fat
files:
- name: ios_config.txt
content: hostname inserthostname-here
editable: true
device:
interfaces:
has_loopback_zero: true
default_count: 4
loopback:
- Loopback0
physical:
- GigabitEthernet0/0
- GigabitEthernet0/1
- GigabitEthernet0/2
- GigabitEthernet0/3
- GigabitEthernet1/0
- GigabitEthernet1/1
- GigabitEthernet1/2
- GigabitEthernet1/3
- GigabitEthernet2/0
- GigabitEthernet2/1
- GigabitEthernet2/2
- GigabitEthernet2/3
- GigabitEthernet3/0
- GigabitEthernet3/1
- GigabitEthernet3/2
- GigabitEthernet3/3
serial_ports: 2
inherited:
image:
ram: true
cpus: false
cpu_limit: true
data_volume: false
boot_disk_size: false
node:
ram: true
cpus: false
cpu_limit: true
data_volume: false
boot_disk_size: false
general:
description: Cisco IOSv-L2 Virtual Switch Platform
nature: switch
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 1
disk_driver: virtio
driver: iosvl2
libvirt_domain_driver: kvm
nic_driver: e1000
ram: 768
boot:
timeout: 300
completed:
- "%PLATFORM-5-SIGNATURE_VERIFIED:"
- "Would you like to enter the initial configuration dialog?"
pyats:
os: ios
series: iosv
config_extract_command: show run
ui:
description: |2
Cisco IOSv-L2 Virtual Switch Platform
768 MB DRAM, 1 vCPU
group: Cisco
icon: switch
label: IOSvL2
label_prefix: iosvl2-
visible: true
Iosv
#
# iosv node definition
# generated 2018-11-17
# part of VIRL^2
#
id: iosv
sim:
linux_native:
driver: iosv
libvirt_domain_driver: kvm
nic_driver: e1000
disk_driver: virtio
ram: 512
cpus: 1
general:
nature: router
description: Cisco IOSv Virtual Router Platform
read_only: true
schema_version: 0.0.1
inherited:
image:
ram: true
cpus: false
cpu_limit: true
data_volume: false
boot_disk_size: false
node:
ram: true
cpus: false
cpu_limit: true
data_volume: false
boot_disk_size: false
configuration:
generator:
driver: iosv
provisioning:
volume_name: disk
media_type: fat
files:
- name: ios_config.txt
content: hostname inserthostname-here
editable: true
device:
interfaces:
physical:
- GigabitEthernet0/0
- GigabitEthernet0/1
- GigabitEthernet0/2
- GigabitEthernet0/3
- GigabitEthernet0/4
- GigabitEthernet0/5
- GigabitEthernet0/6
- GigabitEthernet0/7
- GigabitEthernet0/8
- GigabitEthernet0/9
- GigabitEthernet0/10
- GigabitEthernet0/11
- GigabitEthernet0/12
- GigabitEthernet0/13
- GigabitEthernet0/14
- GigabitEthernet0/15
loopback:
- Loopback0
has_loopback_zero: true
default_count: 4
serial_ports: 2
boot:
timeout: 180
completed:
- "%PLATFORM-5-SIGNATURE_VERIFIED:"
- "Would you like to enter the initial configuration dialog?"
pyats:
os: ios
series: iosv
config_extract_command: show run
ui:
group: Cisco
icon: router
label_prefix: iosv-
label: IOSv
visible: true
description: |2
Cisco IOSv Virtual Router Platform
512 MB DRAM, 1 vCPU
Iosxrv9000
#
# iosxrv9000 node definition
# generated 2018-11-17
# part of VIRL^2
#
id: iosxrv9000
configuration:
generator:
driver: iosxrv9000
provisioning:
volume_name: config
media_type: iso
files:
# sunstone does not implement iosxr_admin_confic.txt
- name: "iosxr_config.txt"
editable: true
content: |
hostname inserthostname-here
username cisco
group root-lr
group cisco-support
password cisco
!
username admin
group root-lr
group cisco-support
password cisco
!
username lab
group root-lr
group cisco-support
password cisco
!
end
device:
interfaces:
has_loopback_zero: true
min_count: 3
default_count: 4
loopback:
- Loopback0
management:
- MgmtEth0/RP0/CPU0/0
physical:
- MgmtEth0/RP0/CPU0/0
- donotuse1
- donotuse2
- GigabitEthernet0/0/0/0
- GigabitEthernet0/0/0/1
- GigabitEthernet0/0/0/2
- GigabitEthernet0/0/0/3
- GigabitEthernet0/0/0/4
- GigabitEthernet0/0/0/5
- GigabitEthernet0/0/0/6
- GigabitEthernet0/0/0/7
- GigabitEthernet0/0/0/8
- GigabitEthernet0/0/0/9
- GigabitEthernet0/0/0/10
- GigabitEthernet0/0/0/11
- GigabitEthernet0/0/0/12
- GigabitEthernet0/0/0/13
- GigabitEthernet0/0/0/14
- GigabitEthernet0/0/0/15
- GigabitEthernet0/0/0/16
- GigabitEthernet0/0/0/17
- GigabitEthernet0/0/0/18
- GigabitEthernet0/0/0/19
- GigabitEthernet0/0/0/20
- GigabitEthernet0/0/0/21
- GigabitEthernet0/0/0/22
- GigabitEthernet0/0/0/23
- GigabitEthernet0/0/0/24
- GigabitEthernet0/0/0/25
- GigabitEthernet0/0/0/26
- GigabitEthernet0/0/0/27
- GigabitEthernet0/0/0/28
- GigabitEthernet0/0/0/29
- GigabitEthernet0/0/0/30
serial_ports: 4
inherited:
image:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
node:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
general:
description: Cisco IOS XRv 9000 Router platform
nature: router
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 4
disk_driver: virtio
driver: iosxrv9000
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 20480
boot:
timeout: 3600
completed:
- "--- Administrative User Dialog ---"
- "%MGBL-CVAC-4-CONFIG_DONE"
pyats:
os: iosxr
series: iosxrv9k
config_extract_command: show running-config
ui:
description: |2-
Cisco IOS XRv 9000 Router platform
It is recommended to use 20 GB and 4 vCPUs.
At a very minimum, 10 GB of DRAM and 2 vCPUs are required.
##### Note
The first data interface is the **4th interface**:
- The first interface is management,
- second and third are marked as 'do not use' and should not be connected to anything
- The next interfaces are actual data interfaces.
[CCO Link](https://www.cisco.com/c/en/us/support/routers/ios-xrv-9000-router/tsd-products-support-series-home.html)
group: Cisco
icon: router
label: IOS XRv 9000
label_prefix: xr9kv-
visible: true
Nxosv9000
#
# nxosv9000 node definition
# generated 2018-11-17
# part of VIRL^2
#
id: nxosv9000
configuration:
generator:
driver: nxosv9000
provisioning:
volume_name: disk
media_type: iso
files:
- name: nxos_config.txt
content: |
hostname inserthostname-here
# workaround for booting to loader> prompt
echo 'from cli import cli' > set_boot.py
echo 'import json' >> set_boot.py
echo 'import os' >> set_boot.py
echo 'import time' >> set_boot.py
echo 'bootimage = json.loads(cli("show version | json"))["kick_file_name"]' >> set_boot.py
echo 'set_boot = cli("conf t ; boot nxos {} ; no event manager applet BOOTCONFIG".format(bootimage))' >> set_boot.py
echo 'i = 0' >> set_boot.py
echo 'while i < 10:' >> set_boot.py
echo ' try:' >> set_boot.py
echo ' save_config = cli("copy running-config startup-config")' >> set_boot.py
echo ' break' >> set_boot.py
echo ' except Exception:' >> set_boot.py
echo ' i += 1' >> set_boot.py
echo ' time.sleep(1)' >> set_boot.py
echo 'os.remove("/bootflash/set_boot.py")' >> set_boot.py
event manager applet BOOTCONFIG
event syslog pattern "Configured from vty"
action 1.0 cli python bootflash:set_boot.py
# minimum needed config to login
no password strength-check
username admin role network-admin
username admin password cisco role network-admin
username cisco role network-admin
username cisco password cisco role network-admin
editable: true
device:
interfaces:
has_loopback_zero: true
default_count: 4
loopback:
- Loopback0
management:
- mgmt0
physical:
- mgmt0
- Ethernet1/1
- Ethernet1/2
- Ethernet1/3
- Ethernet1/4
- Ethernet1/5
- Ethernet1/6
- Ethernet1/7
- Ethernet1/8
- Ethernet1/9
- Ethernet1/10
- Ethernet1/11
- Ethernet1/12
- Ethernet1/13
- Ethernet1/14
- Ethernet1/15
- Ethernet1/16
- Ethernet1/17
- Ethernet1/18
- Ethernet1/19
- Ethernet1/20
- Ethernet1/21
- Ethernet1/22
- Ethernet1/23
- Ethernet1/24
- Ethernet1/25
- Ethernet1/26
- Ethernet1/27
- Ethernet1/28
- Ethernet1/29
- Ethernet1/30
- Ethernet1/31
- Ethernet1/32
- Ethernet1/33
- Ethernet1/34
- Ethernet1/35
- Ethernet1/36
- Ethernet1/37
- Ethernet1/38
- Ethernet1/39
- Ethernet1/40
- Ethernet1/41
- Ethernet1/42
- Ethernet1/43
- Ethernet1/44
- Ethernet1/45
- Ethernet1/46
- Ethernet1/47
- Ethernet1/48
- Ethernet1/49
- Ethernet1/50
- Ethernet1/51
- Ethernet1/52
- Ethernet1/53
- Ethernet1/54
- Ethernet1/55
- Ethernet1/56
- Ethernet1/57
- Ethernet1/58
- Ethernet1/59
- Ethernet1/60
- Ethernet1/61
- Ethernet1/62
- Ethernet1/63
- Ethernet1/64
serial_ports: 2
inherited:
image:
ram: true
cpus: true
data_volume: false
cpu_limit: true
boot_disk_size: false
node:
ram: true
cpus: true
cpu_limit: true
data_volume: false
boot_disk_size: false
general:
description: Cisco Nexus 9000v Switch
nature: switch
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 2
disk_driver: sata
driver: nxosv9000
efi_boot: true
libvirt_domain_driver: kvm
nic_driver: e1000
ram: 8192
boot:
timeout: 480
completed:
- "There is no admin password in the bootstrap file"
- "User Access Verification"
pyats:
os: nxos
series: n9k
config_extract_command: show run
ui:
description: |
Cisco Nexus 9000v Switch
Requires 8 GB DRAM, 2 vCPUs
[CCO Link](https://www.cisco.com/c/en/us/support/switches/nexus-9000v-switch/model.html)
group: Cisco
icon: switch
label: NX-OS 9000
label_prefix: nxos9000-
visible: true
Server
#
# server node definition
# generated 2018-11-17
# part of VIRL^2
#
id: server
configuration:
generator:
driver: server
provisioning:
volume_name: cfg
media_type: iso
files:
- name: iosxe_config.txt
content: |
# this is a shell script which will be sourced at boot
hostname inserthostname-here
# configurable user account
USERNAME=cisco
PASSWORD=cisco
# no password for tc user by default
TC_PASSWORD=
editable: true
device:
interfaces:
has_loopback_zero: false
default_count: 1
physical:
- eth0
- eth1
- eth2
- eth3
- eth4
- eth5
- eth6
- eth7
- eth8
- eth9
serial_ports: 1
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:
description: Tiny Core Linux
nature: server
read_only: true
schema_version: 0.0.1
sim:
linux_native:
cpus: 1
disk_driver: virtio
driver: server
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 128
boot_disk_size: 16
video:
memory: 16
boot:
completed:
- "###### BOOT CONFIG DONE ######"
timeout: 20
pyats:
os: linux
ui:
description: |2-
Tiny Core Linux
128 MB DRAM, 1 vCPU
##### Configuration
Shell commands in the configuration field of the
node are just sourced as user `root` when the node
starts up. Tiny Core Linux is pretty much a RAM disk
based distribution; unless a backup is initiated using
the `backup` command, there's nothing saved when
restarting / reloading a node. The default username
is `tc` without a password. There is also a user
`cisco` with password `cisco`. Additional packages
can be installed using the interactive `tce` command.
This, of course, requires external connectivity to
reach the repo servers. For further information click
[here](http://www.tinycorelinux.net/concepts.html).
##### Example
```shell
hostname server-0
ifconfig eth1 10.0.0.1 netmask 255.255.255.0 up
route add -net 10.0.0.0/8 dev eth1
```
group: Others
icon: server
label: Server
label_prefix: server-
visible: true
Ubuntu
#
# Ubuntu node definition (cloud image, using cloud-init)
#
id: ubuntu
sim:
linux_native:
driver: server
libvirt_domain_driver: kvm
disk_driver: virtio
nic_driver: virtio
ram: 2048
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: server
description: Ubuntu Cloud Init 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: ubuntu
editable: false
- name: user-data
content: |
#cloud-config
hostname: inserthostname-here
manage_etc_hosts: True
system_info:
default_user:
name: cisco
password: cisco
chpasswd: { expire: False }
ssh_pwauth: True
ssh_authorized_keys:
- your-ssh-pubkey-line-goes-here
editable: true
device:
interfaces:
# 8 should be enough, they are called ens2, ens3, ...
# however, those are PCI bus/slot numbers. I guess they are
# not static. Depends what device goes before '2'
physical:
- ens2
- ens3
- ens4
- ens5
- ens6
- ens7
- ens8
- ens9
has_loopback_zero: false
default_count: 1
serial_ports: 1
boot:
timeout: 180
# seems that without proper meta-data the hostname is not
# correctly set at initial boot. It is 'ubuntu'. Also, the
# first line is not seen at first boot. Only at second
# boot, the correct hostname plus the 'reached target' is
# will be set / shown on the console.
completed:
- "Cloud-init target"
- "Welcome to Ubuntu"
- "running 'modules:final' at"
pyats:
os: linux
ui:
group: Others
icon: server
label: Ubuntu
label_prefix: ubuntu-
visible: true
description: |
Ubuntu Cloud Init Platform
2 GB DRAM, 1 vCPU (can be adjusted)
##### Configuration
The Ubuntu image uses cloud-init YAML for configuration. Please
ensure that you have a valid cloud-init configuration in the node's
Edit Config pane in the Workbench. When you drop an Ubuntu node
on the canvas in the Workbench, a very brief (but complete) skeleton
for a cloud-init configuration is added to the node.
The pre-configured default username on the VM image is ubuntu,
but the initial config for the node overrides the default_user account
to be cisco. To log into the node as with this default user account,
ensure that the cloud-init config for the node either specifies a password
with the top-level password field or provides at least one SSH public key
with the top-level ssh_authorized_keys field.
See [the cloud-init documentation](https://cloudinit.readthedocs.io/en/latest/topics/examples.html)
for additional cloud-init examples.
Image definitions¶
Alpine-base-3-19-1
#
# alpine-base image definition
# generated 2024-01-27
# part of VIRL^2
#
id: alpine-base-3-19-1
label: Alpine 3.19.1
description: Alpine Linux and network tools
node_definition_id: alpine
disk_image: alpine-base-3-19-1.qcow2
read_only: true
schema_version: 0.0.1
Alpine-desktop-3-19-1
#
# alpine-desktop image definition
# generated 2024-01-27
# part of VIRL^2
#
id: alpine-desktop-3-19-1
label: Desktop 3.19.1
description: Alpine Desktop 3.19.1 XFCE
node_definition_id: desktop
disk_image: alpine-desktop-3-19-1.qcow2
read_only: true
schema_version: 0.0.1
Alpine-trex-3-19-1
#
# Alpine Linux TRex 2.87 image
# generated 2024-01-27
# part of VIRL^2
#
id: alpine-trex-3-19-1
label: TRex 3.19.1
description: TRex 2.87 based on Alpine 3.19.1
node_definition_id: trex
disk_image: alpine-trex-3-19-1.qcow2
read_only: true
schema_version: 0.0.1
Alpine-wanem-3-19-1
#
# Alpine Linux WAN Emulator image
# generated 2024-01-27
# part of VIRL^2
#
id: alpine-wanem-3-19-1
label: WAN Emulator 3.19.1
description: WAN Emulator based on Alpine 3.19.1
node_definition_id: wan_emulator
disk_image: alpine-wanem-3-19-1.qcow2
read_only: true
schema_version: 0.0.1
Asav-9-20-2
#
# asav image definition
# generated 2023-12-19
# part of VIRL^2
#
id: asav-9-20-2
label: ASAv 9.20.2
description: ASAv 9.20.2
node_definition_id: asav
disk_image: asav9-20-2-2.qcow2
configuration: |-
hostname inserthostname-here
!
enable password Cisco1@3
!
end
pyats:
username: cisco
password: Cisco1@3
read_only: true
schema_version: 0.0.1
Cat8000v-17-13-01a
#
# cat8000v image definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat8000v-17-13-01a
label: Cat 8000v 17.13.01a
description: Cat 8000v 17.13.01a
node_definition_id: cat8000v
disk_image: c8000v-universalk9_8G_serial.17.13.01a.qcow2
read_only: true
schema_version: 0.0.1
Cat9000v-q200-17-12-01prd9
#
# cat9000v-q200 image definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat9000v-q200-17-12-01prd9
label: Cat 9000v Q200 17.12.01prd9
description: Cat 9000v Q200 17.12.01prd9
node_definition_id: cat9000v-q200
disk_image: cat9kv-prd-17.12.01prd9.qcow2
read_only: true
schema_version: 0.0.1
Cat9000v-uadp-17-12-01prd9
#
# cat9000v-uadp image definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat9000v-uadp-17-12-01prd9
label: Cat 9000v UADP 17.12.01prd9
description: Cat 9000v UADP 17.12.01prd9
node_definition_id: cat9000v-uadp
disk_image: cat9kv-prd-17.12.01prd9.qcow2
read_only: true
schema_version: 0.0.1
Csr1000v-17-03-08a
#
# csr1000v image definition
# generated 2023-12-19
# part of VIRL^2
#
id: csr1000v-17-03-08a
label: CSR1000v 17.03.08a
description: CSR1000v 17.03.08a
node_definition_id: csr1000v
disk_image: csr1000v-universalk9.17.03.08a-serial.qcow2
read_only: true
schema_version: 0.0.1
Ioll2-xe-17-12-01
#
# ioll2-xe image definition
# generated 2023-10-18
# part of VIRL^2
#
id: ioll2-xe-17-12-01
label: IOL L2 XE 17.12.01
description: IOL L2 XE 17.12.01
node_definition_id: ioll2-xe
disk_image: x86_64_crb_linux_l2-adventerprisek9-ms
read_only: true
schema_version: 0.0.1
Iol-xe-17-12-01
#
# iol-xe image definition
# generated 2023-10-18
# part of VIRL^2
#
id: iol-xe-17-12-01
label: IOL XE 17.12.01
description: IOL XE 17.12.01
node_definition_id: iol-xe
disk_image: x86_64_crb_linux-adventerprisek9-ms
read_only: true
schema_version: 0.0.1
Iosv-159-3-m8
#
# iosv image definition
# generated 2023-12-19
# part of VIRL^2
#
id: iosv-159-3-m8
label: IOSv 15.9(3) M8
description: IOSv 15.9(3) M8
node_definition_id: iosv
disk_image: vios-adventerprisek9-m.spa.159-3.m8.qcow2
read_only: true
schema_version: 0.0.1
Iosvl2-2020
#
# iosvl2 image definition
# generated 2021-01-29
# part of VIRL^2
#
id: iosvl2-2020
label: IOSv L2 2020
description: IOSv L2 2020
node_definition_id: iosvl2
disk_image: vios_l2-adventerprisek9-m.ssa.high_iron_20200929.qcow2
read_only: true
schema_version: 0.0.1
Iosxrv9000-7-11-1
#
# iosxrv9000 image definition
# generated 2023-12-19
# part of VIRL^2
#
id: iosxrv9000-7-11-1
label: IOS XR 9000v 7.11.1
description: IOS XR 9000v 7.11.1
node_definition_id: iosxrv9000
disk_image: xrv9k-fullk9-x-7.11.1.qcow2
read_only: true
schema_version: 0.0.1
Nxosv9300-10-4-2-f
#
# nxosv9300 image definition
# generated 2023-12-19
# part of VIRL^2
#
id: nxosv9300-10-4-2-f
label: NX-OS 9300v 10.4.2.F
description: NX-OS 9300v 10.4.2.F
node_definition_id: nxosv9000
disk_image: nexus9300v64.10.4.2.F.qcow2
read_only: true
schema_version: 0.0.1
Server-tcl-14-0
#
# server image definition
# generated 2024-01-27
# part of VIRL^2
#
id: server-tcl-14-0
label: Server TCL 14.0
description: Tiny Core Linux 14.0
node_definition_id: server
disk_image: tcl-14-0.qcow2
read_only: true
schema_version: 0.0.1
Ubuntu-22-04-20240126
#
# Ubuntu 22.04 image definition (cloud image, using cloud-init)
# generated 2024-01-26
# part of VIRL^2
#
id: ubuntu-22-04-20240126
label: Ubuntu 22.04 - 26 Jan 2024
description: Ubuntu 22.04 - 26 Jan 2024
node_definition_id: ubuntu
disk_image: jammy-server-cloudimg-amd64.img
read_only: true
schema_version: 0.0.1
refplat-20240322-supplemental.iso¶
ディレクトリ構造
├── node-definitions
│ ├── cat-sdwan-controller.yaml
│ ├── cat-sdwan-edge.yaml
│ ├── cat-sdwan-manager.yaml
│ ├── cat-sdwan-validator.yaml
│ └── cat-sdwan-vedge.yaml
└── virl-base-images
├── cat-sdwan-controller-20-13-1
│ ├── cat-sdwan-controller-20.13.1.yaml
│ └── viptela-smart-20.13.1-genericx86-64.qcow2
├── cat-sdwan-edge-17-13-01a
│ ├── c8000v-universalk9_8G_serial.17.13.01a.qcow2
│ └── cat-sdwan-edge-17.13.01a.yaml
├── cat-sdwan-manager-20-13-1
│ ├── cat-sdwan-manager-20.13.1.yaml
│ └── viptela-vmanage-20.13.1-genericx86-64.qcow2
├── cat-sdwan-validator-20-13-1
│ ├── cat-sdwan-validator-20.13.1.yaml
│ └── viptela-edge-20.13.1-genericx86-64.qcow2
└── cat-sdwan-vedge-20-13-1
├── cat-sdwan-vedge-20.13.1.yaml
└── viptela-edge-20.13.1-genericx86-64.qcow2
Node definitions¶
Cat-sdwan-controller
#
# cat-sdwan-controller node definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-controller
configuration:
generator:
driver: sdwan
provisioning:
volume_name: cidata
media_type: iso
files:
- name: meta-data
content: |-
instance-id: Controller
local-hostname: Controller
editable: false
- name: user-data
content: |
#cloud-config
write_files:
- path: /etc/confd/init/zcloud.xml
content: |
<config xmlns="http://tail-f.com/ns/config/1.0">
<system xmlns="http://viptela.com/system">
<host-name>inserthostname-here</host-name>
<aaa>
<user>
<name>admin</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
</user>
<user>
<name>cisco</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
<group>netadmin</group>
</user>
<user>
<name>cisco</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
</user>
</aaa>
</system>
</config>
editable: true
device:
interfaces:
has_loopback_zero: false
default_count: 4
physical:
- eth0
- eth1
- eth2
- eth3
- eth4
- eth5
- eth6
- eth7
- eth8
- eth9
- eth10
- eth11
- eth12
- eth13
- eth14
- eth15
- eth16
- eth17
- eth18
- eth19
- eth20
- eth21
- eth22
- eth23
- eth24
- eth25
- eth26
- eth27
- eth28
- eth29
- eth30
- eth31
serial_ports: 1
inherited:
image:
ram: true
cpus: true
data_volume: false
boot_disk_size: false
cpu_limit: true
node:
ram: true
cpus: true
data_volume: false
boot_disk_size: false
cpu_limit: true
general:
description: Cisco Catalyst SD-WAN Controller
nature: server
read_only: true
schema_version: 0.0.1
boot:
timeout: 300
completed:
- ': System Ready'
sim:
linux_native:
cpus: 2
disk_driver: ide
driver: server
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 4096
cpu_limit: 100
pyats:
os: sdwan
series: viptela
config_extract_command: show running
ui:
description: Cisco Catalyst SD-WAN Controller
group: Cisco
icon: server
label: Catalyst SD-WAN Controller
label_prefix: sdwan-controller-
visible: true
Cat-sdwan-edge
#
# cat-sdwan-edge node definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-edge
device:
interfaces:
has_loopback_zero: true
physical:
- GigabitEthernet1
- GigabitEthernet2
- GigabitEthernet3
- GigabitEthernet4
- GigabitEthernet5
- GigabitEthernet6
- GigabitEthernet7
- GigabitEthernet8
- GigabitEthernet9
- GigabitEthernet10
- GigabitEthernet11
- GigabitEthernet12
- GigabitEthernet13
- GigabitEthernet14
- GigabitEthernet15
- GigabitEthernet16
- GigabitEthernet17
- GigabitEthernet18
- GigabitEthernet19
- GigabitEthernet20
- GigabitEthernet21
- GigabitEthernet22
- GigabitEthernet23
- GigabitEthernet24
- GigabitEthernet25
- GigabitEthernet26
serial_ports: 2
default_count: 4
loopback:
- Loopback0
inherited:
image:
ram: true
cpus: true
data_volume: false
boot_disk_size: false
cpu_limit: true
node:
ram: true
cpus: true
data_volume: false
boot_disk_size: false
cpu_limit: true
configuration:
generator:
driver: csr1000v
provisioning:
volume_name: disk
media_type: iso
files:
- name: ciscosdwan_cloud_init.cfg
editable: true
content: |
Content-Type: multipart/mixed; boundary="==BOUNDARY=="
MIME-Version: 1.0
--==BOUNDARY==
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config"
#cloud-config
vinitparam:
- otp : abcd
- vbond : ''
- uuid : C8K
- org : ''
- rcc : true
ca-certs:
remove-defaults: false
trusted:
- |
--==BOUNDARY==
Content-Type: text/cloud-boothook; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="config-C8K.txt"
#cloud-boothook
hostname inserthostname-here
username cisco privilege 15 secret 0 cisco
!
!
--==BOUNDARY==--
general:
description: Catalyst SD-WAN Edge
nature: router
read_only: true
schema_version: 0.0.1
boot:
completed:
- Press RETURN to get started!
timeout: 250
sim:
linux_native:
libvirt_domain_driver: kvm
driver: csr1000v
disk_driver: virtio
ram: 5120
cpus: 2
nic_driver: vmxnet3
cpu_limit: 100
pyats:
os: iosxe
series: csr1000v
config_extract_command: show running
ui:
description: Cisco Catalyst SD-WAN Edge
group: Cisco
icon: router
label: Catalyst SD-WAN Edge
label_prefix: sdwan-edge-
visible: true
Cat-sdwan-manager
#
# cat-sdwan-manager node definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-manager
configuration:
generator:
driver: sdwan_manager
provisioning:
volume_name: cidata
media_type: iso
files:
- name: meta-data
content: |-
instance-id: Manager
local-hostname: Manager
editable: false
- name: user-data
content: |
#cloud-config
fs_setup:
- device: "/dev/sdb"
partition: "none"
filesystem: "ext4"
mounts:
- [ sdb, /opt/data ]
write_files:
- path: /opt/web-app/etc/persona
owner: vmanage:vmanage-admin
permissions: '0644'
content: '{"persona":"COMPUTE_AND_DATA"}'
- path: /etc/confd/init/zcloud.xml
content: |
<config xmlns="http://tail-f.com/ns/config/1.0">
<system xmlns="http://viptela.com/system">
<host-name>inserthostname-here</host-name>
<aaa>
<user>
<name>admin</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
</user>
<user>
<name>cisco</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
<group>netadmin</group>
</user>
<user>
<name>cisco</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
</user>
</aaa>
</system>
</config>
editable: true
device:
interfaces:
has_loopback_zero: false
default_count: 4
physical:
- eth0
- eth1
- eth2
- eth3
- eth4
- eth5
- eth6
- eth7
- eth8
- eth9
- eth10
- eth11
- eth12
- eth13
- eth14
- eth15
- eth16
- eth17
- eth18
- eth19
- eth20
- eth21
- eth22
- eth23
- eth24
- eth25
- eth26
- eth27
- eth28
- eth29
- eth30
- eth31
serial_ports: 1
inherited:
image:
ram: true
cpus: true
data_volume: true
boot_disk_size: false
cpu_limit: true
node:
ram: true
cpus: true
data_volume: true
boot_disk_size: false
cpu_limit: true
general:
description: Cisco Catalyst SD-WAN Manager
nature: server
read_only: true
schema_version: 0.0.1
boot:
timeout: 300
completed:
- ': System Ready'
sim:
linux_native:
cpus: 8
disk_driver: ide
driver: server
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 16384
data_volume: 256
cpu_limit: 100
pyats:
os: sdwan
series: viptela
config_extract_command: show running
ui:
description: Cisco Catalyst SD-WAN Manager
group: Cisco
icon: server
label: Catalyst SD-WAN Manager
label_prefix: sdwan-manager-
visible: true
Cat-sdwan-validator
#
# cat-sdwan-validator node definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-validator
configuration:
generator:
driver: sdwan
provisioning:
volume_name: cidata
media_type: iso
files:
- name: meta-data
content: |-
instance-id: Validator
local-hostname: Validator
editable: false
- name: user-data
content: |
#cloud-config
write_files:
- path: /etc/confd/init/zcloud.xml
content: |
<config xmlns="http://tail-f.com/ns/config/1.0">
<system xmlns="http://viptela.com/system">
<host-name>inserthostname-here</host-name>
<aaa>
<user>
<name>admin</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
</user>
<user>
<name>cisco</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
<group>netadmin</group>
</user>
<user>
<name>cisco</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
</user>
</aaa>
</system>
</config>
editable: true
device:
interfaces:
has_loopback_zero: false
default_count: 4
physical:
- eth0
- ge0/0
- ge0/1
- ge0/2
- ge0/3
- ge0/4
- ge0/5
- ge0/6
- ge0/7
- eth1
- eth2
- eth3
- eth4
- eth5
- eth6
- eth7
- eth8
- eth9
- eth10
- eth11
- eth12
- eth13
- eth14
- eth15
- eth16
- eth17
- eth18
- eth19
- eth20
- eth21
- eth22
- eth23
serial_ports: 1
inherited:
image:
ram: true
cpus: true
data_volume: false
boot_disk_size: false
cpu_limit: true
node:
ram: true
cpus: true
data_volume: false
boot_disk_size: false
cpu_limit: true
general:
description: Cisco Catalyst SD-WAN Validator
nature: server
read_only: true
schema_version: 0.0.1
boot:
timeout: 300
completed:
- ': System Ready'
sim:
linux_native:
cpus: 2
disk_driver: ide
driver: server
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 4096
cpu_limit: 100
pyats:
os: sdwan
series: viptela
config_extract_command: show running
ui:
description: Cisco Catalyst SD-WAN Validator
group: Cisco
icon: server
label: Catalyst SD-WAN Validator
label_prefix: sdwan-validator-
visible: true
Cat-sdwan-vedge
#
# cat-sdwan-vedge node definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-vedge
configuration:
generator:
driver: sdwan
provisioning:
volume_name: cidata
media_type: iso
files:
- name: meta-data
content: |-
instance-id: vEdge
local-hostname: vEdge
editable: false
- name: user-data
content: |
#cloud-config
write_files:
- path: /etc/confd/init/zcloud.xml
content: |
<config xmlns="http://tail-f.com/ns/config/1.0">
<system xmlns="http://viptela.com/system">
<host-name>inserthostname-here</host-name>
<aaa>
<user>
<name>admin</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
</user>
<user>
<name>cisco</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
<group>netadmin</group>
</user>
<user>
<name>cisco</name>
<password>$6$0270fb81b5b56c1e$LOaD1.Xj7zlP9TwMwZ5sMI1rtsU7b.TTtk3vetlfwVetEq7xmFkSvRCnsCn0rp14WYMC0ydfZtwiXNJL8mVr9/</password>
</user>
</aaa>
</system>
</config>
editable: true
device:
interfaces:
has_loopback_zero: false
default_count: 4
physical:
- eth0
- ge0/0
- ge0/1
- ge0/2
- ge0/3
- ge0/4
- ge0/5
- ge0/6
- ge0/7
- eth1
- eth2
- eth3
- eth4
- eth5
- eth6
- eth7
- eth8
- eth9
- eth10
- eth11
- eth12
- eth13
- eth14
- eth15
- eth16
- eth17
- eth18
- eth19
- eth20
- eth21
- eth22
- eth23
serial_ports: 1
inherited:
image:
ram: true
cpus: true
data_volume: false
boot_disk_size: false
cpu_limit: true
node:
ram: true
cpus: true
data_volume: false
boot_disk_size: false
cpu_limit: true
general:
description: Catalyst SD-WAN vEdge
nature: server
read_only: true
schema_version: 0.0.1
boot:
timeout: 120
completed:
- ': System Ready'
sim:
linux_native:
cpus: 2
disk_driver: ide
driver: server
libvirt_domain_driver: kvm
nic_driver: virtio
ram: 2048
cpu_limit: 100
pyats:
os: sdwan
series: viptela
config_extract_command: show running
ui:
description: Catalyst SD-WAN vEdge
group: Cisco
icon: router
label: Catalyst SD-WAN vEdge
label_prefix: sdwan-vedge-
visible: true
Image definitions¶
Cat-sdwan-controller
#
# cat-sdwan-controller image definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-controller-20-13-1
node_definition_id: cat-sdwan-controller
description: Cisco Catalyst Controller 20.13.1
label: Catalyst SD-WAN Controller 20.13.1
disk_image: viptela-smart-20.13.1-genericx86-64.qcow2
read_only: true
schema_version: 0.0.1
Cat-sdwan-edge
#
# cat-sdwan-edge image definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-edge-17-13-01a
node_definition_id: cat-sdwan-edge
description: Cisco Catalyst SD-WAN Edge 17.13.01a
label: Catalyst SD-WAN Edge 17.13.01a
disk_image: c8000v-universalk9_8G_serial.17.13.01a.qcow2
read_only: true
schema_version: 0.0.1
Cat-sdwan-manager
#
# cat-sdwan-manager image definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-manager-20-13-1
node_definition_id: cat-sdwan-manager
description: Catalyst SD-WAN Manager 20.13.1
label: Catalyst SD-WAN Manager 20.13.1
disk_image: viptela-vmanage-20.13.1-genericx86-64.qcow2
read_only: true
schema_version: 0.0.1
Cat-sdwan-validator
#
# cat-sdwan-validator image definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-validator-20-13-1
node_definition_id: cat-sdwan-validator
description: Cisco Catalyst SD-WAN Validator 20.13.1
label: Catalyst SD-WAN Validator 20.13.1
disk_image: viptela-edge-20.13.1-genericx86-64.qcow2
read_only: true
schema_version: 0.0.1
Cat-sdwan-vedge
#
# cat-sdwan-vedge image definition
# generated 2023-12-19
# part of VIRL^2
#
id: cat-sdwan-vedge-20-13-1
node_definition_id: cat-sdwan-vedge
description: Cisco Catalyst SD-WAN vEdge 20.13.1
label: Catalyst SD-WAN vEdge 20.13.1
disk_image: viptela-edge-20.13.1-genericx86-64.qcow2
read_only: true
schema_version: 0.0.1