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

Network: Meraki

Kevin Breit edited this page Jun 18, 2018 · 69 revisions

Github meraki issues Github meraki PRs

Ansible modules for managing Meraki equipment

Community

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

Action Plan

2.6

  • Merged
    • Meraki module_utils #38773

    • Organizations #38773

      • List organizations the user has privileges on
      • Return an organization
      • Update an organization
      • Create a new organization
      • Create a new organization by cloning the addressed organization
    • SNMP #39882

      • Return the SNMP settings for an organization
      • Update the SNMP settings for an organization
    • Networks (basic manipulation of networks) #39782

      • List networks in an organization
      • Return a network
      • Update a network
      • Create a network
      • Delete a network
    • Administrators 39837

      • List the dashboard administrators in an organization
      • Create a new dashboard administrator
      • Update an administrator
      • Revoke all access for an administrator within an organization

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

Future

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

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