ネットワークエンジニア系ブログ。エンターテイメント、おすすめ映画、本、キッズ系などお役立ち情報を紹介!

GOISBLOG

サーバー技術

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

投稿日:2014年11月14日 更新日:

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 , 2016 AllRights Reserved.