テクノロジー
技術レポート:アーカイブ
Category:情報処理システム
Sambaを利用した開発環境構築の事例

近年、システム開発の現場においては、OS(オペレーティングシステム)にUNIXやLinuxを搭載したワークステーションに、OSがWindowsのPC端末からリモートログインして作業している場合が多い。当部内においては管理の容易化や、作業効率の向上にSambaを利用した開発環境を用いており、本報告では、その構築事例を紹介する。本事例では、異なるOSが含まれる開発環境で、Sambaを始めとするフリーツールを組み合わせた環境を構築し、ドキュメント及びソースファイル等を集中管理することにより、開発の向上に寄与することができた。
参考情報:
Sambaを利用した開発環境構築の事例 *鎌倉事業部 第四技術部 MSS技報・Vol.18 35技術論文Sambaを利用した開発環境構築の事例Development environment construction case by Samba樋泉 宏昭*Hiroaki Hiizumi 近年、システム開発の現場においては、OS(オペレーティングシステム)にUNIXやLinuxを搭載したワークステーションに、OSがWindowsのPC端末からリモートログインして作業している場合が多い。当部内においては管理の容易化や、作業効率の向上にSambaを利用した開発環境を用いており、本報告では、その構築事例を紹介する。本事例では、異なるOSが含まれる開発環境で、Sambaを始めとするフリーツールを組み合わせた環境を構築し、ドキュメント及びソースファイル等を集中管理することにより、開発の向上に寄与することができた。 It often works from the personal computer terminal of Windows to the workstation equipped withUNIX and Linux by remote control on the site of the system development in recent years. In sectional,this the development enviroment using Samba is used to simplify of management and to improve thework efficiency, and it introduces the construction case in this report, In this case, it was possible tocontribute to the improvement of development by constructing the environment that combined freetools such as Samba with the development environment that used a different operating system, andcontrolling the document and the sourse file intensively. 1.まえがきシステム開発の現場におけるソフトウエア開発環境の構築は、プロジェクトの立ち上げ時から重要なテーマになっていることが多い。というのも、プロジェクトの開発コストの主は、開発に携わる技術者達の作業時間と、その技術者達が使用する開発機材の調達費用が多くを占めていて、その二つの要因が関連するのが開発環境であるからである。又、ドキュメントやソースファイルのバージョン管理についても開発環境が深く影響し、正確に管理することができなければ、作業の遅延や混乱に繋がり兼ねない。そういう意味では開発環境の構築というのはプロジェクトの中で実際に作業する上での土台になる部分だと言える。本稿では、著者が担当したリアルタイムシステムのソフトウエア開発プロジェクトにおいて構築した、開発環境について紹介する。本プロジェクトは、一般的なUNIXサーバとWindowsPC端末を組み合わせた開発環境に、Samba(※1)とSubversion(※2)を組み合わせて使用し、ソースファイルやドキュメントファイルなどの資源を一括管理することにより開発作業の効率化を進めることができた。2.Sambaの機能と運用方法今日、多くの人が使用しているパーソナルコンピュータのOSはマイクロソフト社が開発したWindowsである。しかし、もともとコンピュータは開発や研究のためがほとんどで、OSはUNIX系のものが多く、キーボードからコマンドを入力して操作するCUI(Character UserInterface)で行われてきた。その後、Windowsの普及とともにマウス操作が中心のGUI(Graphical UserInterface)が一般的になった。するとUNIX系のOSにも優れたGUI機能が追加され、WindowsとUNIX系のOSが混在することが多くなった。そこで異なるOS間でのファイルの交換が必要になり、通常はFTPというファイル転送機能で行われた。しかし、FTPでは専用のツールの起動が必要だったり、転送モードによってファイルの内容が変わってしまったりと、注意しないとトラブルが起きることが多かった。そこで登場したのがSambaである。SambaはUNIXマシン上のファイルをWindowsからWindows上のファイルと同じように操作できるようになり、使用者はWindowsサーバとUNIXサーバの違いを意識することなく、ファイル操作が可能に※1 UNIX/LINUX上にWindows互換のファイル共有機能を実装するツール※2 コンピューターのプログラム等のバージョン管理システム36技術論文なった。開発の現場では、それまでMicrosoft Office等のツールで作成したドキュメントファイル等はWindowsファイルサーバにアップデートし、ソフトウエアのソースファイル等はUNIX系の開発用サーバにアップデートしていたため、2台の異なるOSのサーバを用意する必要があった。しかし、図1のようにSambaを活用することでドキュメントファイルもソースファイルもUNIX系サーバさえあればどちらも可能になった。本プロジェクトでは、Sambaを組み込む事により、ドキュメントファイルやソースファイルなどの資源の一元管理を目指すこととした。3.Subversionによるファイル管理プロジェクトにおけるファイルのバージョン管理は常に優先度が高い作業である。どんなに時間をかけて作成したものでも最新の情報が活用されなければ、何の意味もないからである。従来、プログラムの管理は主にCVSというツールが使用されてきた。しかし、CVSはソースファイルのようなテキストベースのファイルの管理しか行うことができなかったり、ファイルごとにバージョン化するため、管理者が把握しにくい状況が起こることがあったりした。そこでCVSに代わって台頭してきたバージョン管理ツールがSubversionである。Subversionではテキストベースのファイルだけではなく、全ての形式のファイルを管理することができ、個々のファイルだけではなく、ディレクトリツリー全体に行われた変更を確認できるようにデイレクトリをバージョン化する機能がある。UNIX/LINUX上で操作する場合はCUIによる操作がほとんどで、作業者は専用のコマンドを入力する必要があるが、Windows上ではWindows専用のSubversionクライアントツールであるTortoise-SVNを使用した場合、図2のようにマウスの右クリック操作から簡単に操作することができる。又、Windows上にチェックアウトしてきたファイルは、図3のように変更があることをアイコンと色によって視覚的に把握することができる。さらに、S u b v e r s i o n はW E B サーバのA p a c h e( H T T P D ) を利用することでネットワーク上のSubversionのクライアントツールがインストールしてあるマシンからも、サーバ上のファイルを管理することができるようになるWebDAV(※3)という仕様に基づいている。ネットワーク上の誰でもサーバの内容を改変できるのは危険なため、通常は、ユーザ名とパスワードによるユーザ認証を行ない、権限のあるユーザのみが利用できるよう設定することができる。これによりSubversionはより機能的かつ安全なバージョン管理ツールとしての地位を確立した。※3 IETF(インターネット上で使用する技術を標準化するための組織)によってRFC 2518として定義されている、Webブラウザ上からWebサーバ上のファイルやフォルダを管理できるようにした仕様。UNIXサーバWindowsサーバ・ソースファイル・設定ファイル・アプリケーション等Windowsクライアントマシン・ドキュメントファイル・要求仕様書・設計書等UNIXサーバ・ソースファイル・設定ファイル・アプリケーション等・ドキュメントファイル・要求仕様書・設計書等WindowsクライアントマシンSambaの導入ファイルの種類に関係なく保存可能⇒ 一括した管理が可能ファイルの種類によって保存するサーバが異なる図1 Samba導入による変化図2 右クリックで操作できるTortoiseSVN変更があった場合の表示通常時の表示図3 アイコンに付くマークで変更状態を表現するTortoiseSVNMSS技報・Vol.18 37本プロジェクトにおいても、これまでのCVSによる管理からSubversionを利用した管理へと移行することととした。4.SambaとSubversionの活用による環境構築事例4.1 機材及びツール実際に著者が担当したプロジェクトで構築したSambaとSubversionを組み合わせたソフトウエア開発環境を示す。システム構成と使用した機材は図4、そしてインストールしたツールは表1、表2の通りである。4.2 導入による効果本事例のソフトウエア開発環境構築における導入の結果、大きく分けて以下の二つの利点が挙げられた。盧操作性の向上①Solaris上のファイルをPC端末から管理する場合はコマンド入力による操作が必要だったが、SambaサーバによりWindowsエクスプローラの操作で管理できるようになり操作性が向上した。②開発者達がプログラムのコーディング作業時にWindowsのエディタ等を使用する場合、PC端末からソースコードの編集の度にアップロードとダウンロードを繰り返す必要があるため、開発サーバ上のエディタで我慢してコーディング作業していたが、Sambaの導入により、開発サーバ上のファイルをWindowsのツールでそのまま編集できるようになり、開発者達はWindowsの好きなエディタでプログラミングコードを編集してもファイルの転送作業が不要になり、ソースファイルをPC端末上と開発サーバ上に多重に管理することがなくなり、情報セキュリティ対策が実現できるようになった。③コンパイル実行時は開発サーバでコンパイル実行用のコマンドを入力する必要があったが、あらかじめ開発サーバ上にコンパイルを実行させるシェルを作成しTeraTermのマクロ機能を使用することで、全ての作業をGUIの環境で行なうこともできるようになった。④開発サーバ上にSubversionのリポジトリを展開した場合は、svnコマンド(Subversion専用コマンド)の入力が必要だったが、SambaとSubversionにより、ファイルのリポジトリはPC端末上、開発サーバ上のどちらに展開しても、チェックアウト、チェックインはTortoiseSVNで右クリック操作から行なえるようになった。盪管理作業の効率化①ドキュメントとソースファイルは別々の場所に別々の方法で管理されていることが多かったが、Sambaの導入によりドキュメントとソースファイルをひとまとまりで管理を行なえ、Subversionによりベースライン管理ができるようになった。②Microsoft Officeで作成したファイルは更新の度に改定履歴を記録する必要があったが、Subversionのリポジトリ上で履歴機能が自動的に設定され、ドキュメントの改定履歴の管理が容易になった。③それまで個人の作業管理は作業者次第だったが、作業者個人でもWindows上でリポジトリを作成し、作業管理を行なうことができるようになり、同じ操作で開発サーバも管理できるため、個人及びプロジェクト全体の管理方法が統一化できるようになった。図5 Sambaの設定をブラウザ操作で管理できるSWAT10BASE-T/100BASE-TX集積装置(HUB)Sun MicrosystemsSunBlade 2000(OS:Solaris8)PanasonicLet’s note(OS:Windows XP Professional Edition)クライアントマシンサーバマシンEthernetケーブルEthernetケーブル図4 システム構成、使用機材表1 サーバマシンにインストールしたツール一覧ツール名称主な機能Apache2.059 HTTPサーバツールSamba3.0.10 Windows用ファイル共有サーバツールSubversion1.2.3 バージョン管理ツールOpenSSL0.98 情報の暗号化ツールLibconv-1.9.2 文字コードの変換用ライブラリLibconv-1.9.2-cp932.patchLibconv-1.9.2のCP932の変換をマイクロソフトの変換と一致させるパッチ表2 クライアントマシンにインストールしたツール一覧ツール名称主な機能TortoiseSVN1.3.5 SubversionのクライアントツールTera Term Pro 2.3(1.9J) telnetによる操作ツール※全てSolaris8のSPARC版パッケージ38技術論文④アクセス制限等のセキュリティ面での設定方法はパラメータが多すぎ複雑だったが、Sambaのユーザ管理は図5のようなWebブラウザで管理することができ、設定できるパラメータが全て表示されているので複雑な操作の必要なく管理できるようになった。5.むすび今回、提案した開発環境は適用できる範囲が限定されている。しかし、常に目の前にある環境が当たり前だと思うのではなく、より効率的に作業が進めることができるように模索していくことが必要だと思われる。全てがプラスの要因になるようにすることは難しいが、その状況で求められている事柄を優先した開発環境の構築を今後も考案していきたい。参考資料盧徹底解説 Samba LDAP サーバ構築(武田保真,技術評論社)盪バージョン管理システム「Subversion」解説書(Subversion開発プロジェクト IDGジャパン)蘯Windows版 Apache2.0入門(ゲイザー 株式会社ディー・アート)盻WebDAVシステム構築ガイド―Apache/IIS/Subversion/Jakarta Slide(宮本久仁男、山田泰資、渡邊剛 技術評論社)眈Sambaのすべて(高橋 基信 翔泳社)