概要
Oracle CloudのCLI(PSM CLI)を利用して、Java Cloud Serviceインスタンスを作成する手順を以前投稿しました。
-
以下、前提
前回、PSM CLIで作成したJava Cloud Serviceインスタンスは、以下のようなシンプルな構成でした。
以前、ブラウザから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を使用するロードバランサ構成
- 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のインスタンスを作成するとよさそうです。