はじめに
複数のNW機器にログインして、機器の接続状態を確認する必要がありました。
例としては、
装置Aにログイン
装置Bにログイン
装置Aから装置Bのデバイスの状態を表示
装置Bから装置Aのデバイスの状態を表示
装置Aの設定を変更
装置Bから装置Aのデバイスの状態を表示
装置Aのログアウト
装置Bのログアウト
という様な具合です。
ネットワーク機器はこうした設定の確認をする事が多いです。
そこでRobotframeworkで装置の切り替えが出来れば、作業の自動化ができるなと思いTelnetやSSHで接続した機器の切り替えが出来ないかを調べた時のメモです。
サンプルソースコード
サンプルコードは装置R1にSSHで接続した後に装置R2へもSSHで接続。
(両方ともCiscoの機器とします)
その後、装置R1に切り替えてルーティング状態を表示し、装置R2へ再度切り替えして同じくルーティングを表示するというものです。
切り替えには『Switch Connection』を使用します。
SSHLibraryをインポートする必要があります。
*** Settings ***
Library SSHLibrary
Library OperatingSystem
*** Variables ***
${R1_user_name} R1
${R1_pass} cisco
${R2_user_name} R2
${R2_pass} cisco
${R1_ip} 192\.168\.1\.10
${R2_ip} 192\.168\.2\.20
*** Test Cases ***
Switch Connectionテスト
${R1}= Open Connection ${R1_ip}
Login ${R1_user_name} ${R1_pass}
${R2}= Open Connection ${R2_ip}
Login ${R2_user_name} ${R2_pass}
# R1へ装置の切り替え
Switch Connection ${R1}
Write terminal length 0
Write show ip route
${output}= Read delay=3s
Log To Console ${\n}${output}
# R2へ装置の切り替え
Switch Connection ${R2}
Write terminal length 0
Write show ip route
${output}= Read delay=3s
Log To Console ${\n}${output}
Open Connectionoの情報を${R1}と${R2}で受け取り、切り替えを行いたい時にSwitch Connectionに引数として渡します。
そうすることで複数の接続先で装置の切り替えが行えます。
さいごに
サンプルはシンプルな例ですが、これを元に必要な処理があれば追加していく事で、ある程度のことは出来ると思います。
装置もCiscoの装置以外の機器でも可能です(LinuxとかでもSSHで入れば切り替えが出来ます)
まとめると、
ということで、装置を切り替えるには『Switch Connection』を使う
という事でした。
この記事がお役に立ったのならば嬉しいです。
最後までお読みいただきありがとうございました。