IBM Cloud CLI で PowerVS に アクセスする
これまでは IBM Cloud のポータルから操作を行ってきました。
今回は処理の自動化を目指し、IBM Cloud CLI で PowerVS に アクセスする方法を確認します。
IBM Cloud CLI を使うと、Windows、Mac、Linux のコマンド・ラインから IBM Cloud の資源を表示・操作することができます。
他の Qiita の記事では Mac が多いようですが、ここでは Windows をクライアントにします。
また、IBM Cloud CLI 導入済みであることを前提とした記事が多いようですので、今回は一からセットアップを行いたいと思います。
IBM Cloud CLI と power-iaas/pi プラグインの導入
まず、IBM Cloud CLI と PowerVS を操作するための power-iaas/pi プラグインを導入します。
IBM Cloud CLI のインストール方法は、下記にガイドされています。
GitHub にある「インストーラーを使用したインストール」と PowerShell から直接インストール出来る「シェルからのインストール」の二つの方法がガイドされています。
今回は「シェルからのインストール」に従います。
PowerShell で下記を実行します。
iex(New-Object Net.WebClient).DownloadString('https://clis.cloud.ibm.com/install/powershell')
導入されました。
PowerVS を操作するには、PowerVS 用のプラグインが必要です。
プラグインの導入方法は下記に説明があります。
先ほど導入した ibmcloud コマンドでプラグインの一覧を表示します。
ibmcloud plugin repo-plugins -r "IBM Cloud"
「power-iaas/pi」という名前が確認出来ました。
プラグインを導入しましょう。
ibmcloud plugin install power-iaas
導入されました。
別名の「pi」で導入してみます。
ibmcloud plugin install pi
導入済みであると表示されました。
導入済みプラグインをリストします。
ibmcloud plugin list
「power-iaas」の「0.3.0」が導入済みであることが確認できました。
IBM Cloud CLI と プラグインが更新されている場合があります。
IBM Cloud 側とクライアントの IBM Cloud CLI やプラグインのバージョンの不整合により、期待通りの結果が得られないことがあります。
更新を適用するには重要です。
IBM Cloud CLI のバージョンは下記で確認できます。
ibmcloud -v
表示されました。
IBM Cloud CLI の更新は下記で行います。
ibmcloud update
導入したばかりなので、最新ですね。
プラグインの更新は、こちらです。
ibmcloud plugin update
やはり最新です。
API キー の作成
API キーを使えば、IBM Cloud の認証方法によらす、ログインを自動化できます。
API キーに関しては下記でガイドされています。
このページでは下記のように述べられています。
フェデレーテッド・ユーザーでも非フェデレーテッド・ユーザーでも、API キーを作成し、CLI で使用したり、ご使用のユーザー ID でのログインを自動化する一環として使用したりできます。
コンソールで「管理」→「アクセス (IAM)」→「API キー」に移動します。 このページで、自分の IBM Cloud API キーを作成します。
名前を付けて API キーを作成します。
API キーをコピーやダウンロードするためのダイアログが表示されます。
API キーを入手できるのは、このタイミングだけです。時間内にコピーやダウンロードをします。
間に合わなかった場合は別の API キーを作成してください。
IBM Cloud CLI へのログイン
「ibmcloud login」がログイン用のコマンドです。パラメーターは、下記にガイドされています。
ibmcloud login [-a API_ENDPOINT] [--sso] [-u USERNAME] [-p PASSWORD] [--apikey KEY | @KEY_FILE] [--no-iam] [-c (ACCOUNT_ID | ACCOUNT_OWNER_USER_ID) | --no-account] [-g (RESOURCE_GROUP_NAME | RESOURCE_GROUP_ID)] [-r REGION | --no-region] [-o ORG] [-s SPACE]
パスワード認証を使っている場合は「-p PASSWORD」でも自動ログインが可能ですが、API キーを使えば、外部認証のフェデレーテッド・ユーザーでも自動ログインが可能です。
そのため、今回は、 API キーでの自動ログインの手順を紹介しています。
コマンドに直接 API キーを指定する場合、下記の指定になります。
ibmcloud login --apikey [API キー] -u [ユーザー名]
API キーをファイルに保存し、利用することもできます。
例えば、API キーを「apykey.txt」という名前のファイルに保管したとします。
この場合、下記でログイン可能になります。
ibmcloud login --apikey @apykey.txt -u [ユーザー名]
IBM Cloud CLI で PowerVS にアクセスする
実際に IBM Cloud CLI で PowerVS を操作する場合は「power-iaas」は使用せず「ibmcloud pi XXXX」と実行します。
power-iaas プラグインのリファレンスは、こちらです。
執筆時点では、表示言語として日本語を選択するとドイツ語のページが表示されるので、英語での表示を選択したほうがいいでしょう。
「ibmcloud pi help」で power-iaas プラグインのコマンド一覧が表示されます。
ibmcloud pi help
C:\Users\YASUHIROOnoda>ibmcloud pi help
名前:
ibmcloud pi - IBM Cloud Power Virtual Server サービスの管理
使用法:
ibmcloud pi command [arguments...] [command options]
コマンド:
image, img イメージの詳細を表示します
image-create, imgc このアカウント内のイメージ・カタログからイメージのコピーを作成します
image-delete, imgd イメージをこのアカウントから削除します
image-export, imgex イメージを IBM Cloud Object Storage からエクスポート
image-import, imgi イメージを IBM Cloud Object Storage からインポートします
image-list-catalog, imglc リージョン・イメージ・カタログ内で使用可能なイメージをリストします
images, imgs このアカウントのすべてのイメージをリストします
instance, in サーバー・インスタンスの詳細を表示します
instance-capture, incap サーバー・インスタンスの取り込み
instance-create, inc サーバー・インスタンスを作成します
instance-delete, ind サーバー・インスタンスを削除します
instance-get-console, ingc インスタンスのコンソールを取得
instance-hard-reboot, inhrb インスタンスのオペレーティング・システムのハード再始動
instance-immediate-shutdown, inist サーバー・インスタンスを即時にシャットダウンします
instance-list-volumes, inlv インスタンスに接続するボリュームのリストを取得
instance-operation, inop Perform an operation on an IBMi server instance.
instance-reset-state, inrst サーバー・インスタンスのリセット - 注意が必要です
instance-soft-reboot, insrb インスタンスのオペレーティング・システムのソフト再始動
instance-start, instr サーバー・インスタンスを開始します
instance-stop, instp サーバー・インスタンスを停止します
instance-update, inu サーバー・インスタンスを更新します
instances, ins すべてのサーバー・インスタンスをリストします
key 鍵の詳細を表示します
key-create, keyc RSA 公開鍵をインポートします
key-delete, keyd 鍵を削除します
key-update, keyu 鍵の名前を更新します
keys すべての鍵をリストします
network, net ネットワークの詳細を表示します
network-create-private, netcpr プライベート・ネットワークを作成します
network-create-public, netcpu パブリック・ネットワークを作成します
network-delete, netd ネットワークを削除します
network-update, netu ネットワークを更新します
networks, nets すべてのネットワークをリストします
service-list, sl このアカウントおよびリージョンのすべてのサービスをリストします
service-target, st サービスをターゲットにします
storage-types, stypes ターゲット・リージョンのすべてのストレージ・タイプをリストします
volume, vol ボリュームの詳細を表示します
volume-attach, volat ボリュームをインスタンスに接続
volume-create, volc ボリュームを作成します
volume-delete, vold ボリュームを削除します
volume-detach, voldt ボリュームをインスタンスから切り離します
volume-update, volu ボリュームを更新します
volumes, vols すべてのボリュームをリストします
help, h ヘルプを表示します
コマンドについて詳しくは、'ibmcloud pi help [command]' と入力してください。
実際にアクセスしてみましょう。
現在、私は、2 か所に PowerVS のリソースを持っています。
CLI で確認します。
ibmcloud pi service-list
確認できました。
表示された crn を使って「SYD04」を操作対象にしましょう。
ibmcloud pi service-target [crn]
設定されました。
指定した「SYD04」には 2 つのインスタンスがあります。
インスタンスの一覧を表示しましょう。
ibmcloud pi instances
表示されました。
インスタンスの詳細を表示しましょう。
ibmcloud pi instance [インスタンスID]
表示されました。
正しく、アクセスできているようです。
当日記のIndexはこちらです。
許可の無い転載を禁じます。
この記事は筆者の個人的な責任で無保証で提供しています。
当記事に関してIBMやビジネスパートナーに問い合わせることは、固くお断りします。