# 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