# cd $SDKTOP/src/roll # cp -r template myroll # cd myroll # ls graphs/ Makefile nodes/ RPMS/ src/ SRPMS/ version.mk # cat version.mk RELEASE = 0 COLOR = @color@ REDHAT.ROOT = $(PWD)
飯坂剛一
Version:4.3
Release: Oct 2007
Copyright 2007
templateロールはRocks-SDKに付属するNPACI Rocksのロール開発のための テンプレートとなるロールです。
このユーザガイドではフロントエンドノードに package-one とpacake-twoが、 計算ノードには package-two と package-three が イストールされるようなロールを例にして、具体的に説明してゆきます。
このtemplateロールを別のディレクトリ名でコピーします。
SDKTOPは便宜上 Rocks-SDK のトップディレクトリがセット されているものとして説明します。
# cd $SDKTOP/src/roll # cp -r template myroll # cd myroll # ls graphs/ Makefile nodes/ RPMS/ src/ SRPMS/ version.mk # cat version.mk RELEASE = 0 COLOR = @color@ REDHAT.ROOT = $(PWD)
|
|
COLORについて
COLORにはWEBブラウザで参照できる色を指定します。 以下のURLが参考になります。 Web色見本 原色大辞典 http://www.colordic.org/ |
NAMEを指示しなければロールのディレクトリ名が代用されます。
既にRPMパッケージがあればRPMS/<ARCH>のディレクトリへコピーします。
アーキテクチャの依存しないパッケージはnoarchにコピーします。
cp package-one-1.0-1.noarch.rpm RPMS/noarch cp package-two-1.0-1.noarch.rpm RPMS/noarch cp package-three-1.0-1.noarch.rpm RPMS/noarch
アーキテクチャ依存のパッケージは i386,x86_64のぞれぞれにコピーします。
cp package-four-1.0-1.x86_64.rpm RPMS/x86_64
また、SRPMパッケージがあればSRPMSへもコピーしておきます。
cp package-one-1.0-1.src.rpm SRPMS cp package-two-1.0-1.src.rpm SRPMS cp package-three-1.0-1.src.rpm SRPMS
graphを作成するときにXMLファイル名は、他のgraphと競合しない名前にします。 rocks-sdk ではNPACI Rocks-4.3 のgraphとnodesを別に保持していますので、 必要に応じて参照することができます。
# ls /usr/local/share/rocks-sdk/profiles
export/ graphs/ include/ Makefile nodes/ rpms/
# ls /usr/local/share/rocks-sdk/profiles/graphs/default
area51.xml base.xml ganglia.xml hpc.xml pvfs2.xml sge.xml
base-rsh.xml bio.xml grid.xml java.xml root.xml web-server.xml
# ls /usr/local/share/rocks-sdk/profiles/nodes
411-client.xml logrotate.xml
411-server.xml mail-client.xml
411.xml mail-server.xml
:
:
ここでは、template.xml とします。
表1. インストール先による区分
| パッケージ名 | 区分 |
|---|---|
| package-one | フロントエンドノードだけに入る |
| package-two | フロントエンドノードと計算ノードの両方に入る |
| package-three | 計算ノードだけに入る |
それぞれのパッケージのインストール対象に応じて つぎのように定義します。
<?xml version="1.0" standalone="no"?>
<graph roll="myroll">
<changelog>
2007/10/06 02:01:00 iisaka
initial release
</changelog>
<edge name="base">
<to>template-base</to>
</edge>
<edge name="server">
<to>template-server</to>
</edge>
<edge name="client">
<to>template-client</to>
</edge>
</graph>
ここで、template-base, template-server, template-client はこれから 作成するmyrollロールのnodesになります。
フロントエンドノードにだけ適用される template-server.xml の例です。
<?xml version="1.0" standalone="no"?>
<kickstart>
<description>
install and setup for frontend end nodes
</description>
<copyright>
Copyright(c) 2007: GNU Public License
</copyright>
<package>package-one</package>
<post>
</post>
</kickstart>
XMLファイルのタグのペアに不整合がないかチェックしておきます。
make xmllint
ここでエラーが出力されるようであれば、 該当ファイルを修正します。
|
|
GRAPHとNODES
GRAPHとNODESの詳細は Reference Guide を参照してください。 NPACI Rocks Reference Guide: http://www.rocksclusters.org/rocks-documentation/reference-guide/4.3/ |
src/userguide 以下の index.txt.in を適宜修正して myroll のユーザガイドを作成します。
ユーザガイドの記述には asciidoc を使って、 簡単な書式でHTMLに変換することができるようにしています。
|
|
実は、index.txt.in は、このユーザガイドのソースそのものです。 |
このとき次のように実行するとfirefox でプレビューすることができます。
make preview
以後ファイルの修正を行なった場合は、 単に make html として、firefox でリロードすると 修正内容を確認することができます。
make html
最後に次の手順でロールのISOイメージを作成することができます。
cd $SDKTOP/src/roll/myroll make rpm make roll
x86_64マシンでも次のようにすることで i386用のロールを作成することができます。
cd $SDKTOP/src/roll/myroll make ARCH=i386 rpm make ARCH=i386 roll
RPMSディレクトリ以下のパッケージはロール作成時につぎのように集められます。
i386 と noarch
x86_64 と noarch
rocks-sdk では次のような操作をmakeコマンドから実行できるようにしています。
cd $SDKTOP/src/roll/myroll
# make help
make help -- This message
make roll -- Buid roll
make copyroll -- Copy roll into mirror
make delete-roll -- Delete roll from mirror
make enable-roll -- Enable roll
make disable-roll -- Enable roll
make backup-roll -- Backup roll and source
make backup-iso -- Backup roll (iso only)
make upload -- Upload roll to RollServer
make xmllint -- check xml files