LoginSignup
1
0

More than 5 years have passed since last update.

Java Cloud ServiceにWebLogic マルチテナント・インスタンスをPSM CLIで作成してみた

Last updated at Posted at 2016-09-19

概要

Oracle CloudのCLI(PSM CLI)を利用して、Java Cloud Serviceインスタンスを作成する手順を以前投稿しました。

前回、PSM CLIで作成したJava Cloud Serviceインスタンスは、以下のようなシンプルな構成でした。

wls-domain.png

以前、ブラウザからJava Cloud Serviceインスタンスを作成した際にWebLogic Server 12cR2の新しく導入された構成のドメイン・パーティションを使ったマルチテナント環境を作りました。
- Oracle Java Cloud Serviceインスタンスを作ってみた(WebLogic Server 12cR2 Enterprise Edition)

今回は、同様にマルチテナント環境をPSM CLIを使って作成してみます。
また、前回は指定しなかった構成オプションも合わせて利用してみます。

PSM CLI 使用方法概要

このPSM CLIはマニュアルとして以下に利用方法が記載されています。

基本的なコマンド・シンタックスは以下のようになります。

psm [クラウド・サービス名] [コマンド] (help)

Java Cloud Serviceインスタンス構成ペイロードの作成

以下のようなWebLogicマルチテナント環境を構成するように次のようなペイロードを作成してみました。

  • クラスタメンバ数:2ノード のクラスタ構成
  • ドメイン・パーティション数:2 のマルチテナント構成
  • Traffic Directorを使用するロードバランサ構成

wls-domain-partition.png

  • WLS12cR2-EE-LB.json
WLS12cR2-EE-LB.json
{
    "serviceName" : "WLS12cR2-EE-LB",
    "level" : "PAAS",
    "subscriptionType" : "HOURLY",
    "enableAdminConsole" : true,
    "description" : "WLS12cR2 Enterprise Edition with Traffic Director, configured with Multitenant",
    "provisionOTD" : true,
    "cloudStorageContainer" : "Storage-<IDENTITY DOMAIN名>/Container_JCS",
    "cloudStorageUser" : "<Storage Cloudユーザ>",
    "cloudStoragePassword" : "<Storage Cloudユーザ・パスワード>",
    "createStorageContainerIfMissing" : true,
    "sampleAppDeploymentRequested" : true, 
    "parameters" : [
    {
        "type" : "weblogic",
        "version" : "12.2.1.0.160419",
        "edition" : "EE",
        "domainMode" : "PRODUCTION",
        "managedServerCount" : "2",
        "msInitialHeapMB" : "512",
        "msMaxHeapMB" : "2048",
        "msJvmArgs" : "-XX:+UnlockCommercialFeatures -XX:+ResourceManagement -XX:+UseG1GC",
        "overwriteMsJvmArgs" : false,
        "adminPort" : "7001",
        "deploymentChannelPort" : "9001",
        "securedAdminPort" : "7002",
        "contentPort" : "8001",
        "securedContentPort" : "8002",        
        "domainName" : "WLS12cR2-EE-LB-Domain",
        "clusterName" : "WLS12cR2-EE-LB-Cluster",
        "adminUserName" : "weblogic",
        "adminPassword" : "<WLS管理者パスワード>",
        "nodeManagerPort" : "5556",
        "nodeManagerUserName" : "weblogic",
        "nodeManagerPassword" : "<NodeManager管理者パスワード>",
        "domainPartitionCount" : "4",
        "dbServiceName" : "DB12cHP",
        "dbaName" : "SYS",
        "dbaPassword" : "<DB管理者パスワード>",
        "appDBs": [
        {
            "dbServiceName" : "DB12cHP",
            "dbaName" : "SYS",
            "dbaPassword" : "<DB管理者パスワード>"
        }
        ],
        "shape" : "oc3",
        "domainVolumeSize" : "10G",
        "backupVolumeSize" : "50G",
        "VMsPublicKey" : "<SSH公開鍵テキスト>"
    },
    {
        "type" : "otd",
        "adminUserName" : "weblogic",
        "adminPassword" : "<OTD管理者パスワード>",
        "listenerPortsEnabled" : true,
        "listenerPort" : "8080",
        "listenerType" : "http",
        "loadBalancingPolicy" : "least_connection_count",
        "securedListenerPort" : "8081",
        "adminPort" : "8989",
        "shape" : "oc3",
        "VMsPublicKey" : "<SSH公開鍵テキスト>"
    }
    ]
}

マルチテナント環境(ドメイン・パーティション)の構成定義を行ったのは以下の部分です。
1つのWebLogicドメイン上に、4つのドメイン・パーティションを構成しています。

"domainPartitionCount" : "4"

それ以外は、必須要素ではなくオプション要素です。
設定していない場合は、デフォルト値で置き換えられて構成されます。

以前のJSONの中では、ほとんどのオプション要素は設定していませんでした。
- Java Cloud ServiceのインスタンスをPSM CLIで作成してみた

Java Cloud Serviceインスタンス構成ペイロードの説明

今回作成したペイロードで使用しているパラメータについて説明します。

パラメータ名 内容 必須 デフォルト値
serviceName Java Cloud Serviceのインスタンス名
同一IdentityDomein内でユニークになる名称
-
level サービスレベル
- PAAS: プロダクション・レベル
-> ドメイン・パーティション利用時は必須
- BASIC: 開発レベル
-> 運用ツールなし
- PAAS
subscriptionType 請求タイプ
- HOURLY: 時間課金
- MONTHLY: 月次課金
- HOURLY
shape CPU/メモリのタイプ
- oc3: 1 OCPU, 7.5 GB memory
- oc4: 2 OCPUs, 15 GB memory
- oc5: 4 OCPUs, 30 GB memory
- oc6: 8 OCPUs, 15 GB memory
- oc1m: 1 OCPU, 15 GB memory
- oc2m: 2 OCPUs, 30 GB memory
- oc3m: 4 OCPUs, 60 GB memory
- oc4m: 8 OCPUs, 120 GB memory
-
cloudStorageContainer サービスインスタンスのバックアップ先
Stroage Cloud Serviceを利用
Storage-[IDENTITY-DOMAIN名]/[コンテナ名]
-
cloudStorageUser Storage Cloud Serviceのユーザ名 -
cloudStoragePassword Storage Cloud Serviceのパスワード -
createStorageContainerIfMissing Storage Cloud Service上にコンテナが存在しない場合に作成 - false
type コンポーネント・タイプ
- weblogic
- datagrid
- otd
-
version 製品バージョン
10.3.6
12.1.3
12.2.1
10.3.6ではCohrence構成不可
-
edition 製品エディション
- SE
- EE
- SUITE
- EE
domainMode ドメイン・モード
- PRODUCTION: 本番モード
- DEVELOPMENT: 開発モード
- PRODUCTION
managedServerCount ドメイン内の管理対象サーバの数 - 1
domainPartitionCount ドメイン・パーティションの数 - 0
msInitialHeapMB 初期ヒープサイズ - -
msMaxHeapMB 最大ヒープサイズ - -
msJvmArgs JVM引数 - -
overwriteMsJvmArgs - true: 既存JVM引数を上書き
- false: 既存JVM引数に追加
- -
domainName WebLogicドメイン名 - [serviceName]_domain
clusterName WebLogicクラスタ名 - [serviceName]_cluster
dbServiceName 接続するDatabaseCloudServiceのインスタンス名 -
appDBs アプリケーション用スキーマを定義するDatabase指定 - -
domainVolumeSize ドメイン用ボリュームのストレージ・サイズ - -
backupVolumeSize バックアップ用ボリュームのストレージ・サイズ - -
loadBalancingPolicy ロードバランサのルーティング・ポリシー
-least_connection_count: 最少接続数
- least_response_time: 最少応答時間
- ラウンド・ロビン
- least_connection_count

psm jcs create-service コマンド実施

  • シンタックス
    • psm jcs create-service -c <インスタンス構成ペイロードJSONファイル>
$ psm jcs create-service -c ./WLS12cR2-EE-LB.json
"Accepted"
Job ID : 2201418

psm jcs create-service」を実施すると、バックエンドでインスタンスの作成操作がJob IDが採番され、IDを元に状況確認が行えます。

インスタンス作成操作状況の確認

インスタンス作成操作状況を確認する際に使用するコマンドは、「psm jcs create-service -j [JobID]」です。

実行すると以下のように状況がJSON形式で表示されます。

$ psm jcs operation-status -j 2201418
{
    "activityLogId":1106433,
    "serviceName":"WLS12cR2-EE-LB",
    "serviceType":"jaas",
    "identityDomain":"IDENTITY-DOMAIN",
    "serviceId":59401,
    "jobId":2201418,
    "startDate":"2016-09-18T20:24:42.219+0000",
    "endDate":"2016-09-18T20:50:43.467+0000",
    "status":"SUCCEED",
    "operationId":59401,
    "operationType":"CREATE_SERVICE",
    "summaryMessage":"CREATE_SERVICE",
    "authDomain":"IDENTITY-DOMAIN",
    "authUser":"shinyay",
    "initiatedBy":"USER",
    "messages":[
        {
            "activityDate":"2016-09-18T20:24:42.219+0000",
            "message":"Activity Submitted"
        },
        {
            "activityDate":"2016-09-18T20:24:43.474+0000",
            "message":"Activity Started"
        },
        {
            "activityDate":"2016-09-18T20:24:54.630+0000",
            "message":"Created Compute resources for WebLogic Server..."
        },
        {
            "activityDate":"2016-09-18T20:25:03.766+0000",
            "message":"Created security resources for the service..."
        },
        {
            "activityDate":"2016-09-18T20:34:02.942+0000",
            "message":"Established SSH connectivity to WebLogic Administration Server... Used private side of a public key for [oracle]"
        },
        {
            "activityDate":"2016-09-18T20:34:02.965+0000",
            "message":"Established SSH connectivity to Host(s) [WLS12cR2_server_2] from Administration Server..."
        },
        {
            "activityDate":"2016-09-18T20:39:10.164+0000",
            "message":"Configured Load Balancer..."
        },
        {
            "activityDate":"2016-09-18T20:39:18.335+0000",
            "message":"Updated Load Balancer metadata..."
        },
        {
            "activityDate":"2016-09-18T20:46:23.184+0000",
            "message":"WebLogic Administration Server Configuration completed..."
        },
        {
            "activityDate":"2016-09-18T20:46:23.555+0000",
            "message":"Configuration check for Host [wls12cr2-ee-lb-wls-1] containing WebLogic Managed Server(s) [[WLS12cR2_server_1]] completed..."
        },
        {
            "activityDate":"2016-09-18T20:49:40.696+0000",
            "message":"Configuration check for Host [wls12cr2-ee-lb-wls-2] containing WebLogic Managed Server(s) [[WLS12cR2_server_2]] completed..."
        },
        {
            "activityDate":"2016-09-18T20:49:41.037+0000",
            "message":"WebLogic Managed Servers Configuration completed..."
        },
        {
            "activityDate":"2016-09-18T20:50:12.123+0000",
            "message":"Service Reachabilty Check (SRC) of WebLogic Administration Server completed..."
        },
        {
            "activityDate":"2016-09-18T20:50:20.477+0000",
            "message":"Service Reachabilty Check (SRC) of WebLogic Managed Server(s) [WLS12cR2_server_1, WLS12cR2_server_2] completed..."
        },
        {
            "activityDate":"2016-09-18T20:50:20.774+0000",
            "message":"Successfully provisioned WebLogic Administration Server and 2 Managed Servers..."
        },
        {
            "activityDate":"2016-09-18T20:50:43.467+0000",
            "message":"Activity Ended"
        }
    ]
}

"message":"Activity Ended"と表示されるとインスタンス作成操作は終了です。

作成済みインスタンス一覧の表示

作成済みのインスタンス一覧を確認する際に使用するコマンドは、「psm jcs services」です。

$ psm jcs services
{
    "uri":"https://psm.europe.oraclecloud.com/paas/service/jcs/api/v1.1/instances/IDENTITY-DOMAIN",
    "service_type":"jaas",
    "implementation_version":"1.0",
    "services":[
        {
            "service_name":"WLS12cR2-EE-LB",
            "version":"12cRelease2",
            "wlsVersion":"12.2.1.0.160419",
            "status":"Running",
            "error_status_desc":"",
            "compliance_status":"",
            "compliance_status_desc":"",
            "auto_update":"true",
            "description":"WLS12cR2 Enterprise Edition with Traffic Director, configured with Multitenant",
            "identity_domain":"IDENTITY-DOMAIN",
            "creation_time":"2016-09-18T20:24:41.464+0000",
            "last_modified_time":"2016-09-18T20:24:40.004+0000",
            "created_by":"shinyay",
            "service_uri":"https://psm.europe.oraclecloud.com/paas/service/jcs/api/v1.1/instances/IDENTITY-DOMAIN/WLS12cR2-EE-LB"
        }
    ]
}

このように、psm jcs create-serviceコマンドで作成したJava Cloud Serviceインスタンスが表示されています。

まとめ

マルチテナント構成もブラウザUI同様にPSM CLIから作成する事ができました。
また、今回はJVM引数のようなブラウザUIからのインスタンス作成時には設定できないパラメータもPSM CLIで設定を行いました。

このようにPSM CLIでインスタンスを作成するためのインスタンス構成ペイロードを複数用意しておくと、同じ環境を作り直すことも簡単に行えるし、またパラメータ変更によるカスタマイズも手間なくできます。

状況や要件に応じてPSM CLIとブラウザUIを使い分けてJava Cloud ServiceやDatabase Cloud Serviceのインスタンスを作成するとよさそうです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0