日々の作業を効率化!ネットワークエンジニアが実践する自動化・改善のヒント

アイキャッチ画像

1.日々の作業を考えてみる

・日々の作業を振り返ってみる
ネットワークエンジニアは日々様々な作業を行っているが、どんなことを行っていたかをここでは
振り返ってみる。今まで参画した案件では下記の作業を行っていた。

※注 スキル、立ち位置(リーダー、メンバー、プロジェクトマネージャー等)、案件内容によって
作業内容が異なる。

1.構成図の作成(論理構成図、物理構成図)

2.作業手順書の作成(設定変更手順書、構築手順書等)

3.パラメータシートの作成

4.Teratermを使用してconfigを投入する

5.勤務表の作成

6.業務開始、終了連絡(リモートワーク時)
細かい作業は除いて上記が主に日々現場で行っていた業務である。
この中で自動化または効率化できる作業をピックアップして述べていく。

2.自動化or効率化できる作業・改善のヒント

自動化or効率化できる作業をピックアップ
・ここでは上記で挙げた作業のうち、自動化or効率化、改善できる作業をピックアップして
どういった方法で実現できるか考えていく。

1.構成図の作成(論理構成図、物理構成図)
この作業の自動化は厳しいが、効率化は多少は望める。具体的な内容としては既存の資料があれば
それをコピーして作成する。似ているまたは同じ図があればコピー&ペーストを駆使して
作成しなるべくゼロから作成するのは避ける。そうすることにより、作成時間の短縮に繋がり効率化が図れる。

2.作業手順書の作成(設定変更手順書、構築手順書等)
この作業も自動化は厳しいが、効率化、改善は可能である。方法は構成図と同様で既存の資料があればそれをコピーして作成する。また、投入configやコマンドはコピー&ペーストできるように記載する。
そうすることにより、手順書の作成時間の短縮、変更や構築作業時にコマンド、configを入力ミス軽減 
に繋がる。

3.パラメータシートの作成
この作業も自動化は厳しいが、効率化、改善は可能である。一つ目は、既存の資料があればそれを
コピーして作成する。二つ目は、Excelで作成する場合は設定値を都度手打ちではなく
ツールバーのデータを駆使してプルダウンで選択できるようにするかコピー&ペーストで記載する。

4.Teratermを使用してconfigを投入する
この作業に関しては、自動化にすることが可能である。具体的に挙げるとマクロを組んで実機に
ログイン、config投入することである。
マクロの組み方は以下の通りである。

TeraTermのインストールフォルダにあるログインマクロの雛型「ssh2login.ttl」をコピーまたは編集し、そのファイルを実行することにより自動ログインを行うことが可能。

①自動ログイン パスワード保存版(暗号化)
パスワード暗号化ファイル(passwd.dat)でパスワードを保存し、SSH接続を自動化する。
(初回のみパスワードを入力、2回目以降はパスワード入力無し。)
この方法でログインできれば毎回ユーザー名とパスワード入力をせずにログインが可能になる。
定期的に機器にログインする場合は、作業時間短縮でこのマクロを活用したい。

)例
username = ‘user01’          ; ログインするサーバーのユーザー名
hostname = ‘192.168.1.2’     ; ログインするサーバーのホスト名またはIPアドレス
passwdfile = ‘passwd.dat’    ; パスワード暗号化ファイル

portnum = ’22’

getpassword passwdfile username userpasswd  ; パスワード暗号化ファイルからパスワード取得

msg = hostname
strconcat msg ‘:portnum /ssh /auth=password /user=’
strconcat msg username
strconcat msg ‘ /passwd=’
strconcat msg userpasswd
strconcat msg inputstr

connect msg

②ログ自動取得
定期的にログ取得する現場であれば時間短縮とコマンド入力ミスがなくなるので、
積極的に導入していきたいマクロである。

)例

; ログ出力先を指定する。末尾に\は不要
LOG_DIR = ‘C:\Users\user\Documents’
;=====================================================================

; コマンドオプション組立て
COMMAND = HOSTADDR
strconcat COMMAND ‘:’
strconcat COMMAND PORTNUMBER
strconcat COMMAND ‘ /ssh /2 /auth=password /user=’
strconcat COMMAND USERNAME
strconcat COMMAND ‘ /passwd=’
strconcat COMMAND PASSWORD

; 接続
connect COMMAND
wait USERNAME

; 日時を取得
gettime CURRENT_TIME “%Y%m%d-%H%M%S”

; ログファイル名生成とパス結合
sprintf2 FILE_NAME ‘%s\ttl_%s_%s.log’ LOG_DIR USERNAME CURRENT_TIME

loginfo logfilename
if result == -1 then
; ログ取得開始
logopen FILE_NAME 0 1 0 1 1
else
 ; ログ取得中であるため一度クローズしてからログ取得開始
 logclose
logopen FILE_NAME 0 1 0 1 1
endif

end

③コマンド自動入力
設定変更作業が定期的にある現場では、決まったコマンドを打つことが多い。
そのため、マクロを事前に組んで作業時はなるべく手打ちをしないで作業を行うケースを想定した
マクロの例を紹介する。

)例
show running-configとshow loggingを自動取得する場合

; === show running-config 実行 ===

sendln ‘terminal length 0’       ; 出力が途中で止まらないように
wait ‘#’

sendln ‘show running-config’
wait ‘#’                         ; 結果の最後まで待つ

sendln ‘show logging’
wait ‘#’                         ; 結果の最後まで待つ

; === セッション終了 ===
sendln ‘exit’

上記のマクロはsshにて機器へログイン、ログ取得、コマンド入力の別々で紹介した。取得対象機器が複数同時進行で行いたい場合は、Taratermを複数起動しそれらを組み合わせて機器へログイン、ログ取得、コマンド入力まで行うことも可能である。

3.まとめ

1〜2を通して日々の作業の効率化、改善のヒント等を挙げたが参考になったであろうか。
上記の内容は自ら編み出した方法ではなく、様々な現場で経験したことを紹介したにすぎない。
しかし、こういった方法をどこかで知ることができれば今後の作業に活かせるので気軽に試して欲しい。

参考文献

https://qiita.com/yasushi-jp/items/ec578da715f139542886

https://qiita.com/aloac/items/8163d65f58178a82b3fa