このエントリーを含むはてなブックマークはてなブックマーク - Ubuntuならばシンクライアント・システムの構築も簡単 このエントリをつぶやくこのWebページのtweets Googleブックマークに追加 Bookmark this on Delicious

当ブログでは、さまざまなリモート環境をご紹介していますが、今回は「シンクライアント」について。
Ubuntuでは標準でLTSP(Linux Terminal Server Project)による起動に対応しており、シンクライアントとして、ハードディスクがない端末からネットワーク・ブートにより起動させることができます。

学校において、Ubutnuベースのシンクライアント・システムを実験的に導入する事例が増え始めていますが、こちらの愛媛県立土居高等学校もそのひとつ。

ネットワーク・ブートということで、無線LANでの起動はハードルがかなり高いので、有線LANでの環境が必須かと。
無線LANの端末で接続したいならば、「リモートログインで他のマシンを遠隔操作、XDMCP編」の方法がいいでしょう。

さて、2年ほど前にシンクライアント用のサーバを組んだ時には、驚くほどすんなりといったのですが、久しぶりに組んでみたら、2点ほどハマりどころ(DHCPサーバ設定、64bitサーバ対応)がありましたので、そこら辺も踏まえて書いてみたいと思います。

■サーバのメモリ容量について

ベースとして512MB、接続させるクライアント1台につき最低50MB必要
クライアントが大量で、重いアプリを使用する場合にはより多くのメモリが必要。
4GB以上のメモリを搭載したいならば、PAEに対応しているUbuntuサーバ・エディションか64bit版にする方がいいと思います。

なお、クライアントはデスクトップ画像を表示しているだけなので、64MBのメモリ容量のマシンでも、普通の事務作業に使う程度であれば、充分に実用に耐えられるかと思います。さすがに動画の再生は辛いですが。。。

■クライアントのログイン・アカウント

「システム」>「システム管理」>「ユーザとグループ」から接続を許可するクライアント向けにアカウントを開設しておきます。
UserAccount

なお、アカウント作成の際に、「プロファイル(P)」を「Desktop user」にしておけば、クライアントに管理者権限を与えずに済みます。

■サーバ・アプリケーションのインストール

LTSPサーバ・アプリ: 「ltsp-server-standalone
Open SSH サーバ・アプリ: 「openssh-server
HPA’s tftp server: 「tftpd-hpa

これら3つのアプリケーションをサーバ側に導入しておきます。

001ltsp001

*インストール時に、DHCPサービスの起動エラーとなります。これは後ほど設定します。

■シンクライアントのカーネルイメージを作成

*結構時間がかかります。

002ltsp-build-client-i386

32bit版サーバの場合

sudo ltsp-build-client

64bit版サーバの場合

sudo ltsp-build-client –arch i386

一つ目のハマりどころはココでした。
今回は、64bitのサーバ(Xenによる仮想環境)にセットアップしました。この環境で「sudo ltsp-build-client 」とオプションを付けずにカーネルイメージを作成してしまうと、64bit版のものが出来上がってしまい、64bit対応のCPU搭載機種からしかブートできません。
--arch i386」というオプションを付けることで32bit版のカーネルイメージが出来上がります。このようにすれば、32bit、64bit双方のクライアントから起動できるようになります。

■設定ファイルの修正

003tftpd-hpa-config

sudo gedit /etc/default/tftpd-hpa

で、「tftpd」の設定ファイルを開き、「RUN_DAEMON=”no”」となっている所を”yes“に変更します。

■DHCPサーバの設定

今回セットアップしたサーバ機では、すでにDHCPサーバを導入済みで、「dhcp3-server」が稼働していました。
この設定ファイルとなる「/etc/dhcp3/dhcpd.conf」 を何度修正してもサービス起動がエラーとなってしまったというのが2つ目のハマり所でした。
「ltsp」を導入すると、DHCPサービスが参照する設定ファイルが「/etc/ltsp/dhcpd.conf」 に変わってしまいます。従って、まずは次のように設定ファイルを開きます。

sudo gedit /etc/ltsp/dhcpd.conf

次の設定例のように記述を修正します。

#########################
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.128 192.168.1.255;
option domain-name “local”;
option domain-name-servers 192.168.1.1;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option root-path “/opt/ltsp/i386″;
if substring( option vendor-class-identifier, 0, 9 ) = “PXEClient” {
filename “/ltsp/i386/pxelinux.0″;
} else {
filename “/ltsp/i386/nbi.img”;
}
}

###############################

range」は、クライアントに割り当てるIPアドレスの範囲です。
DHCPサーバ機能搭載のブロードバンド・ルーターを使用している場合、割り当てるアドレスの範囲と重複しないように注意が必要です。
また、この作業を行う間、一時的にブロードバンド・ルーターのDHCPサーバ機能をオフしてしておくといいと思います。

  • domain-name:Ubuntuのインストール後、設定変更をしていない場合、”local”が無難かと。
  • domain-name-servers:ブロードバンド・ルーターを使用している場合、そのアドレス
  • broadcast-addres:ブロードキャスト・アドレスを記入(ifconfigコマンドで調べられます)
  • routers:ブロードバンド・ルーターを使用している場合、そのアドレス
  • subnet-mask:サブネット・マスクを記入(ifconfigコマンドで調べられます)

■SSH Keyのアップデート

以下2つのコマンドを実行します。
これをしておかないと、正しくログイン処理が行われません。

sudo ltsp-update-sshkeys


サーバ機が32bit版の場合

sudo ltsp-build-client

サーバ機が64bit版の場合

sudo ltsp-build-client –arch i386


■サービスの起動

二つのサービスを起動させます。

sudo /etc/init.d/tftpd-hpa start

sudo /etc/init.d/dhcp3-server start


■クライアントをネットワーク・ブートしサーバにログイン

電源投入後、「F12」キーや「F9」キーなどでブートデバイスを選択できる機種の場合、ネットワークからのブートを選択します。
または、BIOSの起動順位設定で、ネットワークからの起動を1番めの起動デバイスとして設定します。

005LTSPboot
ネットワーク・ブートの画面

006LTSPLoginWindow
ログイン画面は文字化けが見られますが、サーバ側に設定されているログインアカウント & パスワードでログイン可能です。

007LTSPLogin
LANからの接続だと低メモリのクライアントからでも、ストレスなく操作が可能です。

■参考にさせていただいたサイト

Related posts:

  1. 固定アドレスの割り当ては、DHCPサーバで行った方がラクチン
  2. Adobe Flash PlayerがUbuntu 64bit版に対応していないぃ
  3. Oh My God! Oh My Goddess!・・・Episode IV
  4. イモキャンでHP 2133をゲット! 速攻でUbuntuインストール!!
  5. VirtualBox1.52のキーボードアサインが変!VMwareを手動でインストール