robotframework ssh

robotframework
本ページはプロモーションが含まれています

はじめに

今回はrobotframeworkを使ってsshで接続し、コマンドのログを取得する方法にについてです。
robotframeworkでsshで接続してログを取得するなんて使い方ができます。
(場合によっては設定そのものの変更も可能です)

今回はciscoのスイッチ・ルータに接続する例です。

サンプルプログラム

sshで接続してコマンドを実行する簡単なプログラムです。
Test Casesでは

  • SSHでログイン
  • ログを全て表示するためのコマンド入力
  • show ip routeの表示
  • FastEthernetの状態を表示
  • enable~configure terminalの表示
  • FastEthernetにIPアドレス設定
  • ログアウト
  • FastEthernetの設定の再表示

を行っています。

*** Settings ***
Library SSHLibrary
Library OperatingSystem

*** Variables ***
${user_name} cisco
${pass} cisco
# 「.」はエスケープ文字が必要
${target_ip} 192\.168\.56\.10

*** Keywords ***
ssh接続
  Open Connection ${target_ip}
  Login ${user_name} ${pass}

*** Test Cases ***
SSHでログインする
  ssh接続

ログ表示でmoreを出さない
  Write terminal length 0

show ip routeコマンド実行
  Write show ip route
  ${output}= Read delay=3s
  Log To Console ${\n}${output}

FastEthernet 0/1の状態を表示する
  Write show interfaces FastEthernet 0/1
  ${output}= Read delay=3s
  Log To Console ${\n}${output}

enable~configure terminal実行
  Write enable
  Write ${pass}
  Write configure terminal

FastEthernet0/1にIPアドレスを設定
  Write interface FastEthernet 0/1
  Write ip address 192.168.50.1 255.255.255.0
  Write no shutdown
  Write exit

end入力
  Write end

設定変更後のFastEthernet 0/1の状態を再表示する
  Write show interfaces FastEthernet 0/1
  ${output}= Read delay=3s
  Log To Console ${\n}${output}

TelnetはrobotframeworkのSSHLibraryが必要です。
インストールできていない場合はpipコマンドでインストールしてください。

pip install robotframework-sshlibrary

Open Connectionで接続をし、Loginでユーザ名やパスワードを入力します。
ここはTelnetと同じです。

ログが「–more–」で全て表示されないのを防ぐのにterminal length 0をコマンドの前にあらかじめ使用しています。

Writeで命令を実行します。
例ではshow ip route他を使用していますが、ciscoのコマンドの実行がこのWriteでできます。
(Show running-configなど)

コンソールに表示される結果を表示する場合、Writeの後にReadを使用します。
出力を待つためにdelayを指定していますが、秒数を変更することが可能です。
(例では3s=3秒です)

logの表示以外にもIPアドレスの変更なども行っています。
この辺りが自動でできるのはかなり便利な一方、誤って設定するとログインできなくなる可能性があるのでそこは注意が必要です。

さいごに

今回はrobotframeworkでのCisco装置へのsshの方法でした。
SSH自体は別にCisco装置以外でも可能ですので、用途に合わせて変更してください。

SSH部分は単純で

Open ConnectionとLoginを使用すればいいだけです。

この記事がお役に立ったのならば嬉しいです。
最後までお読みいただきありがとうございました。

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました