Upload
npsg
View
453
Download
2
Embed Size (px)
Citation preview
自己紹介• 主な仕事
– ネットワークに関する検証 /POC の実施、検証設備の管理等• プログラミング歴
– BASIC– Perl, JavaScript– Fortran, Java, C++– Python
• 現在の仕事におけるプログラミング活用– スクリプトによるネットワーク機器設定– 各種便利ツール開発– API を利用した設定投入
開発背景• 約 100 ラックの検証設備(ラボ)• 各機器はネットワーク経由でアクセス可能• 各ラックにはリモートから操作可能な PDU ( Power
Distribution Unit )が設置されている• PDU の各ポートにはディスクリプション
を設定可能(接続機器名を設定)• 数種類の PDU が混在
• 電源操作、機器名の変更は、それぞれの PDU に Web ブラウザでアクセスし、個別に操作
PDU
開発背景(続)• それぞれの PDU にアクセスするのが面倒• 接続機器名のメンテナンスが面倒• PDU のベンダーによって操作方法が異なる
• Web 上から複数の PDU を簡単に操作可能• PDU のタイプに依らない操作方法• 誰でも使える• 電源オフさせない設定が可能• 異なるラボにも展開可能
電源操作時のフロー
クライアント サーバ PDU列選択
PDU 一覧
ラック選択
結果
電源操作
ポートの情報
SNMP GET
ラック一覧
結果
SNMP SET
AjaxSNMP
F
F01,F02, …
F10
F10-A, F10-B
F10-B-24 ON
使用している技術
• クライアント側– JavaScript
• jQuery• Bootstrap
– Ajax
• サーバ側– Linux (Cent OS on VMware ESXi)– Apache– MySQL– Perl スクリプト– SNMP
• Net::SNMP 使用
データの格納
Lab ID
Lab Name
Rack ID
Lab ID
Rack Name
Rack Group
PDU ID
PDU Name
Rack ID
IP Address
PDU Type ID
PDU Type ID
ro community
rw community
state OID
name OID
• DB 構造(抜粋)
• PDU– 各ポートの状態( ON/OFF )– 各ポートの名前 ( 通常接続されている機器名 )– 消費電力(一部 PDU のみ対応)
ラボ情報 ラック情報 PDU 情報(個々の PDU )
PDU 情報( PDU の種類別)
付加機能
• PDU 管理機能– PDU の追加、削除、編集、 ポートの操作可否設定
• 電源オフさせない機能をユーザレベルに拡張– 使用者がセルフサービスで電源操作の可否を設定・解除可能
• ポートのグルーピング機能– 複数 PDU にまたがるポートをグループ化できる機能– プロジェクト単位での電源操作をしやすくする