IBM Cloud CLI で インスタンスを作成する・変更・削除する
前回の「IBM Cloud CLI で PowerVS に アクセスする」では、IBM Cloud CLI を導入し、既存の PowerVS 資源にアクセスしました。
今回は、一歩進んで CLI でインスタンスの作成や変更、削除を試したいと思います。
今回は、プライベートのブートイメージから プロセッサー 0.25、メモリー 2GB のインスタンスを作成し、操作します。
情報の確認
コマンドとオプションを確認します。
Docs での確認
IBM Cloud の Web サイト [https://cloud.ibm.com/docs] (https://cloud.ibm.com/docs) での資料のことを「Docs」と呼ぶのだそうです。
では、Docs で IBM Cloud CLI で PowerVS を操作する情報を確認しましょう。
日本語表示を選択するとドイツ語の資料が表示されるので、英語表示にします。
Docs でのインスタンス作成方法の場所はこちら。
「ibmcloud pi instance-create」で作成するのが分かります。
あとは、ポータルで指定したのと同様の内容をオプションで指定します。
ibmcloud pi instance-create INSTANCE_NAME --image IMAGE [--memory MEMORY] <--network \"NETWORK1 [IP1]\"> [--processors PROCESSORS] [--processor-type PROC_TYPE] [--volumes "VOLUME1 VOLUME2"] [--key-name NAME] [--sys-type TYPE] [--replicants NUMBER] [--replicant-scheme SCHEME] [--replicant-affinity-policy AFFINITY_POLICY] [--IBMiCSS-license] [--IBMiDBQ-license] [--IBMiPHA-license] [--IBMiRDS-users NUMBER-USERS] [--json]
CLI の help コマンドでの確認
ヘルプを見てみます。
PowerVS を操作する power-iaas 全体へのヘルプ「ibmcloud pi help」の結果は前回のこちらで確認しました。
今回は、インスタンス作成の詳細ヘルプを確認します。
各コマンドの詳細ヘルプは「ibmcloud pi help [command]」のため、インスタンス作成の詳細ヘルプは下記で確認できます。
ibmcloud pi help instance-create
日本語で表示されるので、こちらの方が優しいですね。
C:\Users\YASUHIROOnoda>ibmcloud pi help instance-create
名前:
instance-create, inc - サーバー・インスタンスを作成します
使用法:
ibmcloud pi instance-create INSTANCE_NAME --image IMAGE [--memory MEMORY] <--network \"NETWORK1 [IP1]\"> ...
[--processors PROCESSORS] [--processor-type PROC_TYPE] [--volumes \"VOLUME1 VOLUME2\"] [--key-name NAME] [--sys-type TYPE]
[--replicants NUMBER] [--replicant-scheme SCHEME] [--replicant-affinity-policy AFFINITY_POLICY]
[--IBMiCSS-license] [--IBMiDBQ-license] [--IBMiPHA-license] [--IBMiRDS-users NUMBER-USERS] [--json]
INSTANCE_NAME: インスタンスの名前
オプション:
--image value オペレーティング・システムのイメージ ID または名前
--memory value インスタンスに割り振るメモリー量 (GB)。 デフォルトは 2GB
--networks value (非推奨 - 「network」で置き換え) このインスタンスに関連付けるネットワークの ID または 名前のスペース区切りリスト。
--network value ネットワークのスペース区切りの ID/名前、およびインスタンスに関連付けるオプション IP アドレス
--processors value インスタンスに割り振るプロセッサー量。 デフォルトは 1 コア
--processor-type value プロセッサーのタイプ: 「共有」、「専用」、または「上限あり」
--volumes value このインスタンスに関連付けるボリュームの ID または名前のスペース区切りリスト
--key-name value SSH 鍵の名前
--sys-type value システム・タイプの名前 (「s922」、「e880」、「e980」)。 デフォルトは「s922」
--storage-type value スタック・イメージをデプロイするときのサーバー・デプロイメントのストレージ・タイプ
--replicants value この要求で作成する重複インスタンス数
--replicant-scheme value 重複 VM に使用する命名方式 (「suffix」、「prefix」)
--replicant-affinity-policy value multicreate の使用時に使用するアフィニティー・ポリシー (「affinity」、「anti-affinity 」)
--IBMiCSS-license このインスタンスに関連付けられている IBMi CSS ソフトウェア・ライセンス
--IBMiDBQ-license このインスタンスに関連付けられている IBMi DBQ ソフトウェア・ライセンス
--IBMiPHA-license このインスタンスに関連付けられている IBMi PHA ソフトウェア・ライセンス
--IBMiRDS-users value このインスタンスに関連付けられている IBMi RDS ユーザー・ソフトウェア・ライセンスの数。デフォルトは IBMiRDSUsers=0 (ライセンスなし)
--json 出力を JSON でフォーマットします
オプションの調査と指定
たくさんのオプションがあるようです。
オプションには、作成するインスタンスの名前以外は、事前に決定されている値を指定します。
値には、IBM Cloud で決定済みのものと、自分で作成したリソースの様に、ユーザー固有のものがあります。
ユーザー固有のものは、定義した名前や ID を調べる必要があります。
ターゲットサービスの指定
まず、インスタンスを作成する場所のPowerVSサービスをリストし、ターゲットとして設定します。
この部分は捜査対象の「切り替え」であり、インスタンス作成のオプションの一部ではありません。
ibmcloud pi service-list
ibmcloud pi service-target サービスID
「SYD04」と「DAL」の二つのPowerVSサービスサービスが確認できました。
「SYD04」のサービスIDを指定して、「SYD04」をターゲットにします。
イメージ名
「--image value」にはイメージの名前を指定します。
IBM で提供しているイメージは「image-list-catalog(imglc)」でプライベートのイメージは「images(imgs)」で確認できます。
ibmcloud pi image-list-catalog
ibmcloud pi images
今回はプライベートの「V7R3-20201013」を使いましょう。
メモリー量
メモリー量は「--memory value」で指定します。デフォルトは 2GB とヘルプあります。
指定せずに、デフォルトを使いましょう。
ネットワーク
ネットワークの設定は「--network value」で行います。
「--networks value」は非推奨です。
現在のネットワーク一覧は「networks(nets)」で確認できます。
ibmcloud pi networks
今回はパブリックネットワークの「public-192_168_154_192-29-VLAN_2020」を使います。
プロセッサー量
プロセッサー量は「--processors value」で指定します。
デフォルト値は 1 コアですが、最低の 0.25 にします。
プロセッサーのタイプ
プロセッサーのタイプは「--processor-type value」で指定します。
日本語のヘルプには「共有」「専用」「上限あり」とありますが、翻訳のし過ぎすね。
実際使えるのは「shared」「dedicated」「capped」です。
「shared」を使います。
ボリューム
追加ボリュームを「--volumes value」で指定できますが、今回は 80GB のロードソースデバイスだけでいいので指定しません。
SSH 鍵
IBM i へのアクセスには Cloud に保持した SSH 鍵は使いません。「--key-name value」は指定しません。
システム・タイプ
デプロイ先のサーバーのタイプを、「--sys-type value」で指定します。
デフォルトで「s922」が選択されますので、今回は指定しません。
サーバー・デプロイメントのストレージ・タイプ
IBM 提供のイメージからデプロイする時は、ストレージ・タイプが選べます、
「層1」「層3」というやつですね。
今回はプライベートイメージを、利用するので選べません。
自動的に、プライベートイメージと同じ「層」が使われます。
そのため、指定しません。
複数台の作成-インスタンスの作成数、命名方式とアフィニティー・ポリシー
Power HA を構成したこちらでは、まとめて 2 台、インスタンスを作成しました。
そのような場合は「--replicants value」で台数を「-replicant-scheme value」で命名方式を指定します。
また「--replicant-affinity-policy value」でアフィニティー・ポリシー(同じサーバーにデプロイしたいのか別のサーバーにデプロイしたいのか)を指定します。
今回は 1 台のみを作成しますので、複数台用のこれらのオプションは指定しません。
IBM i 用の追加ライセンス
IBM i 用の 4 つの追加ライセンスを指定するオプションです。
「--IBMiCSS-license」「--IBMiDBQ-license」「--IBMiPHA-license」「--IBMiRDS-users value」で指定できます。
今回は追加しませんので、指定しません。
出力結果のフォーマット方式
「--json」を指定すると、出力が JSON フォーマットになります。
今回は指定しません
オプションの確認
資料を見ると、多くのオプションがありましたが、ひとつずつ見ていけば、今回は、下記の 4つを指定すればよいようです。
--image V7R3-20201013
--network public-192_168_154_192-29-VLAN_2020
--processors 0.25
--processor-type shared
インスタンスの作成
インスタンスを作成しましょう。
「instance-create」に今まで確認したオプションを指定します。
「IBMi-from-CLI」という名前のインスタンスを作成します。
ibmcloud pi instance-create IBMi-from-CLI ^
--image V7R3-20201013 ^
--network public-192_168_154_192-29-VLAN_2020 ^
--processors 0.25 ^
--processor-type shared
私の環境は Windows です。
「^」は、Windows のコマンドプロンプトでの継続行を指定する記号です。
コマンドが長い場合に複数行に分割するために指定します。
Linux や Mac なら「\」で継続行を表します。
作成が開始されました。
コンソールにも「作成」のメッセージが表示されインスタンスが確認できます。
インスタンスの詳細は、下記で確認できます。
ibmcloud pi instance [インスタンスID]
「--json」を付けて表示させると、結果が JSON 形式で得られます。
出力内容をプログラムで処理する場合は、こちらの方が便利でしょう。
ibmcloud pi instance [インスタンスID] --json
C:\Users\YASUHIROOnoda>ibmcloud pi instance 40aeb455-a7b8-4d4c-8b1e-d8ce4ff9aec6 --json
{
"addresses": [
{
"externalIP": "xxx.xxx.xxx.xxx",
"href": "/pcloud/v1/cloud-instances/b1f0b27fee8b43658e8148321f4cfef4/pvm-instances/40aeb455-a7b8-4d4c-8b1e-d8ce4ff9aec6/networks/e8710754-393c-4178-8bf6-a8f9871bb28e",
"ip": "192.168.154.197",
"ipAddress": "192.168.154.197",
"macAddress": "fa:03:c5:a8:e8:20",
"networkID": "e8710754-393c-4178-8bf6-a8f9871bb28e",
"networkName": "public-192_168_154_192-29-VLAN_2020",
"type": "fixed",
"version": 4
}
],
"creationDate": "2020-10-26T06:32:46.000Z",
"diskSize": 80,
"health": {
"lastUpdate": "2020-10-26T06:47:56.737419",
"status": "OK"
},
"imageID": "2ecc2326-0600-47ea-ad7d-42d031034846",
"maxmem": 4,
"maxproc": 0.5,
"memory": 2,
"migratable": false,
"minmem": 2,
"minproc": 0.25,
"networkIDs": [
"e8710754-393c-4178-8bf6-a8f9871bb28e"
],
"networks": [
{
"externalIP": "xxx.xxx.xxx.xxx",
"href": "/pcloud/v1/cloud-instances/b1f0b27fee8b43658e8148321f4cfef4/pvm-instances/40aeb455-a7b8-4d4c-8b1e-d8ce4ff9aec6/networks/e8710754-393c-4178-8bf6-a8f9871bb28e",
"ip": "192.168.154.197",
"ipAddress": "192.168.154.197",
"macAddress": "fa:03:c5:a8:e8:20",
"networkID": "e8710754-393c-4178-8bf6-a8f9871bb28e",
"networkName": "public-192_168_154_192-29-VLAN_2020",
"type": "fixed",
"version": 4
}
],
"operatingSystem": "V7R3M0 410 7",
"osType": "ibmi",
"pinPolicy": "none",
"procType": "shared",
"processors": 0.25,
"pvmInstanceID": "40aeb455-a7b8-4d4c-8b1e-d8ce4ff9aec6",
"serverName": "IBMi-from-CLI",
"softwareLicenses": {
"ibmiCSS": false,
"ibmiDBQ": false,
"ibmiPHA": false,
"ibmiRDS": false
},
"srcs": [
[
{
"src": "00000000",
"timestamp": "2020-10-26T06:45:21Z"
}
]
],
"status": "ACTIVE",
"storageType": "tier3",
"sysType": "s922",
"updatedDate": "2020-10-26T06:32:46.000Z",
"volumeIDs": [
"70d9bc41-d507-444e-9c13-ab202c99f253"
]
}
コンソール URL の取得
「instance-get-console」でコンソールの URL が取得できます。
ibmcloud pi instance-get-console [インスタンスID]
URL を開くとコンソールが表示されます。
インスタンスのサイズやメモリー量の変更
PowerVS はシステムをシャットダウンしても、課金が続きます。
課金を抑える方法として、日中はサイズを大きくし夜間は小さくするなど、状況によってサイス変更をすることが考えれられます。
しかし、ポータルからプラウザーで手動で行うのは、あまりにも煩雑です。
こんな時こそ CLI を使いましょう。
CLI からヘルプを表示しオプションを確認します。
ibmcloud pi help instance-update
C:\Users\YASUHIROOnoda>ibmcloud pi help instance-update
名前:
instance-update, inu - サーバー・インスタンスを更新します
使用法:
ibmcloud pi instance-update INSTANCE_ID [--memory AMOUNT] [--name NEW_NAME] [--processors NUMBER] [--processor-type TYPE] [--json]
INSTANCE_ID: インスタンスの固有 ID または名前
オプション:
--memory value サーバー・インスタンス用の新規メモリー量
--name value サーバー・インスタンスの新しい名前
--processors value サーバー・インスタンス用の新規プロセッサー量
--processor-type value サーバー・インスタンス用の新規プロセッサー・タイプ
--json 出力を JSON でフォーマットします
今回のインスタンスのサイズを倍にしましょう。
ibmcloud pi instance-update [インスタンスID] ^
--memory 4 ^
--processors 0.5
変更されました。
さらに倍にしてみましょう。
ibmcloud pi instance-update [インスタンスID] ^
--memory 4 ^
--processors 0.5
「the requested changes would require the pvm-instance 40aeb455-a7b8-4d4c-8b1e-d8ce4ff9aec6 to be in a 'shutdown' state」としてエラーになりました。
システムが起動している場合は、起動時の 1/2 ~ 2 倍の範囲のキャパシティ変更しかできません。
その範囲を超えたので、エラーになりました。
大きく変更したい場合は、OS のシャットダウンのスケジュールとうまく合わせましょう。
インスタンスの削除
インスタンスのの削除は「instance-delete」で行います。
ibmcloud pi instance-delete [インスタンスID]
しばらくコマンド実行後、しばらく「ibmcloud pi instances」で表示されていましたが、やがて、削除が完了し表示から消えました。
当日記のIndexはこちらです。
許可の無い転載を禁じます。
この記事は筆者の個人的な責任で無保証で提供しています。
当記事に関してIBMやビジネスパートナーに問い合わせることは、固くお断りします。