viptela モジュールを使い CLI から vManage を操作する
pip の viptela モジュールを使うと vManage へのアクセスを SDK や CLI、Ansible Module からアクセスすることが出来ます。 もちろん REST API を直接呼び出しても問題ありませんが、テンプレートの簡単な操作などは (いちいちコードを書くより) viptela モジュールを使う方が簡単です。
今回はこのモジュールを使ってテンプレートをエクスポート/インポートする方法をメモしておきます。 尚、今回の検証は vManage 20.6.1.1 と Ubuntu 21.04 環境で実施しました。
インストール¶
今回は venv 環境を作り、そこに viptela モジュールをインストールします。
1 2 3 4 5 |
|
但し、これだけでは six がインストールされず、エラーになってしまいました。 そこで viptela モジュールが依存しているモジュールをインストールしておきます。
1 2 |
|
ログイン方法¶
viptela モジュールを利用する際、vManage のアドレス、ユーザ名、パスワードの指定には下記、二通りの方法があります。
- vmanage コマンドの引数に指定する方法 (コマンド実行毎に指定が必要)
- 環境変数として定義しておく方法 (コマンド実行毎に指定は不要)
1. viptela コマンドの引数に指定する方法¶
vmanage コマンドの引数として指定するには以下のように実行します。 この方法では引数を利用する都合上、コマンドの実行毎に必要な情報を指定する必要があります。
1 2 3 4 5 |
|
2. 環境変数として定義しておく方法¶
ふたつ目の方法は必要な情報を予め環境変数として定義しておく、という方法です。
1 2 3 4 |
|
これで毎回、vmanage コマンドに各種情報を指定することなく、コマンドを実行出来ます。
1 |
|
尚、必要な環境変数が定義されておらず、パラメータが不足している場合は以下のようにエラーとなります。
1 2 3 4 5 |
|
以降、このメモでは予め必要情報が環境として定義されている前提とします。
show コマンドのヘルプを表示する¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
テンプレートを一覧表示する¶
1 2 3 4 5 6 7 8 9 10 |
|
テンプレートのエクスポート / インポート¶
全てのデバイステンプレートを .json ファイルにエクスポートする¶
全てのデバイステンプレートを .json ファイルにエクスポートするには下記を実行します。 ですが、実際にはフューチャーテンプレートもエクスポートされてしまいます…
1 |
|
特定のデバイステンプレートを .json ファイルにエクスポートする¶
特定のデバイステンプレートを .json ファイルにエクスポートするには下記を実行します。 この場合も実際にはフューチャーテンプレートもエクスポートされます。
1 |
|
全てのフューチャーテンプレートを .json ファイルにエクスポートする¶
全てのフューチャーテンプレートを .json ファイルにエクスポートするには下記を実行します。 この場合、デバイステンプレートはエクスポートされません。
1 |
|
特定のフューチャーテンプレートを .json ファイルにエクスポートする¶
特定のフューチャーテンプレートのみ、.json ファイルにエクスポートするには下記を実行します。 この場合、デバイステンプレートはエクスポートされません。
1 |
|
テンプレートをインポートする¶
デバイステンプレート / フューチャーテンプレートに関係無く、テンプレートをインポートする場合は以下のように実行します。 --type=device
や --type=feature
を指定することは出来ますが、(エラーにもなりませんが) 効果はありません。 --file
に指定されたテンプレートがデバイステンプレートであればデバイステンプレートとして、フューチャーテンプレートであればフューチャーテンプレートとして、両者が混在していれば両者とも、インポートされます。
1 |
|