YAMAHA のルータは tftp を使って config の取得や設定をすることができますが、config を管理するにあたっていくつか都合が悪いところがあり、簡単なシェルスクリプトを使って不要な情報を削除して git で管理できるようにしました。
- curl を使って tftp を実行しています。
- 抜き出した config
- コメント行を削除していますが、最初の2行だけモデルとファームのリビジョンが乗っているので、これは保存するようにしています。
- 改行コードは UNIX 形式に統一
- 多数のルータがあるときは一括で config を抜き取れるようにしています。
- パスワードの暗号化はしていません。
- 保存するときは、clear configuration を実行した後に config を流し込んで save するようにしています。
- 実機と config の diff をとれるようにしています。
使い方
config 取得
% ./rtx-config -H <hostname> -p <admin password>
標準出力にルータの config が出力されますので、適時リダイレクトして保存してください。
config 取得(一括)
% cat routerfile
192.168.1.254,admin
192.168.1.253,admin
192.168.1.252,admin
% ./rtx-config -f routerfile -o config
routerfile には、hostname,adminpassword で1行となる形でルータを列挙しておきます。
上記のコマンドを実行すると config フォルダの中に、ファイル名が hostname で config が出力されます。
config 差分
% ./rtx-config -d -H <hostname> -p <admin password> -f 192.168.1.254
ファイル 192.168.1.254 と、hostname の config の差分を出力します。
出力は diff -u で得られた内容を標準出力へ出力します。
config 保存
- ちょっと危険 *
% ./rtx-config -s -H <hostname> -p <admin password> -f 192.168.1.254
ファイル 192.168.1.254 を hostnmae に反映させます。
処理は
- clear configuration を実行
- config ファイルを流し込み
- save
という形を取っています。
tftp で流し込む為、config の正当性はチェックされません。
また、反映されていないものもある可能性があるので、保存後は diff を取って反映状況を確認する必要があります。
バグ報告など
Github のほうへどうぞ。または yuuitiro@vcnet.toyama.toyama.jp まで。