Skip to content

Lab Summary

Congratulations — you have completed the Meraki as Code learning lab. Here is a brief recap of what you accomplished across the 11 tasks.

Task 1 — Concepts and Tools introduced the core toolset: YAML as the configuration language, Terraform as the automation engine, the Meraki provider and NaC modules, and validation tools like nac-validate and nac-test.

Task 2 — Environment Setup walked through cloning the example repository, setting up a Python virtual environment, configuring environment variables for API credentials, and preparing the workspace for hands-on exercises.

Task 3 — Data Model explained how the YAML data model serves as the source of truth for your network configuration, how Terraform maps it to Meraki resources, and how schemas and validation rules enforce correctness before deployment.

Task 4 — First Deployment covered your first terraform init, terraform plan, and terraform apply cycle — creating a Meraki organization and verifying it in the Dashboard. You learned to read plan output symbols (+, ~, -) and understand what Terraform intends to do before it does it.

Task 5 — Advanced Configuration expanded the deployment with wireless SSIDs, switch port settings, and appliance firewall rules. You used nac-validate to check correctness and nac-test to verify the live state after each apply.

Task 6 — DIY Challenge tested your understanding by asking you to build network configurations for new sites independently, applying everything learned in the previous tasks.

Task 7 — Playground provided open-ended activities to experiment with the data model — modifying settings, adding networks, and exploring the schema documentation on your own.

Task 8 — Removal demonstrated how Terraform handles resource deletion: remove the YAML, plan, apply, and verify that the Dashboard reflects the intended state — including a clean organization.

Task 9 — Templates introduced a modular approach using reusable templates and per-site variables. You rendered templates into a merged configuration, validated and deployed it, and compared the template workflow to the explicit data model approach.

Task 10 — Pipeline Overview explained the theory behind CI/CD for network operations: why automation pipelines matter, how the multi-stage pipeline (prepare, validate, plan, deploy, test, notify) works, and what each stage contributes to a safe, repeatable deployment workflow.

Task 11 — Pipeline Hands-on brought it all together by setting up a GitLab project, configuring access tokens and CI/CD variables, enabling the Terraform HTTP backend, and deploying a full network configuration through an automated pipeline — with validation, testing, and stage-by-stage output review.

You started with a YAML file and ended with a fully automated, version-controlled, and tested deployment pipeline. Along the way you covered:

  • Declarative configuration — defining what the network should look like, not how to configure it
  • Validation before deployment — catching errors in the data model before any changes reach the network
  • Automated testing — verifying the live state matches the declared intent after every deployment
  • Idempotency — confirming that re-applying the same configuration produces no unintended changes
  • Templates and variables — scaling configuration across multiple sites with consistency and minimal repetition
  • CI/CD pipelines — automating the entire workflow so that every commit is validated, planned, deployed, and tested without manual intervention

These same principles apply whether you are managing 1 network or 1,000.