はじめに
初めまして、Cisco 土谷と申します。
この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2022 (2枚目) の 25 日目として投稿しています!!
本日は最終日になりますね
面白い記事や有益な記事が数多くありますので、興味ある方はぜひご覧ください!
本記事ではCisco DNA Centerで管理しているデバイスのConfigをAPIでダウンロードする方法をご紹介いたします。
CUI操作なし・コードを一切書かず、Postmanを使って実施できますので興味のある方はぜひご覧ください!
この記事は以下の人にオススメです!
Cisco DNA CenterのAPIを触ってみたい方
Cisco DNA Centerで管理している機器のconfigをダウンロードしたい方
本題に入る前に
まず最初に「なぜAPIを使ってConfigをダウンロードする必要があるのか?」について、触れておきたいと思います。
Cisco DNA CenterではGUI上でデバイスのConfigを確認したり、Configをエクスポートできる機能が用意されております。
以下の図は、Config表示機能の画面です。
ご覧の通り、Configの一部(パスワードや証明書情報など)がマスキングされている点、お気づきかと思います。
また、右上の「CUI出力のエクスポート」からConfigをダウンロードすることができます。
ただし、以下のようにダウンロードしたConfigも一部マスキングされております。
このようにCisco DNA CenterのGUIからでは、Configの一部がマスキングされてしまいます。
Configの利用用途次第では「マスキングされていないConfigを取得したい!」という方も、いらっしゃるのではないでしょうか?
APIを使うことで、マスキングされていないConfigをダウンロードできますので、本記事でご紹介できればと思います。
検証環境のご紹介 (DevNet Sandbox)
今回はみなさまも利用可能なDevNet Sandbox環境を使って、進めていきます。
DevNet Sandboxとは「Ciscoが無償提供しているAPIを試すことができる検証環境」です。
DevNet Sandbox URL:https://developer.cisco.com/site/sandbox/
Cisco DNA Centerの実機が手元になくても、APIを試すことができる素敵な環境です。
Cisco DNA Center以外の製品もございますので、ご興味のある方はぜひ利用してみて下さい!
DevNet Sandboxを使うには、DevNetのアカウントが必要です。
アカウントをお持ちでない方は「DevNetのアカウントを作成しよう」をご参照ください。
DevNet Sandboxへアクセス
それでは、DevNet Sandboxへアクセスし、使用するSandboxを見てみましょう!
まずは、DevNet Sandboxへアクセスし、「SIGN UP FREE」をクリックします。
以下のように、ログインページへ遷移しますので、DevNetのアカウントでログインします。
ログイン後、以下のような画面になります。
「Get started with Sandbox」をクリックしましょう。
以下のように、ラボカタログの一覧が表示されます。
今回は予約なしで利用できる「Cisco DNA Center AO 2.2.3.4」をクリックし、進めたいと思います。
ラボの概要や接続方法の確認
「Cisco DNA Center AO 2.2.3.4」をクリックすると、以下のようなラボの詳細画面へ遷移いたします。
この画面では左側にラボの概要や接続方法、右側にはラボの構成情報が表示されます。
水色枠の部分にはCisco DNA Centerへログインする時に使用するIDやパスワードが記載されております。(本記事上ではマスキングしております。)
DevNet Sandboxの説明は以上です。
ここからが本題ですね!
今回はDevNet Sandbox環境(Cisco DNA Center AO 2.2.3.4)を使って、spine1のConfigをAPIでダウンロードする方法をご紹介いたします。
APIを使ってConfigをダウンロードしてみよう!
まず最初に、全体の流れをご紹介いたします。
APIを使ってConfigをダウンロードするには、以下の5つの作業が必要です。
トークンを取得する
デバイスのIDを取得する
Configをエクスポートする
ダウンロードURLを取得する
ConfigファイルをローカルPCへダウンロードする
それでは1つずつ見ていきましょう!
トークンを取得する
まず最初に以下のAPIを使って、トークンを取得します。
POST https://sandboxdnac.cisco.com/dna/system/api/v1/auth/token
Postmanを起動し、リクエストメソッドは「POST」、URLは上記URLを指定します。
入力が完了したら、「Send」をクリックします。
以下の通り、トークンに関するレスポンスが返ってきます。
このトークンを使ってAPIを実行していきます。
デバイスのIDを取得する
次に以下のAPIを使って、Cisco DNA Centerで管理しているデバイス情報を取得します。
GET https://sandboxdnac.cisco.com/dna/intent/api/v1/network-device
Postmanにてリクエストメソッドは「GET」、URLは上記URLを指定します。
入力が完了したら、「Send」をクリックします。
以下の通り、デバイス情報に関するレスポンスが返ってきます。
ここで対象デバイスのid(デバイスID)をコピーします。
今回はspine1(Catalyst 9300 Switch)のConfigをダウンロードしたいので、idは「f16955ae-c349-47e9-8e8f-9b62104ab604」です。
このidの値は次のAPIで使いますので、コピーしておきましょう!
Configをエクスポートする
続いて、以下のAPIを使いConfigのエクスポートを実行します。
POST https://sandboxdnac.cisco.com/dna/intent/api/v1/network-device-archive/cleartext
このAPIでは、デバイスIDとパスワードをBody欄に入力する必要があります。
フォーマットはCisco DNA CenterのGUIで確認可能です。
それでは、Cisco DNA Centerにてフォーマットを確認してみましょう!
Cisco DNA Center( https://sandboxdnac.cisco.com )へログインし、メニューアイコンから「プラットフォーム > 開発者用ツールキット」の順でクリックします。
開発者用ツールキットの画面が表示されたら、以下のように右上の検索ボックス上で「Archive」で検索し、「Export Device configurations」をクリックしましょう。
「MODEL SCHEMAS」欄に、フォーマットが表示されますので、コピーしましょう。
フォーマットは以下の通りです。
{
"deviceId": [
"string"
],
"password": "string"
}
Cisco DNA Centerでの作業はここまでです。
次にPostmanにてリクエストメソッドは「Post」、URLは以下のURLを指定します。
POST https://sandboxdnac.cisco.com/dna/intent/api/v1/network-device-archive/cleartext
また、先程コピーしたフォーマットをBody欄へコピーします。
以下の通り、deviceIdのstring欄には1つ前で取得したデバイスのid(f16955ae-c349-47e9-8e8f-9b62104ab604)を入力し、passwordのstring欄には任意のパスワードを入力します。
入力が完了したら、「Send」をクリックします。
※今回はTest0001!というパスワードを使っています。
ここで設定したパスワードを使って各種ConfigファイルがZIP圧縮されますので、解凍時にこのパスワードが必要になります。
以下の通り、タスク情報に関するレスポンスが返ってきます。
taskIdは次のAPIで使うので、taskId(254eec0d-e620-47dd-a41e-1158fae52199)をコピーします。
ダウンロードURLを取得する
続いて、先程エクスポートしたConfigファイルをダウンロードするには、ダウンロードURLを取得する必要がございます。
以下のAPIを使って、先程実行したConfigエクスポートのタスク内容を確認いたします。
GET https://sandboxdnac.cisco.com/dna/intent/api/v1/task/{taskId}
Postmanにてリクエストメソッドは「GET」、URLは上記URLを指定します。
{taskId}箇所には、先程コピーしたtaskId(254eec0d-e620-47dd-a41e-1158fae52199)をコピーし、「Send」をクリックします。
以下の通り、タスク(詳細)に関するレスポンスが返ってきます。
additionalStatusURLはConfigファイルをダウンロードする時に使うURLです。
additionalStatusURLは次のAPIで使うので、additionalStatusURL(/api/v1/file/ccce0264-5e39-4b4e-8c7d-b90f4ca1906d)をコピーします。
ConfigファイルをローカルPCへダウンロードする
最後に以下のAPIを使って、Configファイルをダウンロードします。
GET https://sandboxdnac.cisco.com/dna/intent/api/v1/file/{fileId}
Postmanにてリクエストメソッドは「GET」、URLは上記URLを指定します。
「/api/v1/file/{fileId}箇所」に先程コピーしたadditionalStatusURL(/api/v1/file/ccce0264-5e39-4b4e-8c7d-b90f4ca1906d)を貼り付け、「Send and Download」をクリックします。
Configファイルを開くと、パスワードが聞かれます。
先程指定したパスワード(今回はTest0001!)を入力します。
ご覧の通り、無事にConfigファイル(Running-config, Startup-config, vlan.dat)の取得ができました!
では、Configを開いてみましょう!
左側がCisco DNA CenterのGUIで取得したConfig、右側が本記事で紹介したAPIで取得したConfigです。
マスキングされていた部分も表示されていますね!
マスキングされていないConfigを取得されたい方は、ぜひお試しください!
【おまけ】 Configuration Archive機能
Cisco DNA Center 2.3.3以降では、外部サーバへConfigアーカイブできる機能が追加されております。
本機能はCisco DNA CenterのGUIで設定可能です!
Cisco DNA Centerはアップグレードして頂くことで、真の価値を感じて頂ける製品です!
本機能にご興味がある方は、Cisco DNA Centerのアップグレードもご検討されてみてはいかがでしょうか?
まとめ
今回はCUI操作なし・コードを書かずに、Configをダウンロードする方法をご紹介いたしました。
ご興味がある方はぜひお試しください!
また、DevNet Sandboxでは、Cisco DNA Center以外の製品も用意しております。
手軽にAPIを試せますので、こちらも是非ご活用ください!
免責事項
本サイトおよび対応するコメントにおいて表明される意見は、投稿者本人の個人的意見であり、シスコの意見ではありません。本サイトの内容は、情報の提供のみを目的として掲載されており、シスコや他の関係者による推奨や表明を目的としたものではありません。各利用者は、本Webサイトへの掲載により、投稿、リンクその他の方法でアップロードした全ての情報の内容に対して全責任を負い、本Web サイトの利用に関するあらゆる責任からシスコを免責することに同意したものとします。