Skip to content
This repository has been archived by the owner on Jun 10, 2024. It is now read-only.

Network: Meraki

Dag Wieers edited this page Sep 1, 2018 · 69 revisions

Github meraki issues Github meraki PRs

Ansible modules for managing Meraki equipment

News

Community

Feedback

I am very much looking for feedback on how you use, or would use, these modules. Please submit issues on the Ansible New Issues page if you would like to see functionality changed or enhanced.

Open Issues

  • Modules do not respect Meraki’s rate limiting of 5 requests per second, per organization

API Issues

  • Using HTTP (no SSL) turns PUT/POST/DELETE in to GET requests (on purpose?)
  • API does not enforce Organizations to have unique names
  • API idempotency issues
    • Requires POST for creating and PUT (id) for updating
    • DELETE is not idempotent, only works when exists
  • VLANs are not enabled by default on a network and there is no way to enable them via the API. A network must have VLANs enabled via the Dashboard web interface.

Public Modules

Action Plan

2.7

  • Configuration templates

    • Query configuration templates - In development
    • Remove configuration template - In development
  • Networks

    • Bind a network to a template - In development
    • Unbind a network from a template - In development
  • REST interface #36701

  • Group policies

    • Query group policies for a network - In development
  • Devices

    • List devices in a network - In development
    • Return a single device - In development
    • Return an array containing the uplink information for a device - In development
    • Update the attributes of a device - In development
    • Claim a device into a network - In development
    • Remove a single device - In development
    • List LLDP and CDP information for a device - In development
  • VLAN

    • List VLANs in network - In development
    • Return a single VLAN - In development
    • Create a new VLAN - In development
    • Update a VLAN - In development
    • Delete a VLAN - In development
  • Switchport

    • List all switchports on a switch - In development
    • List one switchport on a switch - In development
    • Update a switchport configuration - In development
  • SSID

    • List all SSIDs - In development
    • List single SSID - In development
    • Update SSID - In development
  • Static Route

    • List all static routes - In development
    • List one static route - In development
    • Create static route - In development
    • Update static route - In development
    • Delete static route - In development
  • MR L3 Firewall

    • List all firewall rules - In development
    • Set firewall rules - In development
  • MX L3 Firewall

    • List all firewall rules - In development
    • Set firewall rules - In development

Future

  • Develop Meraki connection plugin (uncertain)
  • Create modules for the following categories:
    • Clients
    • MX VPN firewall
    • Network VPN settings

Integration Tests

Each Meraki module includes a suite of integration tests which help validate module functionality. Running the test is easy once you do a couple of setup steps.

  1. Setup your development environment as described at the Ansible Module Development web page. If you've already done this, run $ . venv/bin/activate && . hacking/env-setup from the root directory of the Ansible code base.
  2. Rename the template file located at /test/integration/inventory.networking.template to /test/integration/inventory.networking.
  3. Edit the inventory.networking file with the following variables:
  • auth_key - Authentication key as provided by the Meraki Dashboard. Required for all modules.
  • test_org_name - Name of organization which your tests will be conducted in. Required for most modules.
  • test_org_id - ID number of the organization which your tests will be conducted in. Required for some modules. Use the meraki_organization module to find the ID for the organization as this information isn't available in the dashboard.
  • test_net_name - Name of the network which your tests will be conducted in. Required for most modules.
  • test_net_id - ID number of the network which your tests will be conducted in. Required for some modules. Use the meraki_network module to find the ID of the network as this information isn't available in the dashboard.

(ARchived) Working groups

Working groups are now in the Ansible forum

Ansible project:
Community, Contributor Experience, Docs, News, Outreach, RelEng, Testing

Cloud:
AWS, Azure, CloudStack, Container, DigitalOcean, Docker, hcloud, Kubernetes, Linode, OpenStack, oVirt, Virt, VMware

Networking:
ACI, AVI, F5, Meraki, Network, NXOS

Ansible Developer Tools:
Ansible-developer-tools

Software:
Crypto, Foreman, GDrive, GitLab, Grafana, IPA, JBoss, MongoDB, MySQL, PostgreSQL, RabbitMQ, Zabbix

System:
AIX, BSD, HP-UX, macOS, Remote Management, Solaris, Windows

Security:
Security-Automation, Lockdown

Tooling:
AWX, Galaxy, Molecule

Communities

Modules:
unarchive, xml

Plugins:
httpapi

Wiki

Roles, Communication, Reviewing, Checklist, TODO

Clone this wiki locally