小型/堅牢/メンテナンスフリー OpenBlockS 600の限界に挑戦

第4回 Conserverで作るコンソールサーバ

この記事を読むのに必要な時間:およそ 5.5 分

はじめに

第4回目となる今号は,OpenBlockS 600(以下,OBS600)をコンソールサーバとして利用する手順を解説します。

コンソールサーバとは

各種機器のコンソールにネットワークを介して接続するハードウェア,またはサービスのことです。機器が設置されているネットワークの外から,シリアル接続などのコンソールを操作できるようになります。

Conserverとは

シリアル,ssh,telnet等でのサーバへの接続を一元管理するアプリケーションです。各接続先サーバへのアクセス権限の管理や操作ログの保存,複数ユーザによる同時モニタリングなどが可能です。多数のサーバ/ネットワーク機器などの管理が必要となる環境で,必要とされる機能が多数用意されています。今回の例ではサーバを接続先の対象にしていますが,ルータやスイッチなどのネットワーク機器や制御機器などでも同様に利用可能です。

準備

Conserverのインストール

OBS600のWebインターフェースのアプリケーションマネージャ,またはコマンドラインから「Conserver」をインストールします。コマンドラインからのインストールは次のようにpkg_addコマンドを使用します。

# pkg_add conserver8

機器構成

今回は3台のサーバを用意して,シリアル/telnet/sshの通信プロトコルで動作を確認します。

server1のCOM1ポートとOBS600の背面にあるRS232Cポートを,標準添付の変換コネクタとケーブルで接続します。server2,server3は,図1のとおりにネットワーク設定を行い,sshやtelnetでの接続準備を行っておきます。

図1 機器構成図

図1 機器構成図

OBS600の設定

OBS600にシリアルコンソール,またはsshで接続して作業を行います。シリアルコンソールでの接続方法については,本製品の簡単導入ガイドを参照してください。sshによる設定方法は,OBS600のWebインターフェースにアクセスして[システム]⁠⁠基本設定]ページの「SSH Server」「有効」に設定して,OBS600を再起動します。

接続対象のホスト名の設定

通常ホストの設定は/etc/hostsファイルに記述しますが,OBS600のWebインターフェースの設定に基づき,OBS600が起動するごとに/etc/hostsファイルを再作成する仕様になっています。接続先ホストの設定はWebインターフェースの[ネットワーク]⁠⁠その他]で設定するか,/usr/pkg/etc/hosts.appendファイルを編集することで行うことができます。記述方法はhostsファイルと同様です。図1の機器構成にしたがってホストを追加しますリスト1)⁠

リスト1 /usr/pkg/etc/hosts.append

172.16.14.90 server1 
172.16.14.91 server2 
172.16.14.92 server3
rc.confの編集

ConserverをOBS600起動時に自動実行する場合は,/etc/rc.confに記述する必要があります。Conserverの起動スクリプトは/usr/pkg/etc/rc.dにあり,図2のように実行します。

図2 アプリケーション自動起動設定

# ls /usr/pkg/etc/rc.dappmgr conserver8 
# echo conserver8 YES >> /etc/rc.conf
設定内容を本体のFlashROMに保存

OBS600の通常起動時ではRAMディスクにルートファイルシステムを展開しているため,明示的に保存の操作を行わない限り,再起動すると変更内容が初期状態に戻ります。変更内容を保存するには,次のコマンドを実行します。なおこのコマンドは,シャットダウン処理の中でも自動的に実行されます。

# flashcfg -s /etc/flashcfg
conserver.cfの編集

アプリケーションマネージャ,またはpkg_addコマンドでインストールしたプログラムの設定ファイルは,/usr/pkg/etcディレクトリに置かれます。Conserverの設定ファイル名は,conserver.cfとなります(/usr/pkgディレクトリはCFメモリをマウントしているため,FlashROMに保存する必要はありません)⁠

conserver.cfはリスト2のように編集します。

リスト2 /usr/pkg/etc/conserver.cf

default full {        ←①
	rw root,plathome;
	ro watch; 
} 

default * {           ←②
	logfile /usr/pkg/var/consoles/&;
	logfilemax 1m;
	timestamp 1hab;
	include full;
	master localhost; 
} 

console ssh {         ←③
	type exec;
	exec ssh user2@server2; 
} 

console telnet {       ←③
	type exec;
	exec telnet server3; 
} 

console serial {       ←③
	type device;
	device /dev/ttyS1; parity none; baud 115200; 
}
  • ①default fullブロック:ユーザのアクセス制御の設定
    rwはキーボード入力できるattach read/write権限で,rootとplathomeユーザに与えています。roは参照のみのread only権限で,watchユーザに与えています。全員にrw権限を与える場合は “rw *⁠と記述します。⁠ro !root⁠と記述すると,rootユーザ以外全員をro権限に設定できます。

  • ②default *ブロック:conso leブロックの共通の設定
    logfile行のログファイル名に “&⁠を指定することでコンソールごとの別ファイルで保存することができます。 logfilemax行でログのローテートサイズを指定します。今回は1Mバイトに設定しています。timestamp行で1時間ごとにタイムスタンプをログファイルに出力する設定にしています。そのログが出力された日時がわかるようになります。

    1h1時間。他に分(m)⁠(d)⁠ログ(l)の行数で指定可能
    aコンソールへの接続/切断のログを出力
    bbreak信号をログに出力
  • ③コンソールごとの設定
    ssh,telnetは外部コマンドを使用するので,type行がexecとなります。exec行で起動するコマンドと起動オプションを記述します。serialは,シリアルポートに接続しますので,type行がdeviceとなります。device行でデバイスファイルとボーレートなどの通信設定を記述します。

conserver.passwdの編集

今回, Conserverにアクセスするパスワードはシステムのパスワードと同一にしたため,リスト3の記述になります。

リスト3 /usr/pkg/etc/conserver.passwd

*any*:*passwd*

server1の設定

server1は,入出力をCOM1ポートでもできるように設定します。

grubの設定

カーネルの起動オプションにconsole出力の設定を行います。/boot/grub/menu.lstファイルのkernel行に,⁠console=tty1 console=ttyS0,115200⁠を追加しますリスト4)⁠

リスト4 /boot/grub/menu.lst(抜粋)

title    Debian GNU/Linux, kernel 2.6.26-2-686
root     (hd0,0) 
kernel   /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro console=tty1 console=ttyS0,115200
initrd   /boot/initrd.img-2.6.26-2-686
inittabの設定

ttyS0の設定を追加しますリスト5)⁠

リスト5 /etc/inittab(抜粋)

# Example how to put a getty on a serial line
# (for a terminal)
# 
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
# T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

コメント

コメントの記入