Skip to content

CML の Reference Platform に同梱されている yaml ファイル

現時点で最新の Cisco CML は バージョン 2.7.0 です。 CML は「CML 本体」と別に「起動するノードイメージ」を集めた Reference Platform を併せて利用するのが一般的です。 CML へノードを追加するには「ノードそのもののイメージファイル」とは別に、下記のふたつが必要になります。

  1. Node definition
  2. 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