template roll

飯坂剛一

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)
Note
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の作成

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になります。

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

ここでエラーが出力されるようであれば、 該当ファイルを修正します。

Tip
GRAPHとNODES

GRAPHとNODESの詳細は Reference Guide を参照してください。

ユーザガイドの作成

src/userguide 以下の index.txt.in を適宜修正して myroll のユーザガイドを作成します。

ユーザガイドの記述には asciidoc を使って、 簡単な書式でHTMLに変換することができるようにしています。

Note 実は、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ディレクトリ以下のパッケージはロール作成時につぎのように集められます。

ARCH=i386
  • i386 と noarch

ARCH=x86_64
  • 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