シスコは、IOS 設定のスキーマを提供していません。ただし、次の 2 つのオプションがあります。
Cisco の IOS XR には XML サポートが組み込まれています。ルーターのモデルによっては、アップグレードできる場合があります。これを機能させるには、「xml-agent」機能を有効にする必要があります。この機能はまだ信頼できるとは限らないことに注意してください (最後に確認したところ、使用できないバグがいくつかありました)、多くの人にとっては十分な機能です。
アップグレードがオプションでない場合は、この恐ろしい醜いハックがあります (これは私のせいです):
http://code.google.com/p/text2xml/
かなりの数のコマンドの XML への変換をサポートする IOS の構文 (リポジトリ内の syntax/ios.def) が付属していますが、決して完全ではありません。それでも、ここでは多数の非常に複雑な構成で機能し、新しい IOS コマンドをサポートするように拡張するには、新しいコマンドを (非常に読みにくく、理解しにくい) 構文定義に追加するだけです。
結果の XML をより安定したものに変換したい場合もありますが、XML 変換は IOS を解析するよりもはるかに簡単です (これはロイヤル PITA です)。
[編集]
上記の回答は現在ほとんど使用されていません。私はGelatinを作成しました。これにより、IOS および IOS XR の構成を XML、JSON、または YAML のいずれかに変換できます。これは基本的に、前述の醜いハックの代わりになりますが、次のような違いがあります。
- 私はもはやそれを醜いハックとは呼びません。私は実際にそれをかなり誇りに思っているので、幻滅しないでください! もっと深刻なことに、問題が見つかった場合はお知らせください。修正します。
- 純粋な Python で記述されており、C にコンパイルされなくなったため、使用とインストールがはるかに簡単になりました。(また、C コードを生成することによるパフォーマンスの向上は、とにかく重要ではありませんでした。)
- 構文は理解しやすい方法です。いくつかのドキュメントもあります。
- パーサーははるかに安定しています。
簡単なハウツー:
Gelatin をダウンロードしてインストールします。
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 コマンドが欠落していることを十分に期待しているので、恥ずかしがらないでください。
Gelatin は、ほとんどすべてを XML に変換するために使用できます。独自の構文ファイルを作成した場合は (詳細な手順はこちら)、送信してください。フィードバックは喜んで受け付けます。