MerakiをCLIから扱うためのMeraki-CLIと呼ばれるツールがあります。
Meraki Dashboard APIを利用したサード パーティーのツールで、REST APIによる操作をCLIでWrapper化したような使い勝手になります。
Meraki-CLIの利用にあたっては、Python環境の構築と、コマンド補完で利便性を高めるための python3-argcomplete
パッケージの導入が必要だったので手順を整理しました。
Meraki-CLIに関して
使い方は下記のドキュメントに体系的に整理されています。
GitHubでソース コードが公開されています。
Meraki-CLIで対応しきれていない機能も出てくる可能性があります。 そのため本番環境で利用するならば、必要に応じてソース コードの改修による機能追加の検討や、未対応機能は手動対応による実施を前提に置くか等を導入前に決めた方が好ましいと思われます。
検証時の環境情報
CML-P (Cisco Modeling Labs - Personal)上のUbuntu 22.04.1 LTSで実行環境を構築しました。
Meraki-CLIは Version 1.5.0 で検証を行っております。
(.venv) cisco@ubuntu-0:~/meraki-cli$ meraki --version Meraki-CLI v1.5.0 | Meraki API Library v1.36.0 | Python 3.10.12 (.venv) cisco@ubuntu-0:~/meraki-cli$
設定手順
補足
python3-argcomplete
パッケージのインストールは任意です。
筆者が触った限りではMeraki-CLIのコマンド補完時に処理がモッサリするため、何度も何度も補完に頼るような使い方だとストレスが溜まるように感じました。
それもあって筆者の場合は、何度も使うようなコマンドは書き留めるようにして、補完の利用を最小限になるようにしています。
事前設定
apt
コマンドの利用時にneedrestart
によって対話形式のメッセージが表示される場合があります。検証用途でのコマンドの流し込みに向かないため、非対話になるように事前設定を行います。apt
コマンドの利用時にneedrestart
によって、必要なサービスは自動的 (automatically)に再起動されるようにします。
sudo sh -c "cat << 'EOF' > /etc/needrestart/conf.d/99_restart.conf # Restart mode: (l)ist only, (i)nteractive or (a)utomatically. # # ATTENTION: If needrestart is configured to run in interactive mode but is run # non-interactive (i.e. unattended-upgrades) it will fallback to list only mode. # \$nrconf{restart} = 'a'; EOF"
cat /etc/needrestart/conf.d/99_restart.conf
Meraki-CLIのコマンド補完の設定 (任意)
sudo apt -y update sudo apt -y install python3-argcomplete
- 先ほどインストールした
python3-argcomplete
をアクティベートします。/etc/bash_completion.d/python-argcomplete.sh
にスクリプトがインストールされます。
sudo activate-global-python-argcomplete3
- Meraki-CLI向けのコマンド補完が行われるように
~/.bash_profile
に補完設定を読み込みためのコマンドを書き込みます。(リダイレクトによる追記のため、コマンドを何度も実行しないように注意してください。)
echo 'eval "$(register-python-argcomplete3 meraki)"' >> ~/.bash_profile cat ~/.bash_profile eval "$(register-python-argcomplete3 meraki)"
Meraki-CLIの実行環境
pwd mkdir ./meraki-cli/ cd ./meraki-cli/ pwd
sudo apt -y install python3-venv python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip
pip3 install meraki-cli
- Meraki-CLIの利用にあたってMeraki Dashboard API Keyを変数に指定します。
YOUR_API_KEY
の部分は自身のAPI Keyに書き換えてください。
API Keyがbashの実行履歴 (bash_history
)に残らないように、行頭にスペースを入れています。echo $HISTCONTROL
がignorespace
もしくはignoreboth
になっている想定の使い方です。
export MERAKI_DASHBOARD_API_KEY='YOUR_API_KEY'
meraki organizations getOrganizations
- 先のコマンドの実行が成功すると下記のように表示されます。
(.venv) cisco@ubuntu-0:~/meraki-cli$ meraki organizations getOrganizations ┏━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ id ┃ name ┃ url ┃ ┡━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ 1234567890******** │ Org_Test │ https://n480.meraki.com/o/********/manage/o… │ └────────────────────┴──────────┴──────────────────────────────────────────────┘ (.venv) cisco@ubuntu-0:~/meraki-cli$