はじめに
Virtual TJBot Starterを作っているときにアカウントを何個も作るのではなく、
毎回デプロイ済みのサービスを消しては作りということをしていました。
地味に手間がかかるので、この際スクリプト化してしまえ!ということで、本記事を残しておきます。
VirtualTJBotの環境を作り直したい時や、Node-REDのバージョンを上げたい時に使えます。
必要なもの
Linux もしくは osxでbashスクリプトが動きibmcloudコマンドが利用できること
私はCentOS8.0で試しました
前提
- ライトアカウントでテストしているので他環境では試していません
- ログイン済みアカウントでサービス、CloudFoundry、IAM API Keyなどをすべて消すので、
混在して利用している環境では利用しないでください - US-SOUTH(ダラス)をログインターゲットのRegionとしています
動かし方
1. IBMcloudへログインする
$ ibmcloud login
2. シェルの実行
$ bash ./reset-vitualtjbot.sh
shellの中身
reset-vitualtjbot.sh
# !/bin/bash
ibmcloud target -r us-south --cf
ibmcloud resource service-instances
echo -----------------------------------------------------------------------------------------------
IFS=$'\n'
for SERVICE_INSTANCE in `ibmcloud resource service-instances -q | grep service_instance | awk -F ' ' '{print $1}'`
do
ibmcloud resource service-instance-delete "${SERVICE_INSTANCE}" -f --recursive
done
echo -----------------------------------------------------------------------------------------------
ibmcloud resource service-instances
echo -----------------------------------------------------------------------------------------------
ibmcloud cf a
for CF_APP in `ibmcloud cf -q a | grep started | awk -F ' ' '{print $1}'`
do
ibmcloud cf delete "${CF_APP}" -f
done
echo -----------------------------------------------------------------------------------------------
ibmcloud cf a
echo -----------------------------------------------------------------------------------------------
ibmcloud iam service-ids
for SERVICE_ID in `ibmcloud iam service-ids | grep serviceId | awk -F ' ' '{print $1}'`
do
ibmcloud iam service-id-delete "${SERVICE_ID}" -f
done
echo -----------------------------------------------------------------------------------------------
ibmcloud iam service-ids
echo -----------------------------------------------------------------------------------------------
ibmcloud iam api-keys
for API_KEY in `ibmcloud iam api-keys | grep ApiKey | awk -F ' ' '{print $1}'`
do
ibmcloud iam api-key-delete "${API_KEY}" -f
done
echo -----------------------------------------------------------------------------------------------
ibmcloud iam api-keys
echo -----------------------------------------------------------------------------------------------
実行サンプル
実行前の画面サンプル
ここにデプロイされているものを全部消しちゃいます。
ゴッソリです。
実行状況サンプル
$ bash ./reset-vitualtjbot.sh
地域 us-south
に切り替えました
ターゲットの Cloud Foundry (https://api.us-south.cf.cloud.ibm.com)
ターゲットの組織 {IBM ID}
ターゲットのスペース dev
API エンドポイント: https://cloud.ibm.com
地域: us-south
ユーザー: {IBM ID}
アカウント: BMXUG IOT-HANDSON's Account (daf2e733339944d3a329d217a518fd74)
リソース・グループ: Default
CF API エンドポイント: https://api.us-south.cf.cloud.ibm.com (API バージョン: 2.151.0)
組織: {IBM ID}
スペース: dev
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account の すべての場所 で リソース・グループ Default 内の タイプ service_instance のインスタンスを取得しています...
OK
名前 場所 状態 タイプ
virtual-tjbot-starter-20200815111925304 jp-tok active service_instance
Continuous Delivery jp-tok active service_instance
TJBot_LanguageTranslator jp-tok active service_instance
TJBot_SpeechToText jp-tok active service_instance
Cloudant-aw us-south active service_instance
TJBot_TextToSpeech jp-tok active service_instance
TJBot_VisualRecognition us-south active service_instance
TJBot_Assistant jp-tok active service_instance
-----------------------------------------------------------------------------------------------
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account のリソース・グループ Default のサービス・インスタンス virtual-tjbot-starter-20200815111925304 を削除しています...
OK
ID crn:v1:bluemix:public:toolchain:jp-tok:a/daf2e733339944d3a329d217a518fd74:71dc496a-80db-4d31-a91f-29bbc7f01196:: のサービス・インスタンス virtual-tjbot-starter-20200815111925304 は正常に削 除されます
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account のリソース・グループ Default のサービス・インスタンス Continuous Delivery を削除しています...
OK
ID crn:v1:bluemix:public:continuous-delivery:jp-tok:a/daf2e733339944d3a329d217a518fd74:5ac78c35-a4bc-4f72-9a06-c1c63e2fe015:: のサービス・インスタンス Continuous Delivery は正常に削除されます
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account のリソース・グループ Default のサービス・インスタンス TJBot_LanguageTranslator を削除しています...
OK
ID crn:v1:bluemix:public:language-translator:jp-tok:a/daf2e733339944d3a329d217a518fd74:aaaac9f4-06c9-4f74-979c-0dffd9bd0b7c:: のサービス・インスタンス TJBot_LanguageTranslator は正常に削除されます
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account のリソース・グループ Default のサービス・インスタンス TJBot_SpeechToText を削除しています...
OK
ID crn:v1:bluemix:public:speech-to-text:jp-tok:a/daf2e733339944d3a329d217a518fd74:784f472f-1a7c-4842-ac47-fef71e7ab02d:: のサービス・インスタンス TJBot_SpeechToText は正常に削除されます
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account のリソース・グループ Default のサービス・インスタンス Cloudant-aw を削除しています...
OK
ID crn:v1:bluemix:public:cloudantnosqldb:us-south:a/daf2e733339944d3a329d217a518fd74:bf350153-6f2c-47b0-a181-c6e1a5b9955d:: のサービス・インスタンス Cloudant-aw は正常に削除されます
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account のリソース・グループ Default のサービス・インスタンス TJBot_TextToSpeech を削除しています...
OK
ID crn:v1:bluemix:public:text-to-speech:jp-tok:a/daf2e733339944d3a329d217a518fd74:781e1da4-53d2-4c3e-b5a7-e14d57d06723:: のサービス・インスタンス TJBot_TextToSpeech は正常に削除されます
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account のリソース・グループ Default のサービス・インスタンス TJBot_VisualRecognition を削除しています...
OK
ID crn:v1:bluemix:public:watson-vision-combined:us-south:a/daf2e733339944d3a329d217a518fd74:283decae-aa08-4701-a8a9-237733242b51:: のサービス・インスタンス TJBot_VisualRecognition は正常に削除されます
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account のリソース・グループ Default のサービス・インスタンス TJBot_Assistant を削除しています...
OK
ID crn:v1:bluemix:public:conversation:jp-tok:a/daf2e733339944d3a329d217a518fd74:15578fb1-3444-4bcd-b503-3ac2eccff1a6:: のサービス・インスタンス TJBot_Assistant は正常に削除されます
-----------------------------------------------------------------------------------------------
{IBM ID} としてアカウント BMXUG IOT-HANDSON's Account の すべての場所 で リソース・グループ Default 内の タイプ service_instance のインスタンスを取得しています...
OK
サービス・インスタンスが見つかりません。
-----------------------------------------------------------------------------------------------
'cf a' を起動しています...
{IBM ID} として組織 {IBM ID} / スペース dev 内のアプリを取得しています...
OK
名前 要求された状態 インスタンス メモリー ディスク URL
virtual-tjbot-starter-20200815111925304 started 1/1 256M 1G virtual-tjbot-starter-20200815111925304.mybluemix.net
'cf delete virtual-tjbot-starter-20200815111925304 -f' を起動しています...
{IBM ID} として組織 {IBM ID} / スペース dev 内のアプリ virtual-tjbot-starter-20200815111925304 を削除しています...
OK
-----------------------------------------------------------------------------------------------
'cf a' を起動しています...
{IBM ID} として組織 {IBM ID} / スペース dev 内のアプリを取得しています...
OK
アプリが見つかりませんでした
-----------------------------------------------------------------------------------------------
{IBM ID} として 現行アカウント にバインドされるすべてのサービス ID を取得しています...
OK
ID 名前 作成日時 最終更新 説明 ロック中
ServiceId-e66846db-68d0-4eab-b0fd-28492155f262 TJB 2020-08-14T00:55+0000 2020-08-14T01:01+0000 false
-----------------------------------------------------------------------------------------------
{IBM ID} として 現行アカウント にバインドされるすべてのサービス ID を取得しています...
OK
ID 名前 作成日時 最終更新 説明 ロック中
ServiceId-e66846db-68d0-4eab-b0fd-28492155f262 TJB 2020-08-14T00:55+0000 2020-08-14T01:01+0000 false
-----------------------------------------------------------------------------------------------
{IBM ID} としてアカウント daf2e733339944d3a329d217a518fd74 のすべての API キーを取得しています...
OK
名前 説明 作成日時 最終更新 ロック中 ID
virtual-tjbot-starter-20200815111925304 の API キー 2020-08-15T11:20+0000 2020-08-15T11:20+0000 false ApiKey-e0102d58-2cae-4286-860c-5747ff054bc4
{IBM ID} としてアカウント daf2e733339944d3a329d217a518fd74 の API キー virtual-tjbot-starter-20200815111925304 の API キー を削除しています...
OK
API キー virtual-tjbot-starter-20200815111925304 の API キー が削除されました
-----------------------------------------------------------------------------------------------
{IBM ID} としてアカウント daf2e733339944d3a329d217a518fd74 のすべての API キーを取得しています...
OK
名前 説明 作成日時 最終更新 ロック中 ID
-----------------------------------------------------------------------------------------------
実行後のサンプル
ToDo
IBM cloud DevOpsで使われるContinues Delivery機能を使ってデプロイしています。
Githubレポジトリはお手持ちのIBM IDに紐付いてibmcloud上のgitlabにクローンされています。
こちらをキレイにしないと連続してデプロイしていくたびにクローンしたレポジトリが増え続けるので、
今後の課題です。