cisco iOS XMLに「conf」を「show conf」?
質問
どちらもあります:
この(おそらくあまり賢明ではない)ブロックフォームのように、シスコの「ショーコンフ」の出力をいくつかの賢明なXMLに変換できる自由に利用可能なプログラム:
<aaa>
<new-model/>
<authentication>
<login>
<default>
<group id="tacacs+">enable</group>
</defult>
</login>
<!-- ...etc... -->
</authentication>
</aaa>
...または、そうでない場合、私が実装しようとすることができるXMLスキーマで? iOS構文を深く理解することなく、スキーマを構築することは難しいことが証明されています。
解決
Ciscoは、iOS構成のスキーマを提供しません。ただし、2つのオプションがあります。
CiscoのiOS XRには、組み込みのXMLサポートがあります。ルーターのモデルに応じて、アップグレードできる場合があります。これが機能するには、「XML-Agent」機能を有効にする必要があります。この機能は常に信頼できるとは限らないとは限らないことに注意してください(最後に、私たちがそれを使用することを妨げるいくつかのバグがあることを確認しました)が、それは多くの人々にとって十分であるはずです。
アップグレードがオプションではない場合、この恐ろしい醜いハック(それが私のせいです)があります。
http://code.google.com/p/text2xml/
かなりの数のコマンドをXMLに変換することをサポートするiOS(syntax/iOS.def)用の構文が付属していますが、決して完全ではありません。それでも、ここでは多数の非常に複雑な構成で機能し、新しいiOSコマンドをサポートするために拡張することは、単に(痛々しいほど読みにくく、理解しにくい)構文定義に新しいコマンドを追加する問題である必要があります。
結果のXMLをより安定したものに変換したいと思う必要がありますが、XML変換はiOS(ロイヤルピタ)よりもはるかに簡単です。
編集上記の答えは今や主に時代遅れです: :私は書いた ゼラチン, これにより、iOSおよびiOS XR構成をXML、JSON、またはYAMLに変換できます。これは本質的に、前述の醜いハックの代替品であり、次の違いがあります。
- 私はもうそれを醜いハックとは呼びません。私は実際にそれをかなり誇りに思っているので、私を幻滅させないでください!さらに真剣に、あなたがそれで問題を見つけたなら、私に知らせてください、そして私はそれを修正します。
- 純粋なPythonで書かれていると、Cにコンパイルされなくなるため、使用とインストールがはるかに簡単になります。 (また、とにかくCコードの生成によるパフォーマンスの向上は必須ではありませんでした。)
- 構文はです 仕方 理解しやすい。いくつかのドキュメントもあります。
- パーサーははるかに安定しています。
短いハウツー:
ゼラチンをダウンロードしてインストールします:
git clone git://github.com/knipknap/Gelatin.git cd Gelatin sudo python setup.py install
パッケージには、iOS(syntax/iOS/show_running_config/syntax.gel)の構文が含まれており、iOS xr(syntax/ios_xr/show_running_config/syntax.gel)用の構文が含まれています。
次のコマンドを使用して、構成をXMLに変換します。
gel -s syntax.gel config.txt
それが失敗した場合は、お願いします バグを提出します 動作しない構成で。 (またはさらに良いことに、構文にパッチを添付してください。)多くのiOSコマンドがまだ欠落していることを完全に期待しているので、恥ずかしがり屋ではありません。
ゼラチンは、ほとんど何でもXMLに変換するために使用される場合があります。たまたま独自の構文ファイルを作成した場合(さらなる指示は ここ)、それらを送ってください。フィードバックを喜んで受け入れます。
他のヒント
私は出会いました xml-pi 12.4(20)t、12.2(33)SRE、12.2(54)SGおよびそのような問題を扱う新しいsg。