File deployment by Sun N1 Service Provisioning System CLI

今回は CLI でファイルを配備してみますね。

基本的にはブラウザ上で行ったことをそのまま CLI で実行してしまえばいいわけです。

コンポーネントを作成する - cdb.rsrc.ci

次のコマンドでコンポーネントを作成しましょう。TestComponent2 と名付けました。-src でファイル名を指定しています。
-type では system#file を指定しています。

# ./cr_cli -cmd cdb.rsrc.ci -dst TestComponent2 \\
        -src /etc/nsswitch.conf \\
        -type system#file \\
        -desc "test component for CLI" \\
        -u admin -p admin

コンポーネントを見てみる - cdb.c.co

ちゃんと作成されたかどうか TestComponent2 の中身を見てみましょう。次のコマンドで見ることができます。XML で定義されているんですね。

# ./cr_cli -cmd cdb.c.co -comp NM:TestComponent2 \\
        -u admin -p admin
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by N1 SPS -->
<component xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
  name='TestComponent2' version='5.1' description='test component for CLI'
  xsi:schemaLocation='http://www.sun.com/schema/SPS component.xsd'
  xmlns='http://www.sun.com/schema/SPS'>
        <extends>
                <type name='system#file'></type>
        </extends>
        <varList>
                <var name='installName' default='nsswitch.conf'></var>
        </varList>
        <resourceRef>
                <resource name='/TestComponent2' version='1.0'></resource>
        </resourceRef>
</component>
#

コンポーネントの一覧を表示する - cdb.c.la

このシステムにはどのような他のコンポーネントがあるでしょうか、リストしてみましょう。ブラウザで作成した TestComponent も表示されていることがわかりますね。

# ./cr_cli -cmd cdb.c.la -u admin -p admin
|---------------------------------------------|---------------|-----|----------|
|ID                                           |Name           |Version|Label     |
|---------------------------------------------|---------------|-----|----------|
|129158028152-1130558652676-01188-1717322651  |/TestComponent |1.0  |          |
|129158028152-1130734168334-01670-0577064252  |/TestComponent2|1.0  |          |
|129158028152-1124850787227-00355-1157587912  |/system/Core Services SS|2.0  |          |
|129158028152-1124850771469-00343-0775963935  |/system/CR Simple Base CT|1.1  |          |
|129158028152-1124850774858-00345-1770043212  |/system/DIRECTORY CT|1.1  |          |
|129158028152-1124850773323-00344-1134805142  |/system/FILE CT|1.1  |          |
|129158028152-1124850781474-00350-1104700840  |/system/Generic Container CT|1.1  |          |
|129158028152-1124850785498-00354-1361222937  |/system/plugin-core.jar|2.0  |          |
|129158028152-1124850782525-00351-0167805567  |/system/Symlink CT|1.1  |          |
|129158028152-1124850761635-00330-0250646304  |/system/System Service SS|1.0  |          |
|---------------------------------------------|---------------|-----|----------|
# 

変数セットを作成する - cdb.vs.add

さて前回ブラウザ上で行った変数を作ってみます。cdb.vs.add を使って -vars で変数を指定します。

# ./cr_cli -cmd cdb.vs.add -comp NM:TestComponent2 \\
        -name MyVal2 \\
        -vars "installPath=/tmp/cli/" \\
        -u admin -p admin
ID: 129158028152-1130734298884-01675-0763128639
Name: MyVal2
Component:
 |---------------------------------------------|---------------|-----|----------|
 |ID                                           |Name           |Version|Label     |
 |---------------------------------------------|---------------|-----|----------|
 |129158028152-1130734168334-01670-0577064252  |/TestComponent2|1.0  |          |
 |---------------------------------------------|---------------|-----|----------|
Variables:
 |------------------------|------------------|------------------|------------------|----------|
 |Variable Name           |Variable Prompt   |Default Value     |Override Value    |Read-Only |
 |------------------------|------------------|------------------|------------------|----------|
 |installName             |                  |nsswitch.conf     |nsswitch.conf\*    |false     |
 |installPath             |                  |:[container:installPath]|/tmp/cli/         |false     |
 |installUser             |                  |                  |\*                 |false     |
 |installGroup            |                  |                  |\*                 |false     |
 |installPermissions      |                  |                  |\*                 |false     |
 |installDeployMode       |                  |REPLACE           |REPLACE\*          |true      |
 |installDiffDeploy       |                  |TRUE              |TRUE\*             |false     |
 |overrideRsrcInstallPath |                  |                  |\*                 |false     |
 |------------------------|------------------|------------------|------------------|----------|
# 

プランを作成する - pdb.p.genplan

ブラウザで行った時は install のところの run リンクをクリックしただけでよかったのですが CLI で行うときはひと工夫必要です。

  1. コンポーネントからプランを生成する
  2. プランのパスを変えてチェックインする
の手順が必要となります。

まずはコンポーネントからプランを作成してみましょう。XML で出力されます。

# ./cr_cli -cmd pdb.p.genplan -componentID NM:TestComponent2 \\
        -pt install -pn default \\
        -u admin -p admin
<?xml version="1.0" encoding="UTF-8"?>
<!-- generated by N1 SPS -->
<executionPlan xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
  name='TestComponent2-1130734398230' version='5.1'
  xsi:schemaLocation='http://www.sun.com/schema/SPS plan.xsd'
  xmlns='http://www.sun.com/schema/SPS' path='/system/autogen'>
        <simpleSteps>
                <install blockName='default'>
                        <component name='TestComponent2' path='/' version='1.0'></component>
                </install>
        </simpleSteps>
</executionPlan>
# 

これがプランの実体なのですが一カ所 path='/system/autogen' という箇所はシステムに使うパスなので
このままだとプランとしてチェックインできません。ここを path='/' に変更して XML ファイルに保存
します。保存した XML ファイルをチェックインします。

プランをチェックインする - pdb.p.ci

/tmp/1.xml として保存してあったプランをチェックインします。

# ./cr_cli -cmd pdb.p.ci -path /tmp/1.xml -u admin -p admin
ID: 129158028152-1130734484294-01682-0291829572
Name: /TestComponent2-1130734452260
Version: 1.0
Description: 
Checkin Date: 10/31/2005 13:54
Checked In By:
 |---------------------------------------------|---------------|
 |ID                                           |Username       |
 |---------------------------------------------|---------------|
 |010010001024-0000000000000-00001-0000000001  |admin          |
 |---------------------------------------------|---------------|
Number Of Steps: 1
Category: un-categorized
Hidden: false
# 

さて準備完了です。実行してみましょう。

プランを実行する - pe.p.run

ここではプランIDを指定します。プランIDとはどこでしょう…一つ前の手順でプランをチェックインしたときに ID と
表示されている 129158028152-1130734484294-01682-0291829572 を指定します。

ターゲット(対象マシン)は host3 です。変数セットは MyVal2 です。

# ./cr_cli -cmd pe.p.run -PID 129158028152-1130734484294-01682-0291829572 \\
        -tar H:NM:host3 \\
         -comp + -vs MyVal2 \\
        -pto 30 -nto 10 \\
        -u admin -p admin
129158028152-1130734672754-01687-0934762640
# 

実行状況を見てみましょう。ここでは 129158028152-1130734672754-01687-0934762640 を指定して、
pe.p.lo で見ればよかったですよね。

#  ./cr_cli -cmd pe.p.lo -ID 129158028152-1130734672754-01687-0934762640 -u admin -p admin
10/31/2005 13:57 Plan/Preflight Started:
 Plan:
  |---------------------------------------------|---------------|-------|
  |ID                                           |Name           |Version|
  |---------------------------------------------|---------------|-------|
  |129158028152-1130734484294-01682-0291829572  |/TestComponent2-1130734452260|1.0    |
  |---------------------------------------------|---------------|-------|
 Is Preflight Only: false
 Plan Runner User:
  |---------------------------------------------|---------------|
  |ID                                           |Username       |
  |---------------------------------------------|---------------|
  |010010001024-0000000000000-00001-0000000001  |admin          |
  |---------------------------------------------|---------------|
10/31/2005 13:57 Step Started: preflight
...
10/31/2005 13:57 Plan/Preflight Completed
# 

無事に完了したことがわかります。

このように N1 Service Provisioning System では強力な CLI が用意されています。是非使ってみて下さい。
CLI の詳細は


を参考にしてください。
Comments:

Post a Comment:
Comments are closed for this entry.
About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today