REST API を使用した Cisco APIC の設定

REST API を使用した APIC クラスタの拡大

クラスタは、実際のサイズを目標サイズに合わせます。目標サイズが実際のサイズよりも大きい場合、クラスタ サイズが拡大します。

手順


ステップ 1

  APIC クラスタ サイズを拡大するために目標のクラスタ サイズを設定します。

例:

POST
https://<IP address>/api/node/mo/uni/controller.xml
<infraClusterPol name='default' size=3/>

ステップ 2

クラスタに追加する APIC コントローラを物理的に接続します。


REST API を使用した APIC クラスターの縮小

コントローラを削除してクラスター サイズを縮小するには、次の手順を使用します。クラスター サイズの縮小の詳細については、 Cisco APIC クラスターの縮小を参照してください。


(注)  


Cisco APIC リリース 6.0(2) 以降、デコミッション操作を強制できるようにするために、API コマンドに 2 つの追加プロパティが追加されました。新しいオブジェクト プロパティは次のとおりです。
  • infraClusterPol:shrink
    • false:(デフォルト)ターゲット クラスター サイズ(infraClusterPol:size)が現在の運用クラスター サイズより小さい場合、以前のリリースと同様に、削除する APIC を手動でデコミッションする必要があります。

    • true:ターゲット クラスター サイズが現在の運用クラスター サイズよりも小さい場合、クラスタ縮小デコミッションがトリガーされます。削除される APIC については、コントローラ ID 番号が最も大きい APIC から自動的にデコミッションされます。

  • infraWiNode:force
    • falsefalse:(デフォルト)クラスターが異常な場合、またはアップグレード状態である場合には、デコミッションが適切でない可能性があるため、それ以外の場合にのみデコミッションを続行します。

    • true:クラスターの状態に関係なく、デコミッションを続行します。


次に、クラスターを 3 つの APIC コントローラから 1 つのコントローラに縮小する例を示します。ターゲット サイズを 1 にするには、APIC3 と APIC2 をこの順序でデコミッションする必要があります。

手順


ステップ 1

クラスターのサイズを縮小するため、目標の APIC クラスター サイズを設定します。

クラスター サイズが shrink='true'で縮小される場合、削除される APIC は自動的にデコミッションされます。それ以外の場合は、手動でデコミッションする必要があります。

例:

Cisco APIC リリース 6.0(1) 以前:

POST
https://<IP address>/api/node/mo/uni/controller.xml
<infraClusterPol name='default' size=1 />

次の手順に示すように、削除する APIC を手動でデコミッションする必要があります。

例:

Cisco APIC リリース 6.0(2) 以降で「shrink」プロパティを使用する場合:

POST
https://<IP address>/api/node/mo/uni/controller.xml
<infraClusterPol name='default' size=1 shrink='true' />

  shrink='true'の場合、以下の手順をスキップできます。削除する APIC は自動的にデコミッションされます。

POST
https://<IP address>/api/node/mo/uni/controller.xml
<infraClusterPol name='default' size=1 shrink='false' />

  shrink='false'の場合、次の手順に示すように、削除する APIC を手動でデコミッションする必要があります。

ステップ 2

デコミッション APIC  APIC上の 3 で、クラスター縮小の場合は 1。

例:

Cisco APIC リリース 6.0(1) 以前:

POST
https://<IP address>/api/node/mo/topology/pod-1/node-1/av.xml
<infraWiNode id=3 adminSt='out-of-service'/>

デコミッションは、クラスターが正常な状態にある場合にのみ続行されます。

例:

Cisco APIC リリース 6.0(2) 以降で「force」プロパティを使用する場合:

POST
https://<IP address>/api/node/mo/topology/pod-1/node-1/av.xml
<infraWiNode id=3 adminSt='out-of-service' force='true' />

  force = 'true'の場合、クラスターの状態に関係なく、デコミッションを続行します。

ステップ 3

デコミッション APIC  APIC上の 2 で、クラスター縮小の場合は 1。

例:

Cisco APIC リリース 6.0(1) 以前:

POST
https://<IP address>/api/node/mo/topology/pod-1/node-1/av.xml
<infraWiNode id=2 adminSt='out-of-service'/>

デコミッションは、クラスターが正常な状態にある場合にのみ続行されます。

例:

Cisco APIC リリース 6.0(2) 以降で「force」プロパティを使用する場合:

POST
https://<IP address>/api/node/mo/topology/pod-1/node-1/av.xml
<infraWiNode id=2 adminSt='out-of-service' force='false' />

  force = 'false'の場合、デコミッションは、クラスターが正常な状態にある場合にのみ続行されます。


稼動クラスターのサイズが縮小するのは、最後のアプライアンスが解放されたときで、管理サイズを変更したときではありません。各コントローラを解放した後、そのコントローラの動作状態が未登録になり、すでにクラスター内で稼動していないことを確認します。


(注)  


デコミッションされた APIC コントローラがファブリックからすぐに削除されない場合、再検出される可能性があり、問題が発生する可能性があります。この場合、コントローラを削除するには、   APIC クラスター サイズの縮小 の手順に従ってください。


  APIC クラスター サイズの縮小

  Cisco Application Policy Infrastructure ControllerAPIC)クラスター サイズを縮小し、クラスターから削除された Cisco APICデコミッションするには、以下のガイドラインに従ってください。


(注)  


正しいプロセスに従って、 Cisco APICのデコミッションと電源オフを行わなかった場合、縮小したクラスターで予期しない結果が生じる可能性があります。認識されない Cisco APICをファブリックに接続したままにしてはなりません。


  • クラスター サイズを小さくすると、残りの Cisco APICの負荷が増大します。 Cisco APIC サイズの縮小は、クラスターの同期がファブリックのワークロードの要求に影響しないときに予定します。

  • クラスター内の 1 つ以上の Cisco APICのヘルス ステータスが「完全に適合」でない場合は、先に進む前にその状況を修復してください。

  • クラスターの目標サイズを新たな低い値に減らします。たとえば、既存のクラスター サイズが 6 で、3 台のコントローラを削除する場合は、クラスターの目標サイズを 3 に減らします。

  • 既存のクラスター内でコントローラ識別子の番号が最大のものから、 APIC を 1 台ずつ、解放、電源オフ、接続解除し、クラスターが新規の小さい目標サイズになるまで行います。

    各コントローラを解放および削除するごとに、 Cisco APIC はクラスターを同期します。


    (注)  


    クラスターから Cisco APIC をデコミッションした後に、直ちに電源をオフにし、再発見を予防するためにファブリックから切断します。サービスを回復する前に、全消去を実行して工場出荷時の状態にリセットします。

    切断が遅延し、デコミッションされたコントローラが再検出された場合は、次の手順に従って削除します:

    1.   Cisco APIC の電源を切り、ファブリックから切断します。

    2. [未承認コントローラ(Unauthorized Controllers)] のリストで、コントローラを拒否します。

    3. GUI からコントローラを消去します。


  • 既存の Cisco APIC が使用できなくなると、クラスターの同期が停止します。クラスターの同期を進める前に、この問題を解決します。

  • コントローラの削除の際に Cisco APIC が同期すべきデータの量により、各コントローラの解放とクラスターの同期を完了するために要する時間は、コントローラごとに 10 分以上になる可能性があります。


(注)  


必要なデコミッション手順全体を完了し、 Cisco APIC がクラスタの同期を完了するまで、クラスタに追加の変更を加えないでください。


REST API を使用してアクティブ APIC とスタンバイ APIC を切り替える

REST API を使用してアクティブな APIC とスタンバイ APIC を切り替えるには、この手順を使用します。

手順


アクティブ APIC とスタンバイ APIC を切り替えます。

URL for POST: https://ip address/api/node/mo/topology/pod-initiator_pod_id/node-initiator_id/av.xml
Body: <infraWiNode id>outgoing_apic_id targetMbSn=backup-serial-number/>
where initiator_id = id of an active APIC other than the APIC being replaced.
pod-initiator_pod_id = pod ID of the active APIC
backup-serial-number = serial number of standby APIC

例:

https://ip address/api/node/mo/topology/pod-1/node-1/av.xml
<infraWiNode id=2 targetMbSn=FCH1750V00Q/>

REST API を使用した未登録スイッチの登録

REST API を使用し、 [登録保留中のノード(Nodes Pending Registration)] タブ( [Fabric Membership(ファブリック メンバーシップ)] [作業(work)]ペイン)で、 スイッチを登録します。


(注)  


この手順は、「REST API を使用したディスカバリ前のスイッチの追加」と同じです。コードを適用すると、システムはノードが存在するかどうかを判断し、存在しない場合はそのノードを追加します。ノードが存在しない場合、システムにより登録されます。

手順


スイッチの説明を追加します。

例:

POST
https://<IP address>/api/policymgr/mo/uni.xml

<!-- /api/policymgr/mo/uni.xml -->
<polUni>
<ctrlrInst>
    <fabricNodeIdentPol>
        <fabricNodeIdentP  nodeType="tier-2-leaf" podId="1" serial="XXXXXXXXX"         name="tier-2-leaf-leaf1" nodeId="101"/>

    </fabricNodeIdentPol>
</ctrlrInst>
</polUni>


REST API を使用したディスカバリ前のスイッチの追加

1 台のデバイスを、REST API を使用して、 [登録保留中のノード(Nodes Pending Registration)] タブ( [ファブリック メンバーシップ(Fabric Membership)] [作業(work)]ペイン)で、 スイッチを登録します。


(注)  


この手順は、「REST API を使用した未登録スイッチの登録」と同じです。コードを適用すると、システムはノードが存在するかどうかを判断し、存在しない場合はそのノードを追加します。ノードが存在しない場合、システムにより登録されます。

手順


スイッチの説明を追加します。

例:

POST
https://<IP address>/api/policymgr/mo/uni.xml

<!-- /api/policymgr/mo/uni.xml -->
<polUni>
<ctrlrInst>
    <fabricNodeIdentPol>
        <fabricNodeIdentP  nodeType="tier-2-leaf" podId="1" serial="XXXXXXXXX"         name="tier-2-leaf1" nodeId="101"/>

    </fabricNodeIdentPol>
</ctrlrInst>
</polUni>


REST API を使用して、メンテナンス モードにスイッチを削除

REST API を使用して、メンテナンス モードにスイッチを削除するのにには、次の手順を使用します。

手順


メンテナンス モードにスイッチを削除します。

例:

POST
https://<IP address>/api/node/mo/uni/fabric/outofsvc.xml

<fabricOOServicePol      descr=""      dn=""      name="default"      nameAlias=""      ownerKey=""      ownerTag="">
  <fabricRsDecommissionNode        debug="yes"        dn=""        removeFromController="no"        tDn="topology/pod-1/node-102"/>
</fabricOOServicePol>


REST API を使用した操作モードへのスイッチの挿入

REST API を使用して操作モードにスイッチを挿入するには、次の手順を使用します。

手順


操作モードにスイッチを挿入します。

例:

POST
https://<IP address>/api/node/mo/uni/fabric/outofsvc.xml
 
<fabricOOServicePol      descr=""      dn=""      name="default"      nameAlias=""      ownerKey=""      ownerTag="">
  <fabricRsDecommissionNode        debug="yes"        dn=""        removeFromController="no"        tDn="topology/pod-1/node-102"        status="deleted"/>
</fabricOOServicePol>


REST API を使用したリモート ロケーションの設定

この手順では、REST API を使用してリモート ロケーションを作成する方法について説明します。

<fileRemotePath name="local" host=“host or ip" protocol=“ftp|scp|sftp" remotePath=“path to folder" userName=“uname" userPasswd=“pwd" />

REST API を使用したオンデマンド テクニカル サポート ファイルの送信

手順


ステップ 1

REST API を使用して次の例のような XML を POST 送信し、テクニカル サポート ファイルのリモート宛先を設定します。

例:

<fileRemotePath userName="" remotePort="22" remotePath="" protocol="sftp" name="ToSupport" host="192.168.200.2"  dn="uni/fabric/path-ToSupport" descr="">

<fileRsARemoteHostToEpg tDn="uni/tn-mgmt/mgmtp-default/oob-default"/>

</fileRemotePath>

ステップ 2

REST API を使用して次のような XML を POST 送信し、オンデマンドのテクニカル サポート ファイルを生成します。

例:


<dbgexpTechSupOnD upgradeLogs="no" startTime="unspecified" name="Tech_Support_9-20-16"   exportToController="no" endTime="unspecified" dn="uni/fabric/tsod-Tech_Support_9-20-16" descr=""   compression="gzip" category="forwarding" adminSt="untriggered">
    <dbgexpRsExportDest tDn="uni/fabric/path-ToSupport"/>
    <dbgexpRsTsSrc tDn="topology/pod-1/node-102/sys"/>
    <dbgexpRsTsSrc tDn="topology/pod-1/node-103/sys"/>
    <dbgexpRsTsSrc tDn="topology/pod-1/node-101/sys"/>
    <dbgexpRsData tDn="uni/fabric/tscont"/>
</dbgexpTechSupOnD>
<fabricFuncP>
    <fabricCtrlrPGrp name="default">
        <fabricRsApplTechSupOnDemand tnDbgexpTechSupOnDName=" Tech_Support_9-20-16"/>
    </fabricCtrlrPGrp>
</fabricFuncP>

REST API を使用したスイッチ インベントリの検索

このセクションでは、REST API を使用してスイッチのモデルとシリアル番号を見つける方法について説明します

手順


次のようにスイッチ インベントリを見つけます。

例:

GET https://192.0.20.123/api/node/mo/topology/pod-1.json?query-target=children&target-subtree-class=fabricNode 
次の応答が返されます:
response: 
  {
     "totalCount":"8",
     "imdata":
     [{
         "fabricNode":{
           "attributes":{
              "adSt":"on",
              "childAction":"",
              "delayedHeartbeat":"no",
              "dn":"topology/pod-1/node-103",
              "fabricSt":"active",
              "id":"103",
              "lcOwn":"local",
              "modTs":"2016-10-08T14:49:35.665+00:00",
              "model":"N9K-C9396PX",
              "monPolDn":"uni/fabric/monfab-default",
              "name":"leaf3",
              "nameAlias":"",
              "role":"leaf",
              "serial":"TEP-1-103",
              "status":"","uid":"0",
              "vendor":"Cisco Systems, Inc",
              "version":""}
             }
     },{
         "fabricNode":{
           "attributes":{
             "adSt":"on",
             "childAction":"",
             "delayedHeartbeat":"no",
             "dn":"topology/pod-1/node-105",
             "fabricSt":"active",
             "id":"105",
             "lcOwn":"local",
             "modTs":"2016-10-08T14:47:52.011+00:00",
             "model":"N9K-C9508",
             "monPolDn":"uni/fabric/monfab-default",
             "name":"spine2",
             "nameAlias":"",
             "role":"spine",
             "serial":"TEP-1-105","status":"",
             "uid":"0",
             "vendor":"Cisco Systems, Inc",
             "version":""
          ...
       [TRUNCATED]
          ...
     }