Network: Meraki - ansible/community GitHub Wiki

GitHub meraki issues GitHub meraki PRs

THIS PAGE IS OLD and no longer maintained. For questions, please use the Ansible forum.

Ansible modules for managing Meraki equipment

News

  • Ansible 2.9 is likely to be a release with lots of changes to the Meraki modules. They may break your playbooks so keep an eye on this page for details on all changes.
  • Ansible v2.8 now ships with 14 Meraki modules !
  • Feedback is very much appreciated.

Community

Name GitHub (+ IRC) Role Affiliation
Kevin Breit kbreit / mrproper Lead

Add yourself to this list as a Reviewer (help review PRs) or as a Member (discuss issues/roadmap).

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. Do not use Ansible forking or async with Meraki until the rate limiting is supported.

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. Ansible 2.9 will have support for enabling and disabling VLANs via the API. In the meantime, a network must have VLANs enabled via the Dashboard web interface.

Public Modules

Action Plan

For details of Meraki related issues and pull request status, please see the Ansible Meraki Trello board.

2.9

Completed

  • Modules always return data. Make it actually idempotent.

In Progress

  • Convert returned data from camelCase to snake_case
  • Develop Meraki connection plugin (uncertain)
  • Enable/disable VLANs on network
  • Massive bugfix and code quality improvements
  • Add support for check mode
  • Create modules for the following categories:
    • MX layer 7 firewall rules
    • MX malware protection settings
    • Clients
    • MX VPN firewall
    • MX cellular firewall
    • Network VPN settings

Future

  • Support for forthcoming BulkAction API, if appropriate
  • Wireless health facts
  • BLE
    • Webhook HTTP configuration
    • Service access controls
  • Add support for new features
    • Network alert configuration

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.