キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
945
閲覧回数
0
いいね!
0
コメント
Tomonobu Okada
Cisco Employee
Cisco Employee

 

問題の概要

ロードされていない NED  を使用しているデバイスがコンフィグ内に存在する場合、エラーが発生し NSO は起動できません。これは、例えば以下のようなシナリオで発生します。

 

1.環境 A では以下のデバイスが登録されていて、必要な NED もロードされています。

admin@ncs# show devices list
NAME ADDRESS DESCRIPTION NED ID ADMIN STATE
-------------------------------------------------------
device0 127.0.0.1 - cisco-ios unlocked
device1 127.0.0.1 - cisco-nx unlocked

admin@ncs# show packages | display-level 1
packages package cisco-ios
packages package cisco-nx


2.環境 A の CDB ファイルを新しい環境 B にコピーして NSO を起動します。ただし、環境 B に cisco-nx NED がロードされていない場合、以下のようなエラーが発生して NSO は起動できません。

#ncs
CDB: Upgrade failed: Upgrade transaction failed to validate: /ncs:devices/device{device1}/device-type/cli/ned-id is not configured

 

3.ただし、上記のエラーでは NED のタイプが不明なため、どの NED を環境 B にロードすれば良いのか分かりません。

 

本ドキュメントではこのような状況で問題の NED タイプを調べる方法について記載します。

 

devel.log で確認する

devel.log のログレベルを info 以上に設定すれば以下のようなログが出力されますので NED タイプを確認することができます。

<INFO> 10-Jan-2017::10:55:40.239 TOOKADA-M-4198 ncs[64608]: devel-cdb removing entries in deleted namespace http://tail-f.com/ned/cisco-nx
<INFO> 10-Jan-2017::10:55:40.239 TOOKADA-M-4198 ncs[64608]: devel-cdb removing entries in deleted namespace http://tail-f.com/ned/cisco-nx-id
<INFO> 10-Jan-2017::10:55:40.239 TOOKADA-M-4198 ncs[64608]: devel-cdb removing entries in deleted namespace http://tail-f.com/ned/cisco-nx/meta
<INFO> 10-Jan-2017::10:55:40.239 TOOKADA-M-4198 ncs[64608]: devel-cdb removing entries in deleted namespace http://tail-f.com/ned/cisco-nx/stats

 

devel.log の設定に関しては man ncs.conf を参照してください。 

 

ncs --cdb-debug-dump で確認する

ncs --cdb-debug-dump <CDB directory> コマンドで CDB の内容を確認することができますので、この出力から NED タイプを確認することができます。

#ncs --cdb-debug-dump ncs-cdb | grep device1 | grep ned-id
/ncs:devices/device{device1}/'device-type'/cli/'ned-id' = {44,{1850480213,1488855246}},
#ncs --cdb-debug-dump ncs-cdb | grep 1850480213
1850480213 http://tail-f.com/ned/cisco-nx-id
/ncs:devices/device{device1}/'device-type'/cli/'ned-id' = {44,{1850480213,1488855246}},

 

 

(Optional) 対象のデバイスを削除する

もし必要な NED が手元に無い場合、問題となっているデバイスの設定を CDB から削除することで NSO を起動することも可能です。

#ncs --start-phase0
#ncs_load -Fp -P "/ncs:devices/device/name[not (../device-type/netconf or ../device-type/*/ned-id!='')]" \
> | sed 's/<device>/<device nc:operation="delete" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">/' \
> | ncs_load -lmi
#ncs --start-phase1
#ncs --start-phase2
#ncs_cli -u admin -C

admin@ncs#
admin@ncs# show devices list
NAME ADDRESS DESCRIPTION NED ID ADMIN STATE
-------------------------------------------------------
device0 127.0.0.1 - cisco-ios unlocked

 

ncs_load コマンドについては man ncs_load を参照してください。上記の例では device-type が netconf 以外で ned-id が設定されていない device を検索して削除しています。

Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします