Service Engine (SE) 1.1.2まではNetwork Insights (NIA/NIR)をService Engine上で利用するためにはFabric Internal Modeでの構成が必要でしたが、Service Engine 1.1.3以降では、Fabric Internal Modeのサポートを終了させて頂き、Fabric External ModeでNetwork Insightsもサポートするように構成が変更されました。
Fabric Internal Mode |
SEノードをLeaf配下に直接接続し、APICにインストールしたAppを通じて初期構成・管理を行うモード |
Fabric External Mode |
APICとは独立して初期構成・管理を行い、SEノードの配置や管理においてAPICへの依存のないモード |
これに伴い、Fabric Internal Modeとして、APICにインストールした "Cisco Application Service Engine" Appを通じたService Engineの構成は不要/不可となります。残念ながらService Engineを1.1.2以前から1.1.3へとアップグレードすることはできないため、一旦削除を実施した上での再構成が必要となります。また、Service Engineの構成時に自動的に構成されたTenantおよび各種パラメータについても不要となるため、削除が必要です。本ページでは、公式のガイドとなる Cisco Application Service Engine - Getting started guide の補足としての情報を提供させて頂きます。
なお、作業の実施については、"Chapter 8 Upgrading the Cisco Application Service Engine" を必ず参照してください。本ページの情報は補足情報であり、記載内容の利用は自己責任となります。
Fabric Internal Modeで構成された Service Engine 構成情報の削除方法 |
1. Network Insights アプリケーション(NIA, NAR)を既存 Service Engine 上で利用している場合には、Disable 操作で App を停止した上で、Appの削除を実施します。Disable 操作にはある程度時間がかかります。Disable が完了すると、Delete の実施が可能となります。
※ "Cisco Application Service Engine" Appの削除は、2.のステップ実施後に実施します。
2. ガイドでは、Service Engine に関連する構成情報の削除のためには、以下のURL(REST API)に接続するように記載されています。
https://<APIC IP>/appcenter/Cisco/ServiceEngine/api/wipeClean.json
Service Engineのために構成されたTenantおよび関連する構成情報は、特別なフラグが構成されているためadminアカウントであったとしてもGUIを通じた削除や変更はできないようになっています。これを修正するためには、APIを通じて上記パスでの操作が必要なのですが、Tokenの扱いなどが特殊(DEVCOOKIEヘッダにauth_tokenを渡す必要がある)なため、Postmanなどでの実行は難しい場合があります。以下のLinux向けPythonスクリプトは、この操作を実行するために利用できます。実行に際しては、適当な名前(se_initialize.py等)で保存した上で、以下のパラメータを変更して利用してください。Python 3.x で動作を確認しています。また、requests, json, xml, urllib3, argparseなど必要となるモジュールがありますので、適宜事前に準備してください。
- <APIC IP> : APICのIPアドレスもしくはDNS名 ※変更箇所が2箇所あります
- <Admin Password> : APIC adminアカウントのパスワード
import requests
import json
import xml
import urllib3
import argparse
urllib3.disable_warnings()
url = "https://<APIC IP>/api/aaaLogin.json"
payload = "{ \"aaaUser\" : { \"attributes\" : { \"name\" : \"admin\", \"pwd\" : \"<Admin Password>\" }}}\n"
post_response = requests.request("POST", url, data=payload, verify=False)
# get token from login response structure
auth = json.loads(post_response.text)
login_attributes = auth['imdata'][0]['aaaLogin']['attributes']
auth_token = login_attributes['token']
# create cookie array from token
cookies = {}
cookies['APIC-Cookie'] = auth_token
headers = {}
headers['DEVCOOKIE'] = auth_token
# Cluster Post
url1 = "https://<APIC IP>/appcenter/Cisco/ServiceEngine/api/wipeClean.json"
response = requests.request("POST", url1, json='', cookies=cookies, headers=headers,verify=False)
print "query is %s" %url1
print response.status_code
datas = response.text
print datas
→ python3 ./se_initialize.py 実行
3. Service Engine のためのTenantおよび構成情報が削除されたら、"Cisco Application Service Engine" App を Disable にした上で、Delete を実行します。
4. Service Engine 自体は1.1.3へのアップグレードも可能とされていますが、可能であれば Service Engine 自体も再インストールを実施することをお勧めします。CIMC等を通じてService Engine の ISO ファイルで起動することで、再インストールの実行が可能です。再インストール作業が完了すると、シャットダウンされた状態で再インストールは終了します。
5. Fabric External Mode として Service Engine を構成して Network Insights を利用する場合、Service EngineのData Network側インターフェイスから、mgmt テナントの inb VRFを通じてACI Fabricを構成するノードへの接続性があることが必要となります。この接続性を構成するために必要となるネットワークの設定については、Service Engineの構成とは別に、APICを通じて手動操作等で別途実施する必要があります。SE 1.1.3 + NIR 2.2.1 から、複数サイトを単一のNIRで扱うことが可能となったため、各ACI Fabricの mgmt テナント/ inb VRFとの接続については、inb VRFにL3outを構成して接続性を確保するネットワークとすることを推奨します。