ネットワークエンジニア系ブログ。健康、エンターテイメント、映画・ドラマ、本、キッズ系、FXまで!お役立ち情報を紹介!

GOISBLOG

サーバー技術

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

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

はじめてのCentOS7 Linuxサーバ構築編 (TECHNICAL MASTER)
デージーネット
秀和システム
売り上げランキング: 24,845

この記事が気に入ったら
いいね!しよう

Twitter で

-サーバー技術
-,

Copyright© GOISBLOG , 2017 All Rights Reserved.

ツールバーへスキップ