This package makes migrating Cisco Catalyst switches to Meraki Dashboard much easier. #merakicat
This Python app can be run in Webex Teams Bot mode or in command-line mode. It can also be called from shell scripts for bulk-mode.
Below is the list of configurations the tool can currently translate:
switch:
port:
Once installed, you can print the entire index of the feature encyclopedia, or to print the index based on either supported and translatable items or both, enter:
cd src/merakicat
python mc_pedia [support] [translatable]
If you don't already have a Webex Teams account, go ahead and register for one. They are free.
You'll need to start by adding your Bot to the Webex Teams website.
Click Create a New App
Click Create a Bot.
Fill out all the details about your Bot. You'll need to set a name, username, icon (either upload one or choose a sample), and provide a description.
Click Add Bot.
On the Congratulations screen, make sure to copy the Bot's Access Token, you will need this in a second.
Python 3.11+ is recommended.
git clone https://github.com/ecoen66/merakicat
cd merakicat
pip install -r requirements_dev.txt
The easiest way to use this module is to set a few environment variables
Note: As an alternative, you may edit the variables in mc_user_info.py. Although more convenient, it is less secure.
# These exports are used for Webex bot mode:
export TEAMS_BOT_TOKEN=<your bot's token>
export TEAMS_BOT_EMAIL=<your bot's email>
export TEAMS_BOT_APP_NAME=<your bot's name>
export TEAMS_EMAILS=<a comma delimited list of email addresses the bot will respond to>
# These exports are required regardless of mode:
export IOS_USERNAME=<the ssh username for the Catalyst switches>
export IOS_PASSWORD=<the ssh password for the Catalyst switches>
export IOS_SECRET=<the CLI secret password for the Catalyst switches>
export IOS_PORT=<the ssh port number for the Catalyst switches - usually 22>
export MERAKI_API_KEY=<your meraki dashboard API key>
export MERAKI_ORG_NAME =<your meraki organization name>
In addition to these settings, various debugs and a choice of PDF vs. DOCX report format can be enabled in the mc_user_info.py file.
> Note: For PDF report generation, MS Word must be installed on the host with merakicat.
To run merakicat as a Bot, just start it without any parameters:
cd src/merakicat
python merakicat.py
Bot commands include the following:
Check a Catalyst switch config for both translatable and possible Meraki features:
check [host <FQDN or IP address> | file <filespec>] [with timing] [with details]
Check one or more Catalyst switch config files for both translatable and possible Meraki features:
check <drag-and-drop files> [with timing] [with details]
Check the configs of cloud monitored Catalyst switches for both translatable and possible Meraki features:
check network <Meraki network name> [with timing] [with details]
Register a Catalyst switch to the Meraki Dashboard:
register [host <FQDN or IP address>] [with timing]
Claim Catalyst switches to a Meraki Network:
claim [<Meraki serial numbers>] [to <Meraki network name>] [with timing]
Translate a Catalyst switch config from a file or host to claimed Meraki serial numbers:
translate [host <FQDN or IP address> | file <filespec>] [to <Meraki serial numbers>] [with timing]
Migrate a Catalyst switch to a Meraki switch - register, claim & translate:
migrate [host <FQDN or IP address>] [to <Meraki network name>] [with timing]
Create a demo report for all features currently in the feature encyclopedia:
demo report
To run merakicat from the command-line (or from a shell script), enter any of the following:
Check a Catalyst switch config for both translatable and possible Meraki features:
cd src/merakicat
python merakicat.py check host <FQDN or IP address> | file <filespec> [with timing] [with details]
Check the configs of cloud monitored Catalyst switches for both translatable and possible Meraki features:
cd src/merakicat
python merakicat.py check network <Meraki network name> [with timing] [with details]
Register a Catalyst switch or stack to the Meraki Dashboard:
cd src/merakicat
python merakicat.py register host <FQDN or IP address> [with timing]
Claim Catalyst switches to a Meraki Network:
cd src/merakicat
python merakicat.py claim <Meraki serial numbers> to <Meraki network name> [with timing]
Translate a Catalyst switch or stack config from a file or host to claimed Meraki serial numbers:
cd src/merakicat
python merakicat.py translate host <FQDN or IP address> | file <filespec> to <Meraki serial numbers> [with timing]
Migrate a Catalyst switch to a Meraki switch - register, claim & translate:
cd src/merakicat
python merakicat.py migrate host <FQDN or IP address> to <Meraki network name> [with timing]
Create a demo report for all features currently in the feature encyclopedia:
cd src/merakicat
python merakicat.py demo report
To run merakicat in bulk-mode, create a shell script to call merakicat in command line mode. Example scripts included in the repo are:
Generate Check config reports for a list of Catalyst switches, 20 switches at a time, until the entire list is exhausted. The list is provided in an input file, one hostname/fqdn/IP address per line:
cd src/merakicat
bulk_check.sh <input file>
Migrate a list of Catalyst switches to a Meraki network, 20 switches at a time, until the entire list is exhausted. The list is provided in an input file, one hostname/fqdn/IP address per line:
cd src/merakicat
bulk_migrate.sh <input file> <Meraki network name>
If you found this repo to be useful, please consider donating to Life Decisions, Rockford, IL through a purchase from the Merakicat store.
This project is heavily based on the work of others:
Catalyst_to_Meraki_Migration_Tool
by Fady Sharobeem.
Catalyst_2_Meraki_Config_Checker
by Fady Sharobeem.
The bot functionality is based on the webex_bot
project by Finbarr Brady.
Owner
Contributors
Categories
Products
MerakiCatalyst SwitchesProgramming Languages
PythonLicense
Code Exchange Community
Get help, share code, and collaborate with other developers in the Code Exchange community.View Community