2009年 4月 22日 水曜日
やっぱり Sun がスキ!
SJSMS - Solaris 10 の SMF に登録しよう
今回は久しぶり(なんと半年振り!)に Messaging Server ネタです。
以前のブログ記事(その 1,その 2)でインストールしてみた Messaging Server 関連コンポーネントを Solaris 10 の
SMF に登録して、自動起動の設定をしてみましょう。
前回インストールした関連コンポーネントは以下の通りです。
- Directory Server 6.3
- Messaging Server 7.0
- Application Server 9.1
- Access Manager 7.1
- Delegated Administrator 6.4
- Sun Convergence 1.0
上記コンポーネントの中で、Access Manager, Delegated Administrator, Sun Convergence は、Application Server 9.1
上に配備されておりますので、SMF に登録して自動起動の設定をする必要があるコンポーネントは以下
の 3 つになります。
- Directory Server 6.3
- Messaging Server 7.0
- Application Server 9.1
では、順番に、SMF に登録していきましょう。
目次
Directory Server 6.3 を SMF に登録
実は、Directory Server 6.3 の提供方法は、パッケージ版と ZIP アーカイブ版の 2 種類があり、
インストール・設定に若干の差異があります。
パッケージ版の Directory Server では、dsadm コマンドから SMF にサービスを登録する方法が
あるのですが、ZIP アーカイブ版では、dsadm コマンドから SMF にサービスを登録する事が出来ません。
※ パッケージ版のためのご参考
以前のブログ記事で紹介したインストール手順では、ZIP アーカイブ版の Directory Server を
使用しているので、dsadm enable-service コマンドが使えません。
そこで今回は、/opt/SUNWdsee/ds6/install 配下に用意されているテンプレートファイルを
使って、SMF に登録します。
sw-89# pwd
/opt/SUNWdsee/ds6/install
sw-89# cp tmpl_smf.manifest ds6_for_ms7_smf.manifest
※ あらかじめ、template ファイルをコピーします。
sw-89# vi ds6_for_ms7_smf.manifest
※ manifest ファイルを下記 diff に示される様に編集します。
※ 具体的には、"%%%DATE_CREATED%%%", "%%%INSTALL_PATH%%%"
※ "%{sunds/path}", "%%%TIMEOUT_SECONDS%%%" を適宜編集します。
sw-89# diff ds6_for_ms7_smf.manifest tmpl_smf.manifest
6c6
< Created on : 2009/04/16
---
> Created on : %%%DATE_CREATED%%%
24,25c24,25
< exec="/opt/SUNWdsee/ds6/bin/dsadm start --exec /var/opt/SUNWdsee/dsins1"
< timeout_seconds="600">
---
> exec="%%%INSTALL_PATH%%%/bin/dsadm start --exec %{sunds/path}"
> timeout_seconds="%%%TIMEOUT_SECONDS%%%">
35,36c35,36
< exec="/opt/SUNWdsee/ds6/bin/dsadm stop --exec /var/opt/SUNWdsee/dsins1"
< timeout_seconds="600">
---
> exec="%%%INSTALL_PATH%%%/bin/dsadm stop --exec %{sunds/path}"
> timeout_seconds="%%%TIMEOUT_SECONDS%%%">
sw-89#
sw-89# cat ds6_for_ms7_smf.manifest
<?xml version='1.0'?>
<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
<!--
Document : ds6-service.xml
Created on : 2009/04/16
Author : Directory Server Enterprise Edition Team
Description: The SMF Service Manifest file for Directory Server 6
-->
<service_bundle type="manifest"
name="SUNWldap-directory services">
<service name="application/sun/ds" type="service" version="1">
<dependency name="filesystems" grouping="require_all"
restart_on="none" type="service">
<service_fmri value="svc:/system/filesystem/local:default"/>
</dependency>
<dependency name="network" grouping="require_all"
restart_on="none" type="service">
<service_fmri value="svc:/network/initial:default"/>
</dependency>
<exec_method type="method"
name="start"
exec="/opt/SUNWdsee/ds6/bin/dsadm start --exec /var/opt/SUNWdsee/dsins1"
timeout_seconds="600">
<method_context working_directory=":default">
<method_credential user="root"
group=":default"
privileges=":default"/>
</method_context>
<stability value="Evolving"/>
</exec_method>
<exec_method type="method"
name="stop"
exec="/opt/SUNWdsee/ds6/bin/dsadm stop --exec /var/opt/SUNWdsee/dsins1"
timeout_seconds="600">
<method_context working_directory=":default">
<method_credential user="root"
group=":default"
privileges=":default"/>
</method_context>
<stability value="Evolving"/>
</exec_method>
<instance name="default" enabled="false"/>
<stability value="Evolving"/>
<template>
<common_name>
<loctext xml:lang="C"> Directory Server </loctext>
</common_name>
<documentation>
<doc_link name="Directory Server Enterprise Edition 6 Administration Guide" uri="http://docs.sun.com/doc/819-0995/"/>
</documentation>
</template>
</service>
</service_bundle>
sw-89#
sw-89# svccfg import ./ds6_for_ms7_smf.manifest
※ 上記で作成した manifest ファイルを svccfg コマンドにて import します。
sw-89# svcs ds
STATE STIME FMRI
disabled 14:52:43 svc:/application/sun/ds:default
※ svc:/application/sun/ds:default が追加されている事を確認します。
sw-89# svcadm enable ds
※ svc:/application/sun/ds:default サービスをスタートします。
sw-89# ps -ef | grep slapd
root 13460 8891 0 14:54:59 ? 0:01 /opt/SUNWdsee/ds6/lib/64/ns-slapd -D /var/opt/SUNWdsee/dsins1 -i /var/opt/SUNWd
root 13463 9868 0 14:55:01 pts/3 0:00 grep slapd
sw-89#
※ ns-slapd (Directory Server のプロセス) が起動している事が確認出来ます。
sw-89# svcs ds
STATE STIME FMRI
online 14:55:02 svc:/application/sun/ds:default
sw-89#
※ svc:/application/sun/ds:default サービスも online になっている事が確認出来ます。
sw-89# svcadm disable ds
※ svc:/application/sun/ds:default サービスを停止します。
sw-89# svcadm disable ds
sw-89# svcs ds
STATE STIME FMRI
online* 14:57:23 svc:/application/sun/ds:default
sw-89# svcs ds
STATE STIME FMRI
disabled 14:57:27 svc:/application/sun/ds:default
sw-89#
※ svc:/application/sun/ds:default サービスが停止された事が確認出来ます。
sw-89# svcadm enable ds
sw-89# svcs ds
STATE STIME FMRI
offline* 14:58:12 svc:/application/sun/ds:default
sw-89# svcs ds
STATE STIME FMRI
online 14:58:19 svc:/application/sun/ds:default
sw-89#
※ 最後に svc:/application/sun/ds:default サービスを起動させておきます。
以上で、Directory Server の SMF の登録が完了しました。
Messaging Server 7.0 を SMF に登録
次に Messaging Server を SMF に登録しましょう。
Messaging Server の登録方法も Directory Server と同様テンプレートファイル
を利用して SMF に登録します。
sw-89# pwd /opt/sun/comms/messaging64/data/install sw-89# ls pab.ldif schema2ug_store.ldif schema2usergroup.ldif.rej restofmessaging.xml schema2usergroup.ldif watcher.xml sw-89#
まずこの場所に messaging.xml ファイルが存在するか確認してください。
messaging.xml が存在する場合は下記の手順(messaging.xml の作成・msgexe の編集)を
省略してください。
※ 当初提供されていた restofmessaging.xml, watcher.xml を利用する方法では
※ ただしく動作しない問題が見つかっております。
※ その問題の回避のため、messaging.xml の作成・msgexe の編集を行ないます。
sw-89# pwd /opt/sun/comms/messaging64/lib sw-89# cp msgexe msgexe.orig ※ SMF から利用する起動・停止スクリプトのバックアップを作成します。 sw-89# vi msgexe ※ msgexe を下記に示される様に編集します。 ※ 具体的には、start-msg, stop-msg の引数($2) を削除、 ※ refresh 時のコマンドを refresh コマンドに変更します。 sw-89# cat msgexe #!/sbin/sh ## Copy/Rename this script to //lib/ ## Please change $REPOS to the location of your SVN Repo . /lib/svc/share/smf_include.sh parser() { PROPERTY=$1 # VALUE=`svcprop -p ${PROPERTY} watcher` VALUE=`svcprop -p ${PROPERTY} messaging_server` if [ "${VALUE}" = "\"\"" ] ; then VALUE= fi echo $VALUE } MESSAGING_BASE=`parser application/messaging_server_base` if [ -z "${MESSAGING_BASE}" ] ; then exit $SMF_EXIT_ERR_CONFIG fi case $1 in 'start') # ${MESSAGING_BASE}/bin/start-msg $2 ${MESSAGING_BASE}/bin/start-msg if [ $? -ne 0 ] ; then exit $SMF_EXIT_ERR_FATAL fi exit $SMF_EXIT_OK ;; 'stop') # ${MESSAGING_BASE}/bin/stop-msg $2 ${MESSAGING_BASE}/bin/stop-msg if [ $? -ne 0 ] ; then exit $SMF_EXIT_ERR_FATAL fi exit $SMF_EXIT_OK ;; 'refresh') # ${MESSAGING_BASE}/bin/stop-msg $2 # sleep 5 # ${MESSAGING_BASE}/bin/start-msg $2 ${MESSAGING_BASE}/bin/refresh if [ $? -ne 0 ] ; then exit $SMF_EXIT_ERR_FATAL fi exit $SMF_EXIT_OK ;; *) echo "Usage: $0 { start | stop | refresh }" exit $SMF_EXIT_ERR_FATAL ;; esac sw-89# sw-89# cd /opt/sun/comms/messaging64/data/install sw-89# cp restofmessaging.xml messaging.xml ※ restofmessaging.xml を messaging.xml にコピーします。 sw-89# vi messaging.xml ※ messaging.xml ファイルを下記に示される様に編集します。 ※ 具体的には、dependency name='watcher' 部分をコメントアウト、 ※ dependency name='DirectoryServer' を追加します。 ※ 尚、dependency name='DirectoryServer' は、Directory Server ※ を別サーバにインストールしている場合は、不要です。 sw-89# cat messaging.xml <?xml version="1.0"?> <!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"> <!-- Sun Java Enterprise System Messaging Server 7.0 ( Cascabel ) --> <service_bundle type='manifest' name='messaging_server'> <service name='network/messaging_server' type='service' version='1'> <create_default_instance enabled='false' /> <single_instance /> <dependency name='network-service' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/network/service' /> </dependency> <dependency name='fs-local' grouping='require_all' restart_on='none' type='service'> <service_fmri value='svc:/system/filesystem/local' /> </dependency> <dependency name='name-services' grouping='require_all' restart_on='refresh' type='service'> <service_fmri value='svc:/milestone/name-services' /> </dependency> <dependency name='identity' grouping='optional_all' restart_on='refresh' type='service'> <service_fmri value='svc:/system/identity:domain' /> </dependency> <!-- <dependency name='watcher' grouping='require_all' restart_on='refresh' type='service'> <service_fmri value='svc:/network/watcher' /> </dependency> --> <dependency name='DirectoryServer' grouping='require_all' restart_on='refresh' type='service'> <service_fmri value='svc:/application/sun/ds:default' /> </dependency> <exec_method type='method' name='start' exec='/opt/sun/comms/messaging64/lib/msgexe start' timeout_seconds='180' > </exec_method> <exec_method type='method' name='stop' exec='/opt/sun/comms/messaging64/lib/msgexe stop' timeout_seconds='180' > </exec_method> <exec_method type='method' name='refresh' exec='/opt/sun/comms/messaging64/lib/msgexe refresh' timeout_seconds='180' > </exec_method> <property_group name='application' type='framework'> <propval name='messaging_server_base' type='astring' value='/opt/sun/comms/messaging64' /> </property_group> <property_group name='startd' type='framework'> <propval name='ignore_error' type='astring' value='core,signal' /> </property_group> <stability value='Unstable' /> </service> </service_bundle> sw-89#
messaging.xml ファイルがあった場合もここから先は実行してください。
sw-89# svccfg import ./messaging.xml ※ messaging.xml ファイルが出来たら、svccfg コマンドにて import します。 sw-89# svcs network/messaging_server STATE STIME FMRI disabled 15:12:37 svc:/network/messaging_server:default sw-89# ※ svc:/network/messaging_server:default が追加されている事を確認します。 sw-89# svcadm enable messaging_server ※ svc:/network/messaging_server:default サービスをスタートします。 sw-89# svcs messaging_server STATE STIME FMRI offline* 15:23:08 svc:/network/messaging_server:default sw-89# svcs messaging_server STATE STIME FMRI online 15:23:16 svc:/network/messaging_server:default sw-89# ※ svc:/network/messaging_server:default サービスが online になっている事が確認出来ます。
以上で、Messaging Server の SMF の登録が完了しました。
Application Server 9.1 を SMF に登録
最後に Application Server を SMF に登録しましょう。
Application Server は、テンプレートファイルの利用では無く、asadmin コマンドにて SMF に
登録出来ます。
sw-89# cat /.passwordfile AS_ADMIN_USER=admin AS_ADMIN_PASSWORD=<admin ユーザの実際のパスワードを記載して下さい。> AS_ADMIN_MASTERPASSWORD=<マスターパスワードを記載して下さい。> sw-89# ※ 自動起動用の password ファイルを作成します。 sw-89# /opt/SUNWappserver/bin/asadmin create-service --type das --passwordfile /.passwordfile /opt/SUNWappserver/domains/domain1 サービスが正常に作成されました。詳細は次のとおりです: サービスの名前:application/SUNWappserver/domain1 サービスのタイプ:Domain サービスの設定場所:/opt/SUNWappserver/domains システム上のマニフェストファイルの場所:/var/svc/manifest/application/SUNWappserver/domain1_opt_SUNWappserver_domains/Domain-service-smf.xml このサービスは svcadm コマンドを使用して有効にできます。 コマンド create-service は正常に実行されました。 sw-89# ※ asadmin create-service コマンドにて、SMF に登録します。 sw-89# svcs domain1 STATE STIME FMRI disabled 15:50:17 svc:/application/SUNWappserver/domain1:default sw-89# ※ svc:/application/SUNWappserver/domain1:default が登録されている事が確認出来ます。 sw-89# svcadm enable domain1 ※ svc:/application/SUNWappserver/domain1:default サービスを起動します。 sw-89# svcs domain1 STATE STIME FMRI offline* 15:50:38 svc:/application/SUNWappserver/domain1:default sw-89# svcs domain1 STATE STIME FMRI offline* 15:50:38 svc:/application/SUNWappserver/domain1:default sw-89# svcs domain1 STATE STIME FMRI online 15:52:34 svc:/application/SUNWappserver/domain1:default sw-89# ※ svc:/application/SUNWappserver/domain1:default サービスが online になっている事が確認出来ます。
以上で、前回インストールした Messaging Server 関連コンポーネントが Solaris の
SMF に登録され、OS 起動時に自動起動されるように設定されました。
sw-89# svcs ds messaging_server domain1 STATE STIME FMRI online 14:58:19 svc:/application/sun/ds:default online 15:23:16 svc:/network/messaging_server:default online 15:52:34 svc:/application/SUNWappserver/domain1:default sw-89#
- Directory Server インスタンスを作成する
- Using Service Management Framework with Messaging Server
- 付録 A ドメインまたはノードエージェントの自動再起動
Posted at 04:00午後 4 22, 2009 by Masayuki Imai in Sun | 投稿されたコメント[0]