Skip to content

Task 5 - Configure everything as code

So far in this lab, we have:

  1. Concept and Tools: We have learned about the Meraki as Code concept, its benefits, and the tools we will be using in this lab.
  2. Prepare your environment: We have cloned the example repository, set environment variables, and familiarized ourselves with the data model structure.
  3. Working with Meraki Data Model: We have explored the data model structure, understood how templates and variables are organized, and how to modify them to fit our needs.
  4. Creating your first Organization: We have created an organization using the Meraki as code Data Model.

In this task, we will look at deploying other features of the Meraki using Meraki as Code Data Model.

  • Create networks
  • Add common network settings
  • Add wireless settings and SSID to the network
  • Add switch settings to the network
  • Add appliance settings and vlans to the network
  • Add appliance traffic shaping to the network
  • Add firewall services to the network

Step 1: Create network and configure settings

Section titled “Step 1: Create network and configure settings”
  1. Go to your Code Server

  2. On the Explorer in the left you can see, the data folder and some configurations are placed in lab-data folder.

  3. Copy the file 02_configure_network.nac.yaml from lab-data folder to the data folder.

  4. Review the contents of the file and see if you can understand the YAML syntax for network and its settings.

meraki:
domains:
- name: EU
administrator:
name: admin
organizations:
- name: Meraki Learning Lab
managed: true
networks:
- name: Amsterdam-Network-1
product_types:
- appliance
- switch
- wireless
time_zone: Europe/Amsterdam
notes: cleu_network_notes
tags:
- cleu
settings:
local_status_page_enabled: true
remote_status_page: true
secure_port: false
local_status_page_authentication:
username: cleu_user
password: !env secret_password
named_vlans: true
snmp:
access: users
users:
- username: cleu_user
passphrase: !env secret_password
syslog_servers:
- host: 1.2.3.4
port: 514
roles:
- Switch Event log
- Air Marshal events
- Flows
- URLs
- Wireless Event log
- Appliance Event log

The Data Model Syntax for Networks can be referred at General Network Settings

Summary: Building on the organization created earlier, this YAML adds a network named Amsterdam-Network-1 with appliance, switch, and wireless product types. It sets the time zone to Europe/Amsterdam, applies a cleu tag, and enables local and remote status pages with authentication. SNMP is configured with user-based access, and syslog forwarding is set up to send switch events, Air Marshal events, flows, URLs, wireless events, and appliance events to 1.2.3.4:514. Named VLANs are also enabled for the network. Notice the !env secret_password syntax — this is a custom YAML tag that reads the value of the secret_password environment variable at runtime, keeping sensitive credentials out of your data model files and version control.

  1. Copy the file 03_add_wireless.nac.yaml from lab-data folder to the data folder.

  2. Review the contents of the file and see if you can understand the YAML syntax for wireless settings and SSIDs.

meraki:
domains:
- name: EU
administrator:
name: admin
organizations:
- name: Meraki Learning Lab
managed: true
networks:
- name: Amsterdam-Network-1
wireless:
settings:
upgrade_strategy: minimizeUpgradeTime
meshing: false
ssids:
- name: Corp
auth_mode: 8021x-radius
available_on_all_aps: true
band_selection: Dual band operation with Band Steering
default_vlan_id: 10
dot11r:
enabled: true
dot11w:
enabled: true
required: false
enabled: true
encryption_mode: wpa-eap
firewall_l3_firewall_rules:
allow_lan_access: true
ip_assignment_mode: Bridge mode
lan_isolation: false
radius:
accounting: true
accounting_servers:
- host: 2.3.4.5
port: 1813
secret: !env secret_password
- host: 2.3.4.6
port: 1813
secret: !env secret_password
attribute_for_group_policies: Filter-Id
coa: false
override: true
servers:
- host: 2.3.4.5
port: 1812
secret: !env secret_password
- host: 2.3.4.6
port: 1812
secret: !env secret_password
testing: true
ssid_number: '0'
traffic_shaping_rules:
traffic_shaping: true
default_rules: true
use_vlan_tagging: true
visible: true
wpa_encryption_mode: WPA2 only

The Data Model Syntax for Wireless can be referred at SSID Base Configuration

Summary: This YAML adds wireless configuration to Amsterdam-Network-1. It sets the upgrade strategy to minimize upgrade time and disables meshing. An SSID named Corp is created using 802.1X RADIUS authentication with WPA2-EAP encryption in bridge mode on VLAN 10. Two RADIUS servers (2.3.4.5 and 2.3.4.6) are configured for both authentication (port 1812) and accounting (port 1813), with secrets read from the secret_password environment variable. The SSID enables 802.11r (fast roaming) and 802.11w (management frame protection), is available on all access points, uses dual band with band steering, and has VLAN tagging and traffic shaping enabled.

  1. Copy the file 04_switch_settings.nac.yaml from lab-data folder to the data folder.

  2. Review the contents of the file and see if you can understand the YAML syntax for switch settings and access policies.

meraki:
domains:
- name: EU
administrator:
name: admin
organizations:
- name: Meraki Learning Lab
managed: true
networks:
- name: Amsterdam-Network-1
switch:
access_policies:
- name: 'Wired Access Policy'
radius_servers:
- host: 2.3.4.5
port: 1812
secret: !env secret_password
radius_accounting_servers:
- host: 2.3.4.5
port: 1813
secret: !env secret_password
radius_accounting: true
radius_coa_support: true
radius_testing: true
radius_group_attribute: '11'
host_mode: Multi-Auth
voice_vlan_clients: true
access_policy_type: Hybrid authentication
radius:
re_authentication_interval: 86400
dot1x_control_direction: both
url_redirect_walled_garden: false
settings:
vlan: 999
use_combined_power: false
uplink_client_sampling: true
mac_blocklist: false
mtu:
default_mtu_size: 9126
routing_multicast:
default_settings:
igmp_snooping: true
flood_unknown_multicast_traffic: false

The Data Model Syntax for Switch can be referred at Switch Settings

Summary: This YAML adds switch configuration to Amsterdam-Network-1. It creates a wired access policy named Wired Access Policy using hybrid authentication in multi-auth host mode with RADIUS server 2.3.4.5 for both authentication (port 1812) and accounting (port 1813). The policy enables RADIUS CoA support, testing, and sets a re-authentication interval of 86400 seconds (24 hours) with bidirectional 802.1X control. Switch settings assign the default VLAN to 999, disable combined power and MAC blocklist, and enable uplink client sampling. The MTU is set to 9126, and multicast routing is configured with IGMP snooping enabled and unknown multicast flooding disabled.

Step 4: Add appliance settings, VLANs, and traffic shaping

Section titled “Step 4: Add appliance settings, VLANs, and traffic shaping”
  1. Copy the file 05_add_firewall_sdwan_settings.nac.yaml from lab-data folder to the data folder.

  2. Review the contents of the file and see if you can understand the YAML syntax for appliance VLANs and traffic shaping rules.

meraki:
domains:
- name: EU
administrator:
name: admin
organizations:
- name: Meraki Learning Lab
managed: true
networks:
- name: Amsterdam-Network-1
time_zone: Europe/Amsterdam
appliance:
settings:
client_tracking_method: 'MAC address'
deployment_mode: routed
vlans:
- vlan_id: 10
name: 'Data'
subnet: 10.1.10.0/24
appliance_ip: 10.1.10.1
dhcp_handling: 'Run DHCP server'
mandatory_dhcp: false
- vlan_id: 20
name: 'Voice'
subnet: 10.1.20.0/24
appliance_ip: 10.1.20.1
dhcp_handling: 'Run DHCP server'
mandatory_dhcp: false
- vlan_id: 999
name: 'Infra'
subnet: 10.1.255.0/24
appliance_ip: 10.1.255.1
dns_nameservers: opendns
dhcp_handling: 'Run a DHCP server'
dhcp_lease_time: '1 day'
dhcp_boot_options: false
mandatory_dhcp: false
traffic_shaping:
global_bandwidth_limits:
limit_up: 5000
limit_down: 9000
rules:
rules:
- name: Rule 01
definitions:
- type: applicationCategory
value: 'meraki:layer7/category/24'
- type: application
value: meraki:layer7/application/332
per_client_bandwidth_limits:
settings: custom
bandwidth_limits:
limit_up: 1000
limit_down: 1000
dscp_tag_value: 10
priority: high
- name: Rule 02
definitions:
- type: application
value: meraki:layer7/application/332
per_client_bandwidth_limits:
settings: ignore
dscp_tag_value: 18
priority: high
default_rules: false

The Data Model Syntax for Appliance can be referred at Appliance Settings

Summary: This YAML configures the MX appliance for Amsterdam-Network-1 in routed deployment mode with MAC address client tracking. Three VLANs are defined: Data (VLAN 10, 10.1.10.0/24), Voice (VLAN 20, 10.1.20.0/24), and Infra (VLAN 999, 10.1.255.0/24) — each with its own DHCP server and gateway address. The Infra VLAN additionally uses OpenDNS nameservers with a 1-day DHCP lease. Traffic shaping is configured with global bandwidth limits of 5 Mbps up and 9 Mbps down, along with two high-priority rules: Rule 01 targets the “Databases & cloud services” category and Amazon RDS with custom per-client limits of 1 Mbps each direction, while Rule 02 targets Amazon RDS specifically with no per-client limits enforced.

Now that all four YAML files are in the data/ folder, run nac-validate to check for syntax and semantic errors across the entire data model before planning.

Terminal window
cd /home/dcloud/network-as-code/meraki-as-code/
nac-validate --non-strict -s schema.yaml -r rules/ data/

You should see output as below.

(meraki-as-code) dcloud@lin-wkst1:~/network-as-code/meraki-as-code$ nac-validate --non-strict -s schema.yaml -r rules/ data/
(meraki-as-code) dcloud@lin-wkst1:~/network-as-code/meraki-as-code$

If validation passes with no errors, you are ready to proceed with the plan. If you see any syntax or semantic errors, refer back to the validation exercise in the previous task for guidance on how to interpret and fix them.

Use terraform plan to preview the changes Terraform will make based on all the YAML files in your data/ directory. Since we have added network settings, wireless, switch, and appliance configurations, you should expect to see a significantly larger number of resources compared to the initial organization deployment.

  1. Run the command terraform plan

    Terminal window
    terraform plan
  2. Review the plan output. You should see multiple resources being created across different Meraki resource types — networks, wireless SSIDs, switch access policies, appliance VLANs, traffic shaping rules, and more.

    module.meraki.module.model.terraform_data.validation: Refreshing state... [id=a1e80286-4871-e625-bb70-9fe4c7a5d978]
    module.meraki.meraki_organization.organizations["EU/Meraki Learning Lab"]: Refreshing state... [id=686235993220591779]
    module.meraki.meraki_organization_login_security.organizations_login_security["EU/Meraki Learning Lab"]: Refreshing state... [id=686235993220591779]
    module.meraki.meraki_organization_admin.organizations_admins["EU/Meraki Learning Lab/Learning Lab user"]: Refreshing state... [id=686235993220883935]
    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
    + create
    Terraform will perform the following actions:
    # module.meraki.meraki_appliance_settings.networks_appliance_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"] will be created
    + resource "meraki_appliance_settings" "networks_appliance_settings" {
    + client_tracking_method = "MAC address"
    + deployment_mode = "routed"
    + id = (known after apply)
    + network_id = (known after apply)
    }
    # module.meraki.meraki_appliance_traffic_shaping.networks_appliance_traffic_shaping["EU/Meraki Learning Lab/Amsterdam-Network-1"] will be created
    + resource "meraki_appliance_traffic_shaping" "networks_appliance_traffic_shaping" {
    + global_bandwidth_limit_down = 9000
    + global_bandwidth_limit_up = 5000
    + id = (known after apply)
    + network_id = (known after apply)
    }
    # module.meraki.meraki_appliance_traffic_shaping_rules.networks_appliance_traffic_shaping_rules["EU/Meraki Learning Lab/Amsterdam-Network-1"] will be created
    + resource "meraki_appliance_traffic_shaping_rules" "networks_appliance_traffic_shaping_rules" {
    + default_rules_enabled = false
    + id = (known after apply)
    + network_id = (known after apply)
    + rules = [
    + {
    + definitions = [
    + {
    + type = "applicationCategory"
    + value = "meraki:layer7/category/24"
    },
    + {
    + type = "application"
    + value = "meraki:layer7/application/332"
    },
    ]
    + dscp_tag_value = 10
    + per_client_bandwidth_limit_down = 1000
    + per_client_bandwidth_limit_settings = "custom"
    + per_client_bandwidth_limit_up = 1000
    + priority = "high"
    },
    + {
    + definitions = [
    + {
    + type = "application"
    + value = "meraki:layer7/application/332"
    },
    ]
    + dscp_tag_value = 18
    + per_client_bandwidth_limit_settings = "ignore"
    + priority = "high"
    },
    ]
    }
    <output truncated>
    # module.meraki.meraki_wireless_ssid_traffic_shaping_rules.networks_wireless_ssids_traffic_shaping_rules["EU/Meraki Learning Lab/Amsterdam-Network-1/Corp"] will be created
    + resource "meraki_wireless_ssid_traffic_shaping_rules" "networks_wireless_ssids_traffic_shaping_rules" {
    + default_rules_enabled = true
    + id = (known after apply)
    + network_id = (known after apply)
    + number = "0"
    + traffic_shaping_enabled = true
    }
    Plan: 22 to add, 0 to change, 0 to destroy.
    ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
  3. Check the plan summary at the bottom of the output. It will show something similar to:

    Plan: 22 to add, 0 to change, 0 to destroy.

    Since this is a new deployment on top of the existing organization, all resources should be marked with + (create). There should be no changes or deletions if you have not modified the previously deployed organization configuration.

Once you have reviewed the plan and confirmed the changes match your intent, deploy the configuration using terraform apply.

  1. Run the apply command:

    Terminal window
    terraform apply

    Terraform will regenerate the plan and prompt you for confirmation. Review the plan summary and enter yes to proceed.

    Do you want to perform these actions?
    Terraform will perform the actions described above.
    Only 'yes' will be accepted to approve.
    Enter a value: yes
  2. Wait for the deployment to complete. Terraform will create each resource and display its progress:

    module.meraki.meraki_network.organizations_networks["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_network.organizations_networks["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 2s [id=L_686235993220660247]
    module.meraki.meraki_network_settings.networks_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_network_snmp.networks_snmp["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_appliance_settings.networks_appliance_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_appliance_vlans_settings.networks_appliance_vlans_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_switch_mtu.networks_switch_mtu["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_wireless_settings.networks_wireless_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_network_syslog_servers.networks_syslog_servers["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_switch_routing_multicast.networks_switch_routing_multicast["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_switch_access_policy.networks_switch_access_policies["EU/Meraki Learning Lab/Amsterdam-Network-1/Wired Access Policy"]: Creating...
    module.meraki.meraki_wireless_ssid.networks_wireless_ssids["EU/Meraki Learning Lab/Amsterdam-Network-1/Corp"]: Creating...
    module.meraki.meraki_network_settings.networks_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 2s [id=L_686235993220660247]
    module.meraki.meraki_switch_settings.networks_switch_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_appliance_settings.networks_appliance_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 2s [id=L_686235993220660247]
    module.meraki.meraki_network_snmp.networks_snmp["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 3s [id=L_686235993220660247]
    module.meraki.meraki_appliance_vlans_settings.networks_appliance_vlans_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 3s [id=L_686235993220660247]
    module.meraki.meraki_appliance_vlan.networks_appliance_vlans["EU/Meraki Learning Lab/Amsterdam-Network-1/10"]: Creating...
    module.meraki.meraki_appliance_vlan.networks_appliance_vlans["EU/Meraki Learning Lab/Amsterdam-Network-1/20"]: Creating...
    module.meraki.meraki_appliance_vlan.networks_appliance_vlans["EU/Meraki Learning Lab/Amsterdam-Network-1/999"]: Creating...
    module.meraki.meraki_switch_mtu.networks_switch_mtu["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 4s [id=L_686235993220660247]
    module.meraki.meraki_wireless_settings.networks_wireless_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 4s [id=L_686235993220660247]
    module.meraki.meraki_network_syslog_servers.networks_syslog_servers["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 4s [id=L_686235993220660247]
    module.meraki.meraki_switch_routing_multicast.networks_switch_routing_multicast["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 5s [id=L_686235993220660247]
    module.meraki.meraki_switch_access_policy.networks_switch_access_policies["EU/Meraki Learning Lab/Amsterdam-Network-1/Wired Access Policy"]: Creation complete after 6s [id=1]
    module.meraki.meraki_wireless_ssid.networks_wireless_ssids["EU/Meraki Learning Lab/Amsterdam-Network-1/Corp"]: Creation complete after 6s [id=0]
    module.meraki.meraki_wireless_ssid_traffic_shaping_rules.networks_wireless_ssids_traffic_shaping_rules["EU/Meraki Learning Lab/Amsterdam-Network-1/Corp"]: Creating...
    module.meraki.meraki_wireless_ssid_l3_firewall_rules.networks_wireless_ssids_firewall_l3_firewall_rules["EU/Meraki Learning Lab/Amsterdam-Network-1/Corp"]: Creating...
    module.meraki.meraki_switch_settings.networks_switch_settings["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 5s [id=L_686235993220660247]
    module.meraki.meraki_appliance_vlan.networks_appliance_vlans["EU/Meraki Learning Lab/Amsterdam-Network-1/10"]: Creation complete after 4s [id=10]
    module.meraki.meraki_appliance_vlan.networks_appliance_vlans["EU/Meraki Learning Lab/Amsterdam-Network-1/20"]: Creation complete after 4s [id=20]
    module.meraki.meraki_appliance_vlan.networks_appliance_vlans["EU/Meraki Learning Lab/Amsterdam-Network-1/999"]: Creation complete after 5s [id=999]
    module.meraki.meraki_appliance_traffic_shaping.networks_appliance_traffic_shaping["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_appliance_vlan_dhcp.networks_appliance_vlans_dhcp["EU/Meraki Learning Lab/Amsterdam-Network-1/10"]: Creating...
    module.meraki.meraki_appliance_vlan_dhcp.networks_appliance_vlans_dhcp["EU/Meraki Learning Lab/Amsterdam-Network-1/999"]: Creating...
    module.meraki.meraki_appliance_vlan_dhcp.networks_appliance_vlans_dhcp["EU/Meraki Learning Lab/Amsterdam-Network-1/20"]: Creating...
    module.meraki.meraki_appliance_traffic_shaping_rules.networks_appliance_traffic_shaping_rules["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creating...
    module.meraki.meraki_wireless_ssid_traffic_shaping_rules.networks_wireless_ssids_traffic_shaping_rules["EU/Meraki Learning Lab/Amsterdam-Network-1/Corp"]: Creation complete after 2s [id=0]
    module.meraki.meraki_wireless_ssid_l3_firewall_rules.networks_wireless_ssids_firewall_l3_firewall_rules["EU/Meraki Learning Lab/Amsterdam-Network-1/Corp"]: Creation complete after 3s [id=0]
    module.meraki.meraki_appliance_traffic_shaping.networks_appliance_traffic_shaping["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 1s [id=L_686235993220660247]
    module.meraki.meraki_appliance_vlan_dhcp.networks_appliance_vlans_dhcp["EU/Meraki Learning Lab/Amsterdam-Network-1/999"]: Creation complete after 1s [id=999]
    module.meraki.meraki_appliance_vlan_dhcp.networks_appliance_vlans_dhcp["EU/Meraki Learning Lab/Amsterdam-Network-1/20"]: Creation complete after 2s [id=20]
    module.meraki.meraki_appliance_vlan_dhcp.networks_appliance_vlans_dhcp["EU/Meraki Learning Lab/Amsterdam-Network-1/10"]: Creation complete after 2s [id=10]
    module.meraki.meraki_appliance_traffic_shaping_rules.networks_appliance_traffic_shaping_rules["EU/Meraki Learning Lab/Amsterdam-Network-1"]: Creation complete after 3s [id=L_686235993220660247]
    Apply complete! Resources: 22 added, 0 changed, 0 destroyed.
  3. Once complete, you should see a summary similar to:

    Apply complete! Resources: 22 added, 0 changed, 0 destroyed.
  4. Navigate to your Meraki Dashboard and verify the deployed configuration:

    • The Amsterdam-Network-1 network should appear under your organization
    • The network should show appliance, switch, and wireless product types
    • Wireless SSID Corp should be configured with 802.1X RADIUS authentication
    • Switch access policy Wired Access Policy should be visible
    • Appliance VLANs (Data, Voice, Infra) should be created
    • Traffic shaping rules should be applied

    deployed_network_1

In this step you will perform a post-deployment testing to confirm every intent defined in Data Model YAML is actually configured in the Meraki dashboard.

  1. Run the following command to execute nac-test on your YAML.
Terminal window
cd /home/dcloud/network-as-code/meraki-as-code/
nac-test --templates tests/ --data data/ --output test_results

The nac-test command takes 3 mandatory arguments:

  • --templates tests/ — Path to the test templates directory. These are Robot Framework test files that define what to verify against the Meraki Dashboard.
  • --data data/ — Path to the YAML data model directory. nac-test reads the intended configuration from these files and compares it against the actual state in the dashboard.
  • --output test_results — Path where test results are written. This includes an HTML report (report.html), a detailed log (log.html), and machine-readable XML output.

You will see output as below

Initialized logging in test_results/pabot_results
Robot Framework remote server at 127.0.0.1:58083 started.
Storing .pabotsuitenames file
2026-03-13 05:15:27.956553 [PID:395879] [0] [ID:0] EXECUTING Test Results.Config.Networks List
2026-03-13 05:15:27.973779 [PID:395882] [1] [ID:1] EXECUTING Test Results.Config.Networks Wireless Ssid List
2026-03-13 05:15:27.974059 [PID:395880] [2] [ID:2] EXECUTING Test Results.Config.Organizations Admin
2026-03-13 05:15:29.385848 [PID:395880] [2] [ID:2] PASSED Test Results.Config.Organizations Admin in 1.4 seconds
2026-03-13 05:15:30.283504 [PID:395882] [1] [ID:1] PASSED Test Results.Config.Networks Wireless Ssid List in 2.3 seconds
2026-03-13 05:15:32.983471 [PID:395879] [0] [ID:0] still running Test Results.Config.Networks List after 5.0s
2026-03-13 05:15:39.800193 [PID:395879] [0] [ID:0] PASSED Test Results.Config.Networks List in 11.8 seconds
10 tests, 10 passed, 0 failed, 0 skipped.
===================================================
Output: /home/dcloud/network-as-code/meraki-as-code/test_results/output.xml
XUnit: /home/dcloud/network-as-code/meraki-as-code/test_results/xunit.xml
Log: /home/dcloud/network-as-code/meraki-as-code/test_results/log.html
Report: /home/dcloud/network-as-code/meraki-as-code/test_results/report.html
Finalizing Pabot execution...
Stopping PabotLib process
Robot Framework remote server at 127.0.0.1:58083 stopped.
PabotLib process stopped
Total testing: 15.50 seconds
Elapsed time: 12.53 seconds
Logs flushed successfully.
  1. Browse to the output folder test_results in your Code Server

    Right click on the log.html file and click download

    download_log

    Find the downloaded file in your laptop and open it with browser. You will see a HTML page as below.

    open_log

    You can click on any test to drill down and look in to the details of the tested parameters

    drilldown_log

    If all the tests are green, it confirms that intent in our Data Model matches with the configuration in Meraki Dashboard.