LoginSignup
0
1

More than 3 years have passed since last update.

PowerVS IBM i 日記(21): IBM Cloud CLI で インスタンスを作成する・変更・削除する

Last updated at Posted at 2020-10-26

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.png

イメージ名

「--image value」にはイメージの名前を指定します。

IBM で提供しているイメージは「image-list-catalog(imglc)」でプライベートのイメージは「images(imgs)」で確認できます。

ibmcloud pi image-list-catalog
ibmcloud pi images

image.png

今回はプライベートの「V7R3-20201013」を使いましょう。

メモリー量

メモリー量は「--memory value」で指定します。デフォルトは 2GB とヘルプあります。
指定せずに、デフォルトを使いましょう。

ネットワーク

ネットワークの設定は「--network value」で行います。
「--networks value」は非推奨です。

現在のネットワーク一覧は「networks(nets)」で確認できます。

ibmcloud pi networks

image.png

今回はパブリックネットワークの「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 なら「\」で継続行を表します。

作成が開始されました。

image.png

コンソールにも「作成」のメッセージが表示されインスタンスが確認できます。

image.png

インスタンスの詳細は、下記で確認できます。

ibmcloud pi instance [インスタンスID]

image.png

「--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]

image.png

URL を開くとコンソールが表示されます。

image.png

インスタンスのサイズやメモリー量の変更

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

変更されました。

image.png

さらに倍にしてみましょう。

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 倍の範囲のキャパシティ変更しかできません。
その範囲を超えたので、エラーになりました。

image.png

大きく変更したい場合は、OS のシャットダウンのスケジュールとうまく合わせましょう。

インスタンスの削除

インスタンスのの削除は「instance-delete」で行います。

ibmcloud pi instance-delete [インスタンスID] 

しばらくコマンド実行後、しばらく「ibmcloud pi instances」で表示されていましたが、やがて、削除が完了し表示から消えました。

image.png


当日記のIndexはこちらです。


許可の無い転載を禁じます。
この記事は筆者の個人的な責任で無保証で提供しています。
当記事に関してIBMやビジネスパートナーに問い合わせることは、固くお断りします。

0
1
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
0
1