IBM Cloud Docs
ソフトウェアの更新

ソフトウェアの更新

プライベート・カタログに含まれるソフトウェアを更新するには、新しいバージョンを追加するか、既存のバージョンを更新してリパブリッシュします。

開始前に

このタスクを完了するためには、カタログ管理サービスでのエディター役割が割り当てられている必要があります。 詳しくは、ユーザー・アクセスの割り当てを参照してください。

Terraform を使用してソフトウェアを更新するには、以下を完了していることを確認してください。

  • Terraform CLI をインストールし、Terraform 用の IBM Cloud プロバイダー・プラグインを構成します。 詳しくは、 IBM Cloud® のチュートリアルを参照してください。 このプラグインは、以下のタスクを実行するために使用される IBM Cloud API を抽象化します。
  • main.tfという名前の Terraform 構成ファイルを作成します。 このファイルでは、 HashiCorp 構成言語を使用してリソースを定義します。 詳細については 、Terraformのドキュメントを参照してください。

コンソールを使用した既存のバージョンの更新

以下では、既存のソフトウェアのバージョンを更新する完全なプロセスを示すために、製品のReadmeファイルを更新する例を順を追って説明します。

  1. IBM Cloud® コンソールで、管理 > カタログ > プライベート・カタログに移動し、リストからカタログを選択します。
  2. ソフトウェア製品の名前をクリックします。
  3. プライベート製品を選択して、プライベート・カタログ内の製品のリストにナビゲートします。
  4. アクション・アイコンアクション・アイコンをクリックし、編集を選択します。
  5. 「README の編集」タブをクリックします。
  6. 編集アイコン編集アイコンをクリックし、概要セクションに新しいテキスト行を追加して、更新をクリックします。
  7. アクション・アイコンアクション・アイコンをクリックし、変更のマージを選択して、更新されたバージョンをアカウントに公開します。

CLI を使用した既存のバージョンの更新

以下のステップを実行して、ドラフト・バージョンを作成し、それを更新し、変更内容を現在のバージョンのソフトウェアにマージします。

ソフトウェアのバージョン・ロケーターが必要です。 これを見つけるには、ibmcloud catalog offering list --catalog "your-private-catalog" コマンドを実行して、既存のバージョン番号を検索します。

  1. ソフトウェアのドラフト・バージョンを作成します。
    ibmcloud catalog offering create-draft --version-locator <VERSION_LOCATOR>
    
  2. 別のカテゴリーを設定します。
    ibmcloud catalog offering add-category --catalog "your-private-catalog" --offering "your-software" --category "category-type"
    
  3. ドラフト更新をソフトウェアにマージします。 この操作により、アカウントで公開されているソフトウェアのバージョンに更新がマージされます。
    ibmcloud catalog offering merge-draft --version-locator **<VERSION_LOCATOR_OF_DRAFT_VERSION>**
    
  4. IBM Cloud カタログ内でソフトウェアを検索します。
    ibmcloud catalog get --public | grep your-software
    

API を使用した既存のバージョンの更新

以下のサンプル要求に示すように、Catalog Management API を呼び出すことによって、プログラマチックにバージョンを更新できます。 APIの詳細については 、「カタログ管理API」 を参照してください。

String catalogID = "{catalogID}";
String offeringID = "{offeringID}";
String label = "{label}";
String shortDesc = "{shortDesc}";
ReplaceOfferingOptions replaceOptions = new ReplaceOfferingOptions.Builder().catalogIdentifier(catalogID).id(offeringID).offeringId(offeringID).label(label).shortDescription(shortDesc).rev(revision.rev()).build();
Response<Catalog> response = service.replaceOffering(replaceOptions).execute();
System.out.println(response.getResult());
vcatalogID = "{catalogID}";
offeringID = "{offeringID}";
revision = "{revision}";
label = "{label}";
shortDesc = "{shortDesc}";
response = await service.replaceOffering({'catalogIdentifier': catalogID, 'offeringId': offeringID, 'id': offeringID, 'rev': revision, 'label': label, 'shortDescription': shortDesc});
console.log(response);
catalogID = "{catalogID}"
offeringID = "{offeringID}"
revision = "{revision}"
shortDesc = "{shortDesc}"
response = self.service.replace_offering(catalog_identifier=catalogID, offering_id=offeringID, id=offeringID, rev=revision, label=label, short_description=shortDesc)
print(response)
catalogID := "{catalogID}"
offeringID := "{offeringID}"
label := "{label}"
shortDesc := "{shortDesc}"
revision := "{revision}"
updateOptions := service.NewReplaceOfferingOptions(catalogID, offeringID)
updateOptions.SetID(offeringID)
updateOptions.SetLabel(label)
updateOptions.SetShortDescription(shortDesc)
updateOptions.SetRev(revision)
_, response, _ := service.ReplaceOffering(updateOptions)
fmt.Println(response)

Terraform を使用した既存のバージョンの更新

Terraform を使用してソフトウェアの既存のバージョンを更新するには、以下の手順を使用します。

  1. main.tf ファイルに引数を作成します。 以下の例では、cm_version リソースを使用してソフトウェアのバージョンにアクセスします。ここで、offering_id はソフトウェアを識別します。

    resource "cm_version" "cm_version" {
    catalog_identifier = "catalog_identifier"
    offering_id = "offering_id"
    zipurl = "zipurl"
    }
    

    詳細については 、Terraformカタログ管理ページの引数リファレンスの詳細を参照してください。

  2. 構成ファイルの作成が完了したら、Terraform CLI を初期化します。 詳しくは、 作業ディレクトリーの初期化を参照してください。

    terraform init
    
  3. main.tf ファイルからリソースをプロビジョンします。 詳しくは、 Terraform を使用したインフラストラクチャーのプロビジョニングを参照してください。

    1. terraform plan を実行して、提案されたアクションをプレビューするための Terraform 実行プランを生成します。

      terraform plan
      
    2. terraform apply を実行して、計画に定義されているリソースを作成します。

      terraform apply