ネットワーク作業の効率化 telnet ツールを作るツールTelnetman


1. はじめに

1.1 背景

私は某大手通信会社のネットワーク構築部門でシステム開発を担当しています。
弊社では商用ネットワーク機器への

  • バージョンアップ
  • 迂回路構築
  • 各種設定変更

等の作業を日々行っています。

人海戦術で手作業で行うのは当然効率が悪いので作業手順をツール化するわけですが、
段々それすらも面倒に感じてきたので作業ツールを作るツールを開発しました。
名付けてTelnetman です。

1.2 実績

期間 : 3年
対象 : 1件あたり300 ~ 2,000台程度を対象とした比較的規模の大きい作業11
効果 : 対手作業比で億円規模のコスト削減
事故 : 無し

2. 機能紹介

2.1 概要

登録したコマンドをGUI でグリグリ動かして並べて作業手順を作り上げていくワークフロー製品のようなものです。
コマンドは固定のものだけでなく、show interface {IF} statusのようなスケルトンで登録して自由に繰り返し処理もできます。

2.2 デモ

ルーターのホスト名を変更するというだけの簡単な作業を例にしたデモ動画です。
以下のような流れの作業です。

2.3 嬉しい機能

  1. telnet だけでなくssh もできます。
  2. 正規表現が苦手な人のために正規表現ジェネレーター搭載。
  3. 検証環境から商用環境へのデータ移行がドラッグ&ドロップ一発。Export ボタンを押すとデータファイルがダウンロードできる。それをImport エリアにドラッグ&ドロップ。

2.4 拡張ツール

例えば、次のような長大なシナリオの作業を行いたいときがあります。

さすがにTelnetman だけでこれを組むのは困難です。
そこでTelnetman でワークフローを組むTelnetman Workflow という拡張ツールも作りました。

横に長い四角の中にTelnetman がいるイメージです。
作業シナリオの小項番毎にTelnetman を組んで、それを作業シナリオに沿ってTelnetman Workflow に配置してつなげていきます。
Start の円の中にパラメーターシート(CSV) を入れると矢印の先の四角にパラメーターシートが渡されTelnetman にアクセスしてコマンドを実行し、また次の四角にパラメーターシートが渡されていきます。

3. 導入手順

Github で公開しています。
Telnetman 本体
Telnetman Workflow

3.1 VM へのインストール

必ず最小構成のCentOS7 で、OS をインストールしただけで何も変更していない状態で行って下さい。
TelnetmanTelnetman Workflow でOS は分けて下さい。

3.1.1 Telnetman

1. sudo yum -y install git
2. git clone https://github.com/takahiro-eno/Telnetman2.git
3. cd Telnetman2
4. sudo sh Telnetman2_install.sh
5. cd ..
6. rm -rf Telnetman2
7. sudo reboot

https://server address/
でアクセスできます。

3.1.2 Telnetman Workflow

スクリプト実行時に連携先Telnetman のIP Address の入力を求められます。

1. sudo yum -y install git
2. git clone https://github.com/takahiro-eno/TelnetmanWF.git
3. cd TelnetmanWF
4. sudo sh TelnetmanWF_install.sh
5. cd ..
6. rm -rf TelnetmanWF
7. sudo reboot

https://server address/
でアクセスできます。

3.2 Docker

TelnetmanTelnetman Workflow 両方同時に導入します。

1. git clone https://github.com/takahiro-eno/Telnetman2.git
2. git clone https://github.com/takahiro-eno/TelnetmanWF.git
3. cd TelnetmanWF
4. sudo docker-compose build
5. sudo docker-compose up -d

https://host address:8443/
https://host address:9443/
でそれぞれにアクセスできます。

3.3 OpenShift Origin v3.9

動作確認済みです。
導入方法はGitHub を御覧ください。

3.4 最初にすること

Telnetman サーバーのOS またはTelnetman コンテナにログインします。
sudo perl /usr/local/Telnetman2/pl/create_administrator.pl
を実行して管理者アカウントを作成して下さい。

3.5 アカウント作成

Telnetman 画面右上の「ユーザー登録」で登録して下さい。
「管理者用」に管理者アカウントでアクセスして承認すると
「操作画面」で使えるようになります。

3.6 使い方

Telnetman トップ画面にトレーニング用のページのリンクがあります。
そこに書いてある内容を省略することなく全て書いてある通りに実行して下さい。
例と実際ではインターフェース名が違うでしょうから適宜読み替えて下さい。
ここに書かれている内容でTelnetmanTelnetman Workflow のほぼ全機能が学べます。
まずは守破離の守です。
いきなり破や離から始めて「わかんねぇ」「使えねぇ」とか言う人がいますがダメです。

4. 公開にあたって

業務中に作ったものをなぜ公開できるのか、ですが、当然管理職も異動するので新しい管理職によっては部署の方針がコロッと変わることがあります。
当時の新しい管理職が内製開発を嫌っていて「内製開発なんてとんでもない。異動や退職をしたら誰がメンテナンスするんだ。開発だけでなく保守も含めた業務委託契約で作ったものでなければ認めない。」という方針でTelnetman は廃棄させられました。

会社が廃棄したものなので作成者である私が好きに扱っています。
このまま消えるのは悲しいので公開することにしました。
弊社の大規模ネットワークの商用メンテナンス作業に耐えた実績があります。
Telnetman で時間とお金を節約して、それを他の新規技術導入などに当てて下さい。