1. はじめに
IBM Cloud CLIをインターネットを経由せずにダウンロードおよびインストールする方法は以下リンクに記載がある。
https://cloud.ibm.com/docs/cli?topic=cli-cli-private-endpoints&locale=en
しかし、この方法はどうもClassic Infrastrutureを想定して記載されているようだ。VPCからは、ibm-cloud-cli-installer-scripts.s3.private.us.cloud-object-storage.appdomain.cloud
というprivate endpointにはアクセスできない。そこで、VPC内のLinuxにおける手順を記載しておこうと思う(docs issueを起票したがなかなか反映されないため)。
2.導入手順
2-1. 導入スクリプトのダウンロード
docsで指定しているのはICOSのprivate endpointだったが、代わりにICOSのdirect endpointを利用して、一旦手元にダウンロードしてくる。(docsに示されているURL中で、private
の代わりにdirect
を利用)。
curl -fsSOL https://ibm-cloud-cli-installer-scripts.s3.direct.us.cloud-object-storage.appdomain.cloud/linux_private
2-2. 導入スクリプトの編集
ダウンロードしたlinux_privateを以下のようにdirect endpointになるように編集(private
の代わりにdirect
を利用)。
# vi linux_private
metadata_host="ibm-cloud-cli-metadata.s3.private.us.cloud-object-storage.appdomain.cloud"
binary_download_host_pve="ibm-cloud-cli.s3.private.us.cloud-object-storage.appdomain.cloud"
↓
metadata_host="ibm-cloud-cli-metadata.s3.direct.us.cloud-object-storage.appdomain.cloud"
binary_download_host_pve="ibm-cloud-cli.s3.direct.us.cloud-object-storage.appdomain.cloud"
2-3. インストール作業の実行
# sh linux_private
Current platform is linux64. Downloading corresponding IBM Cloud CLI...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11.4M 100 11.4M 0 0 1868k 0 0:00:06 0:00:06 --:--:-- 3120k
Download complete. Executing installer...
Bluemix_CLI/
Bluemix_CLI/bin/
Bluemix_CLI/bin/ibmcloud
Bluemix_CLI/bin/ibmcloud.sig
Bluemix_CLI/bin/NOTICE
Bluemix_CLI/bin/LICENSE
Bluemix_CLI/bin/CF_CLI_Notices.txt
Bluemix_CLI/bin/CF_CLI_SLC_Notices.txt
Bluemix_CLI/autocomplete/
Bluemix_CLI/autocomplete/bash_autocomplete
Bluemix_CLI/autocomplete/zsh_autocomplete
Bluemix_CLI/install
Bluemix_CLI/uninstall
Bluemix_CLI/install_bluemix_cli
Install complete.
参考: API endpointの設定
(多分、2022年7月時点でのIBM Cloud CLIがダメなんだと思うが) API endpointをprivate.cloud.ibm.com
に構成しようとすると、Classic Infrastructureのprivate endpointにアクセス試行してしまう。
# ibmcloud api private.cloud.ibm.com
(遅い)
# IBMCLOUD_TRACE=true ibmcloud api private.cloud.ibm.com 2>&1 | grep -i host
Host: ibm-cloud-cli-metadata.s3.private.us.cloud-object-storage.appdomain.cloud
よって、"--vpc"オプションも一緒につけてやると上手く行く。
# ibmcloud api --unset
# ibmcloud api private.cloud.ibm.com --vpc
# IBMCLOUD_TRACE=true ibmcloud api private.cloud.ibm.com --vpc 2>&1 | grep -i host
Host: ibm-cloud-cli-metadata.s3.direct.us.cloud-object-storage.appdomain.cloud
Host: ibm-cloud-cli-metadata.s3.direct.us.cloud-object-storage.appdomain.cloud
もし、都度バージョンアップのチェックをしたくないのであれば、以下を実施しておく。
# ibmcloud config --check-version false