MerakiのPythonスクリプト開発環境をCML-Pで準備するためのメモ書きです。 手っ取り早さを意識して細かいチューニングは避けるようにしています。
構成
- CML-P上でのネットワーク構成は、NAT設定のExternal Connectorの配下にUbuntuを直接繋げる想定にしております。結線ポートの組み合わせはデフォルトのままにしております。UbuntuのIPアドレスはExternal ConnectorからDHCPで払い出されます。
ネットワークの個別設定が発生すると手間がかかるので、External Connectorはデフォルト値の
NAT
設定のままにします。NAT配下に実行環境のUbuntuが存在するようになっており、外部ネットワークからのSSHはできなくなります。そのため、CML-PのCONSOLEから操作を行う方針になります。
Ubuntuのログイン情報
CML-Pで予め用意されているUbuntuでは、デフォルトのログイン情報がUsernameとPasswordともに cisco
となります。
項目 | 値 |
---|---|
Username | cisco |
Password | cisco |
検証当時の環境情報
- Ubuntu 20.04.3 LTS
cisco@ubuntu:~$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.3 LTS (Focal Fossa)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 20.04.3 LTS" VERSION_ID="20.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal cisco@ubuntu:~$
- Python 3.8.10
cisco@ubuntu:~$ python3 --version Python 3.8.10 cisco@ubuntu:~$
設定作業
MerakiのPythonスクリプト開発環境をUbuntu上に用意していきます。
作業ディレクトリの作成
Pythonスクリプトを配置するディレクトリを作成します。 他の環境での構築時にコマンドが流用しやすいように、カレント ディレクトリの確認作業を意図的に入れています。
pwd mkdir ./work_dir/ cd ./work_dir/ pwd
Python Libraryの準備
Meraki Dashboard API Python Libraryを導入します。
CML-P上のNodeの場合は作業環境を占有できると思いますが、他の環境での構築時にコマンドが流用しやすいように venv
を用いるようにしています。
sudo apt -y update sudo apt -y install python3-venv python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install meraki
サンプル スクリプト
Merakiアカウントに紐付くOrganizationを取得する参照系のサンプル スクリプトです。 開発環境の動作確認用に適宜活用してください。
cat > ./get_meraki_orgs.py << EOF #!/usr/bin/env python3 import meraki import pprint dashboard = meraki.DashboardAPI(print_console=False, output_log=False) orgs = dashboard.organizations.getOrganizations() org_list = [] for org in orgs: org_list.append(org['name']) org_list.sort() pprint.pprint(org_list) EOF
サンプル スクリプトの内容がファイルに書き込めているか確認します。
cat ./get_meraki_orgs.py
サンプル スクリプトに実行権限を与えます。
chmod u+x ./get_meraki_orgs.py
サンプル スクリプトの実行にあたってMeraki Dashboard API Keyを変数に指定します。YOUR_API_KEY
の部分は自身のAPI Keyに書き換えてください。
export MERAKI_DASHBOARD_API_KEY='YOUR_API_KEY'
実行時のサンプル出力は下記のようになります。
(.venv) cisco@ubuntu:~/work_dir$ ./get_meraki_orgs.py ['Test_Org_0000', 'Test_Org_0001', 'Test_Org_0002', 'Test_Org_0003', 'Test_Org_0004', 'Test_Org_0005', 'Test_Org_0006', 'Test_Org_0007', 'Test_Org_0008', 'Test_Org_0009', 'Test_Org_0010'] (.venv) cisco@ubuntu:~/work_dir$