6. 設定ファイルの詳細な解説(PVSregister サーバ側)

6.1. PVSregisterServer.exe.config の設定

PVSregister サーバーがサービスとして動作する際の設定内容を記載するファイルです。 なお、このファイルを変更したときには、PVSregister サーバー サービスの再起動が必要となります。

以下にPVSregisterServer.exe.config ファイルの例を示します。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <section name="log4net"
      type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  </configSections>

  <log4net>
    <appender name="LogFileAppender"
      type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="..\log\PVSregisterServer.log" />
      <param name="MaxSizeRollBackups" value="5" />
      <param name="RollingStyle" value="Size" />
      <param name="AppendToFile" value="true" />
      <param name="MaximumFileSize" value="100KB" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
  </log4net>

  <appSettings>
    <!-- PVS への登録を行うスクリプト-->
    <add key="command1"
      value="powershell -command C:\ProgramData\CO-CONV\PVSregister\scripts\regist\pvs\pvs.ps1"/>
    <!-- DHCP への登録を行うスクリプト-->
    <add key="command2"
      value="powershell -command C:\ProgramData\CO-CONV\PVSregister\scripts\regist\dhcp\dhcp.ps1"/>
    <!-- SSH を起動してDHCP への登録などを行うスクリプト-->
    <!--<add key="command3"
      value="powershell -command C:\PVSregister\server\scripts\regist\dhcp\dhcp_ssh.ps1"/>-->
    <add key="hostinfoCommand"
      value="powershell -command C:\PVSregister\server\scripts\hostinfo\hostinfo.ps1"/>
    <add key="listenPort" value="65432"/>
    <add key="timeout" value="60"/>
    <add key="pvsRegisterVersion" value="2011010600" />
  </appSettings>
</configuration>

6.1.1. サーバーの動作に関する設定(appSettings 要素)

設定ファイル内の <appSettings> の項目を用いて設定します。各項目の意味は以下の通りです。

key の値 説明
command1
command2
command3
command4
PVS/DHCP 登録のリクエストを受けた際に実行されるコマンドを示します。
command1, command2 ・・・の実行順序は数字の順ではなく、
上に書いてあるものから順に実行されます。また、更に実行す
るコマンドを追加したい場合は、command3, command4 のよう
command[数字]keyadd 要素を追加することができま
す。この際も実行順序は数字の順ではなく上から順番であるこ
とに注意してください。
hostinfoCommand
端末から「端末構成情報ファイル」の要求を受けた際に、端
末構成情報の選択のために実行されるコマンドを指定しま
す。PVSregister を C ドライブに導入した場合は、通常は変更する
必要がありません。ディスク/PVS 設定のリクエストを受けた
際に実行されるコマンドです。デフォルトだと hostinfo.ps1
の実行ですが、インストール先の環境にパスを合わせること
に注意してください。
listenPort
PVSregister サーバーが端末から端末情報の記された XML フ
ァイルを送受信するためのポート番号を書く。デフォルトだと
65432
Timeout
サービスから外部コマンドを叩く場合にどのくらいタイムアウ
トを待つか(秒)。デフォルトだと 60
deleteTempFile
端末側から受信した情報を保存した一時ファイルを削除す
るかどうか。(・・削除する、0 ・・削除しない)

6.1.2. ログの取得に関する設定(log4net 要素)

設定ファイル内の <log4net> の項目を用いて設定します。基本的には変更する必要はありません。各項目の意味は以下の通りです。

name の値 説明
File
ログのファイル名。デフォルトでは server フォルダと同じ階層の log
フォルダに PVSregisterServer.log という名前で作成されます。
MaxSizeRollBackups
ログファイルを分割した場合にログファイルを何個まで保持する
か。デフォルトだと 5
RollingStyle 何を基準に分割するか。デフォルトだとログファイルのサイズ。
MaximumFileSize
ファイルサイズで分割する場合にどのサイズ以上になったら分割
するか。デフォルトだと 100KB

上記の項目の記述方法の詳細については、log4net のマニュアルなどを参照してください。

ただし、上記に記載されていない項目については変更しないでください

6.2. HostInfoSelection.txt の設定

端末からの登録要求が来たときに、その端末をどの「端末構成情報ファイル」に基づいて構成するかを選択するためのルールを記述するファイルです。

この HostInfoSelection.txt ファイルの内容により選択される端末構成情報ファイルには、「どのようなパーティション構成でHDD をフォーマットするか、どの PVS に登録するべきか」といった内容が記載されています。

HostInfoSelection.txt は空行区切りで、

{マッチさせるタイプ}: {マッチさせる文字列}
file: {適用する端末構成情報ファイルの名前}

の形式でルールが繰り返し記載されます(空行を含めた 3 行ずつの繰り返し)。

また、ファイル中の "#" で始まる行はコメントとして扱われます。

「マッチさせるタイプ」には host , dhcp , ip のいずれかを指定できます。

  • host:

    ユーザが入力したホスト名。大文字小文字は区別されません。

  • dhcp:

    端末起動時に利用した DHCP サーバの IP アドレス。DHCPrelay を利用している場合でも Relay サーバではなく DHCP サーバの IP アドレスとなります。

  • ip:

    端末起動時に DHCP サーバから割り当てられた IP アドレス。

「マッチさせる文字列」には、「正規表現」か「完全一致の名前」を記述できます。正規表現を使う場合はスラッシュで囲んでください。そうでない場合は完全一致での比較になります。タイプが Host の場合には、比較は Case insensitive(大文字と小文字を同一視する)で比較されます。

「適用する端末構成情報ファイルの名前」には、「端末構成情報ファイル」のファイル名を記載してください。パス名を含むことはできません。選択される端末構成情報ファイルは C:\ProgramData\CO-CONV\PVSregister\HostInfo の下に置いてください。

HostSelection.txt には上記のフォーマットで複数のルールを記述することができますが、ファイルの先頭に近いルールから順に比較され、より上に書かれたルールが優先されます。どのルールにもマッチしなかった場合は default.xml が選択されたものとみなされます。ただし、下の例のように、

default:
file: {デフォルト設定とする端末構成情報ファイルのファイル名}

のような形式で明示的な指定があれば、別のファイル名をデフォルト値として指定することもできます。

6.2.1. HostInfoSelection.txt の設定例

# クライアントのホスト名がPC123 に完全一致したらfoo.xml を返す
HOST: PC123
file: foo.xml

# クライアントのホスト名が/^pc\d$/ の正規表現(Case Insensitive)
# にマッチしたらbar.xml を返す(ex. pc1, PC3)
HOST: /^pc\d$/
file: bar.xml

# DHCP サーバーのIP アドレスが/^192\./ の正規表現にマッチしたら
# buz.xml を返す(ex. 192.168.1.1)
DHCP: /^192\./
file: buz.xml

# クライアントのIP アドレスが192.168.80 のセグメントで、末尾(第4 オクテット)が奇数の場合には
# hoge.xml を返す(ex 192.168.80.111)
IP: /^192\.168\.80\.\d*[13579]$/
file: hoge.xml

# 上のどの設定にもマッチしなかった場合に適用するファイルを指定
default:
file: nomatch.xml

6.3. servers.txt の設定

複数の DHCP サーバが存在する場合、特定の DHCP サーバーに登録する際に一緒に登録したいサーバーの組を指定する設定ファイルです。

サーバの組を改行区切りで、サーバの IP アドレスをカンマ区切りで書いてください。

複数マッチする場合は上に書かれている設定が優先されます

また、ファイル中の "#" で始まる行はコメントとして扱われます。

6.3.1. servers.txt の設定例

192.168.1.1,   192.168.1.10,  192.168.1.100
192.168.1.2,   192.168.1.3,   192.168.1.4
192.168.80.150,192.168.80.151,192.168.80.152,192.168.80.153

6.4. 端末構成情報ファイルの設定

端末構成情報ファイルは、「どのようなパーティション構成で HDD をフォーマットしどの PVS に登録するべきか」といった内容が記載されるファイルです。 C:\ProgramData\CO-CONV\PVSregister\HostInfo に XML 形式のファイルで置きます。

このファイルは端末からの要求をうけて HostSelection.txt の記述に基づいて選択され、選択されたファイルが端末側に返送されます。

また、このファイルは端末からの「DHCP 登録要求」「PVS 登録要求」の際にも各スクリプトに渡され、登録処理に利用されます。

以下に、端末構成情報ファイルの例(default.xml)の一部を示します。

<Configuration>
  <Disk device="/dev/sda">
    <PartitionExt></PartitionExt>
    <NTSignature>0x1234ABCD</NTSignature>
    <PrimaryPartition1 fs="NTFS" size="20480"/>
    <PrimaryPartition2 fs="FAT32" size="10480"/>
  </Disk>
  <PVSServer>
  <IPAddress>192.168.95.1</IPAddress>
  <Port>54321</Port>
  <SiteName>サイト</SiteName>
  <CollectionName>コレクション</CollectionName>
  <CopyTemplate>1</CopyTemplate>
  <ForceAdd>1</ForceAdd>
  </PVSServer>
</Configuration>

6.4.1. ディスクのパーティション構成に関する設定(Disk 要素)

default.xml を参考に XML 形式でディスク設定と PVS サーバーの設定を記述してください。また、その際ファイルを保存する文字コードと XML で指定している charset が合っているか気をつけてください。Disk 要素は任意の個数を記述することができます。パーティション構成を変更しない場合は省略することができます。

要素名 説明
Disk
要素端末にセットされているディスクの数だけ <Configuration> 要素の子要
素として挿入します。
デバイス名は、通常 SCSI ディスクの場合には /dev/sda 、IDE
ディスクの場合には /dev/hda を指定します。
複数台のディスクが接続されている場合には、複数の Disk 要素を
作成し、それぞれのデバイス名に /dev/sdb , /dev/sdc … と
指定することになります。
PartitionExt
要素デバイス名からパーティション名を作成する際、パーティション番号
の数字の手前に追加すべき文字列を指定します。
例えば、NVMe デバイスの場合には、デバイス名が
/dev/nvme0n1 、パーティション名が /dev/nvme0n1p1 といった
パスとなりますが、この場合には
<PartitionExt>p</PartitionExt> と指定します。
NTSignature
要素NT シグネチャ(4 バイト)を指定します。
CD,AB,34,12 ないしは 0xCD, AB, 34, 0x12 のように記述します。
コンマ区切りで 4 バイトを指定してください。各項目は 0x の有
無にかかわらず 16 進数として解釈されます。
0x1234ABCD のように 32bit を一括して指定するとMBR に対して
mbr[440] = 0xCD;
mbr[441] = 0xAB;
mbr[442] = 0x34;
mbr[443] = 0x12;
のような順序で書き込まれます。
PrimaryPartition
要素この要素で指定された構成でディスクのパーティションが作成され
ます。PrimaryPartition1, PrimaryPartition2 … のように最大 4 つま
で指定できます。
各 Partition には sizefs の属性があります。
size : パーティションのサイズを MB 単位で指定します。最後に作
成するパーティションについては、size=”*” と指定すると、未指定
領域の全てが割り当てられます。例えば 150GB のディスクに対し
て、PrimaryPartition1size=”102400” として、PrimaryPartition2
size=”*” として作成した場合、100GB のパーティションと残り 50GB
のパーティションが作成されます。
"fs": パーティションの種類を指定します。次のうちのいずれかの
文字列を選択するか、パーティション ID を fs=”0xF6” のように 16 進
数で直接指定してください。パーティションID を16 進数で指定した
場合はフォーマット処理は実行されません。
対応するファイルシステム: FAT32 , NTFS , EXT3 , EXT4 ,
SWAP, EFI, MSR, RC (ReadCache 用、キャッシュパーティション)

6.4.2. PVS への登録処理に関する設定(PVSServer 要素)

PVS 登録処理に関する設定を記述します。

PVS への端末の登録処理では、PVS 上に「端末側から渡されたホスト名とMAC アドレスの対」を登録します。登録しようとするホスト名がすでに登録済みであった場合には、そのホストの MAC アドレスを変更します。

PVSServer 要素は任意の個数を記述することができます。PVS サーバへの端末登録を行わない場合は PVSServer 要素を省略することができます。なお、PVSServer 要素が省略されている場合でも、サーバ側でのコマンドの実行(DHCP サーバへの登録など)は行われます。

要素名 説明
IPAddress PVS サーバーの IP アドレスを設定します
Port PVS サーバーに SOAP リクエストを行う場合のポートを設定します。
SiteName PVS サーバーに端末を登録する際の登録先のサイト名を記述します。
CollectionName
PVS サーバーに端末を登録する際のコレクション名を記述します。
SiteName で指定したサイトに属するコレクションである必要があります。
CopyTemplate
上記コレクションにおいて、テンプレート指定された端末から、
ホスト名、MAC アドレス以外の設定項目をコピーするかを設定します。
コピーする場合は 1、しない場合は 0 を入れます。
テンプレート指定が設定されていないときには何もしません。
ForceAdd
PVS サーバに端末を登録しようとした際に、すでに同じ MAC アドレスを
持つ端末が PVS 上に登録されていた場合の挙動について指定します。
0 が指定された際には、エラーとして終了します。
1 が指定されていた際には、既存の同じ MAC をもつ端末を削除した
上で新規に登録をします。

6.4.3. クライアント終了時のデフォルト動作(DefaultActionOnFinish 要素)

クライアント終了時のアクション選択画面において、デフォルトでフォーカスされる項目を選択します。

DefaultActionOnFinish 要素は最大 1 つ記述することができます。省略時は Shutdown を指定したものと解釈されます。

要素名 説明
DefaultActionOnFinish
クライアント終了時のデフォルト動作を以下のいずれかから指定します。
Shutdown ”…シャットダウンします。
DefaultActionOnFinish 要素省略時のデフォルト値です。
Reboot …再起動します。
Nop … シャットダウンや再起動を行わず、X Window System の
デスクトップ画面に戻ります。OS ごとの再起動を行わずに
PVSregister ウィザード画面を再実行したい可能性がある場合に
選択します。