RANCIDの機能を利用したコンフィグをTFTPサーバへアップデートするツール

RANCIDのlogin機能を利用してFTFTPサーバへconfigファイルをアップロードするツールを作成してみました。
「clogin」コマンドを利用したシェルスクリプトをそれぞれのNW機器で作成したのでメモしていきます。

まずは、事前にコンフィグをバックアップしたいホスト名または、IPアドレスを用意します。
このファイルはそれぞれのベンダー機器ごとに作成します。

#vim test.txt
test
192.168.1.1

各ベンダー機器のシェルスクリプトを作成していこう

今回は「/var/rancid/tftp」配下にファイルをそれぞれ作成します。

# ll
合計 44
-rw-rw-r-- 1 rancid rancid 48 11月 12 13:35 2014 ADX.txt
-rw-rw-r-- 1 rancid rancid 64 11月 12 19:41 2014 F5_tmsh.txt
-rw-rw-r-- 1 rancid rancid 32 11月 12 13:48 2014 H3C.txt
-rw-r--r-- 1 rancid rancid 240 11月 12 19:46 2014 cisco.txt
-rw-rw-r-- 1 rancid rancid 36 11月 12 13:24 2014 netscreen.txt
-rwxrw-rw- 1 rancid rancid 268 11月 12 19:44 2014 adx.sh
-rwxrw-rw- 1 rancid rancid 718 11月 12 19:43 2014 cisco.sh
-rwxrw-rw- 1 rancid rancid 323 11月 13 12:43 2014 f5.sh
-rwxrw-rw- 1 rancid rancid 251 11月 12 19:44 2014 h3c.sh
-rwxrw-rw- 1 rancid rancid 305 11月 12 19:44 2014 netscreen.sh

上記のような感じでそれぞれの機器を登録したテキストファイルと、これから作成するシェルファイルを作成します。

各ベンダー機器のシェルスクリプトを作成する理由はそれぞれ、コマンドが違うのでってことだけです。
一つのシェルファイルでもいいのですが、今回はcronで時間別で回すことと見やすさという前提条件で作成しました。

それでは、次からそれぞれのスクリプトの作成例です。

cisco

#!/bin/bash

# Cisco機器のコンフィグをtftpサーバへコピーする


#cisco.txtを変数ciscoへ代入
for cisco in `cat /var/rancid/tftp/cisco.txt`

do

#cisco.txtからホスト名を読み込みコンフィグを取得
        /usr/local/rancid/bin/clogin -t 300 -c "copy  running-config tftp\n1.1.1.1\n$cisco-config\n\n" $cisco
done

netscreen

#!/bin/bash

#netscreen.txtを変数netscreenへ代入
for netscreen in `cat /var/rancid/tftp/netscreen.txt`

do

#netscreen.txtからホスト名を読み込みコンフィグを取得
        /usr/local/rancid/bin/nlogin -t 300 -c "save config to tftp 1.1.1.1 $netscreen-config\n\n" $netscreen
done

F5

tftp-f5.sh
#!/bin/bash

#F5.txtを変数H3Cへ代入
for F5 in `cat /var/rancid/tftp/F5_tmsh.txt`

do

#F5.txtからホスト名を読み込みコンフィグを取得
        /usr/local/rancid/bin/clogin -t 300 -c "cd /var/local/ucs/\ntmsh\nsave sys ucs $F5-config\ny\nquit\n\ntftp 1.1.1.1\nput\n$F5-config.ucs\nquit\n" $F5
done

H3C

vim h3c.sh
#!/bin/bash

#H3C.txtを変数H3Cへ代入
for H3C in `cat /var/rancid/tftp/H3C.txt`

do

#H3c.txtからホスト名を読み込みコンフィグを取得
        /usr/local/rancid/bin/h3clogin -t 300 -c "tftp 1.1.1.1 put $H3C.cfg\n\n" $H3C
done

ADX

#!/bin/bash

#ADX.txtを変数ADXへ代入
for ADX in `cat /var/rancid/tftp/ADX.txt`

do

#ADX.txtからホスト名を読み込みコンフィグを取得
        /usr/local/rancid/bin/clogin -t 300 -c "copy running-config tftp 1.1.1.1 $ADX-config\n\n" $ADX
done

こんな感じで作成したんですが、もっとうまいスクリプト作成できる方、教えて下さい!

以上です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!