説明
PaaS Service Manager Command Line Interface (PSM CLI) は、Oracle Cloud をコマンドラインから操作するための CLI ツール です。
以前、この PSM CLI を使って Database Cloud Service や、Java Cloud Service を作成を行いました。
この時に作成を行った環境(リージョン)は海外のデータセンター(ヨーロッパやアメリカ)でした。当時(2016年)には、まだ国内データセンターが作られていなかったので海外のデータセンターを使用していました。
その後、2017年の3月から日本国内にデータセンターが作られているので、今回は国内データセンターを利用して PSM CLI を利用してみたいと思います。
※
後述していますが、2018/1/8 時点では、アメリカやヨーロッパのデータセンターのようには行えなかったので簡単な改造を行っています。
前提
- Oracle Cloud 東日本リージョン を利用可能なアカウントを持っている事
- トライアルアカウント 可
-
以下のツールが利用できる CLI 環境がある事
-
PSM CLI をインストールしている事
- インストール方法は以下の記事、またはマニュアルを見てください
手順
1. 従来通りに psm setup
PSM CLI の初期設定(ユーザ・パスワードの設定や、リージョンの指定)は、psm setup コマンドで実施します。
1.1. 入力項目
入力項目 | 入力値 |
---|---|
Username | Oracle Cloud アカウント ID |
Password | Oracle Cloud アカウント Password |
Identtity domain | 使用している環境のアイデンティドメイン名 |
Region | jpcom 日本リージョンは jpcom アメリカ:us ヨーロッパ:emea |
1.2. psm setup
コマンド実施
psm setup コマンドを実行すると以下のようになります。
$ psm setup
Username: shinyay
Password: ********
Retype Password: ********
Identity domain: shinyaydomain
Region [us]: jpcom
Invalid region. Valid values are [us, emea, aucom]. Please re-enter valid value for 'Region [us]'.
リージョンで jpcom を入力すると、有効ではないとエラーになってしまいます。
2018/1/8 時点で PSMCLI ツールでデフォルトで有効なリージョンは、「us」「emea」「aucom」となっているようです。
2. PSM CLI ツールの改造
コマンド引数のバリデーションチェックで jpcom が弾かれているだけのようなので、jpcom が有効なリージョンとなるように PSM CLI ツールを改造してみたいと思います。
2.1. site-packages ディレクトリの確認
PSM CLI ツールは、pip を使ってインストールしていました。
そのため、この PSM CLI モジュールは、${Pythonインストールディレクトリ}/site-packages に配置されています。
それぞれの環境で site-packages ディレクトリを確認してみてください。
ちなみに私の環境では次のようになっています。
- Windows 環境
C:\msys2\usr\lib\python3.4\site-packages
- Mac 環境
/usr/local/lib/python3.6/site-packages
2.2. supported-regions.json の編集
site-packages が確認できたら、配下のディレクトリ opaascli を開きます。
その中に supported-regions.json が見つかると思います。
これを開いてみます。
{
"defaultURI":"https://psm.region.oraclecloud.com",
"regions" : {
"us" : "us",
"emea" : "europe",
"aucom" : "aucom"
}
}
JSON 形式でリージョンが記載されている事が確認できます。
ここに jpcom を追加して、以下のように編集します。
{
"defaultURI":"https://psm.region.oraclecloud.com",
"regions" : {
"us" : "us",
"emea" : "europe",
"aucom" : "aucom",
"jpcom" : "jpcom"
}
}
3. psm setup コマンドのリトライ
jpcom リージョンを追加したので、psm setup コマンドを再度実行してみます。
$ psm setup
Username: shinyay
Password: ********
Retype Password: ********
Identity domain: shinyaydomain
Region [us]: jpcom
Output format [short]:
----------------------------------------------------
'psm setup' was successful. Available services are:
o ANALYTICS : Oracle Analytics Cloud
o APICS : Oracle API Platform Cloud Service
o BDCSCE : Oracle Big Data Cloud
o BigDataAppliance : Oracle Big Data Cloud Service
o CONTAINER : Oracle Container Cloud Service
o IDCSControlPlane : Oracle Identity Cloud Service
o IOTAssetMon : Oracle IoT Asset Monitoring Cloud Service
o IOTConnectedWrker : Oracle IoT Connected Worker Cloud Service
o IOTEnterpriseApps : Oracle Internet of Things Cloud - Enterprise
o IOTFleetMon : Oracle IoT Fleet Monitoring Cloud Service
o IOTProdMonitoring : Oracle IoT Production Monitoring Cloud Service
o IOTSvcAsset : Oracle IoT Asset Monitoring CX Cloud Service
o jcs : Oracle Java Cloud Service
o MySQLCS : Oracle MySQL Cloud Service
o OEHCS : Oracle Event Hub Cloud Service
o OEHPCS : Oracle Event Hub Cloud Service - Dedicated
o SOA : Oracle SOA Cloud Service
o accs : Oracle Application Container Cloud Service
o caching : Oracle Application Cache
o dbcs : Oracle Database Cloud Service
o ggcs : Oracle GoldenGate Cloud Service
o stack : Oracle Cloud Stack Manager
----------------------------------------------------
jpcom のバリデーションを通過し、正常に初期設定が完了しました。
4. 動作確認
Application Container Cloud Service にデプロイしているアプリケーション情報を表示させてみます。
$ psm accs app -n shinyayApp
Application: shinyayApp
Status: RUNNING
Type: web
URL: https://shinyayApp-shinyaydomain.apaas.ap5.oraclecloud.com
Last Deployed On: 2018-01-08T02:35:05.860+0000
Created On: 2018-01-08T02:35:05.876+0000
psm accs app
コマンドでデプロイされている shinyayApp が稼働中である事が確認できました。
まとめ
CLI ツールが使えると、クラウドサービスの操作やアプリケーションのデプロイなど簡単に素早く実施できて便利ですよね。個人的には、GUIを使うよりコマンドを叩いている方が気持ち良いです。
2018/1/8 時点では、PSM CLI ツールが日本リージョンにデフォルトでは対応していなくて残念な感じですが、JSON ファイルに1行追加する事で対応もできたので知らない間に対応されるのかなと思います。