現在位置: ホーム Documents プログラムの作成

プログラムの作成

Python による簡単なプログラムの作成 / Simple Python app writing
(verified 2010 Apr. / EOS 4.3.0 / DCS-7120T-4S 03.01)

bash アクセス

まず Arista の Linux システムと対話するために bash を起動する。
bash は enable モードから bash コマンドで起動することができる。
具体的には Arista の CLI (コマンドラインインタプリタ)が動作した状態で、enable コマンドを実行し、そのうえで bash コマンドを実行すればよい。
mypc$ slogin -l admin arista.example.com
Password:
localhost>enable
localhost#bash
Arista Networks EOS shell
[admin@localhost ~]$

プログラムの作成

プログラムはどのような方法で作成しても構わないだろうが、例えば以下のような方法がある。
  1. Arista の bash から vi によって直接編集
  2. 外部のエディタで作成したものを copy & paste (Arista 側では cat > sample などとして待ち構えておく)
  3. USB メモリに入れてコピー(USB ストレージを差して cp /mnt/flash/sample . など)
  4. Web ディレクトリに置いて wget で取得(Arista には /usr/bin/wget が標準的に用意されている)
作成したものは /tmp ディレクトリに保存するなりすれば良い。
もし admin ユーザなどのホーム・ディレクトリなどに保存したければ read write モードで remount すれば良いが、その内容は reboot すると消える。恒久的に保持するためには例えば /persist/local ディレクトリ以下を使うと良い。

例:ポート数を数える

SysDB にアクセスして、ポート数を数えるだけの簡単なプログラムを作成して、実行する。
[admin@localhost tmp]$ cat fanCount
#!/usr/bin/env python
import EntityManager, TnDiagLib, Tracing
import sys, os, __builtin__
sysname = 'ar'
em = EntityManager.Sysdb( sysname )
(config,status) = TnDiagLib.mountEntities( em )
phyCount = len( config.phyConfig )
print "PHY Count is", phyCount
sys.stdout.flush()
[admin@localhost tmp]$
実行結果は以下のようになる。
[admin@localhost tmp]$ ./fanCount
PHY Count is 20
[admin@localhost tmp]$

 

上のようにして実行するには作成したプログラムに実行権を与える必要がある。
通常の Unix システム同様、chmod a+x fanCount などとすれば良い。
上のプログラムで注目すべきは sysname あたりで、sysname として指定する 'ar' などを含めて、このあたりが SysDB から情報を取り出す時のきまり文句になる。
Arista のプログラムはこうしたハードコード('ar')があちこちにある。
逆にこのあたりを手がかりにシステムファンクションの挙動を追うことになる。
タグ: