📝 BLOG.IK.AM

@making's memo
(🗃 Categories 🏷 Tags)

Pivotal Application Service (PAS) on AzureをCLIで2.4から2.5にバージョンアップするメモ

🗃 {Dev/PaaS/CloudFoundry/PCF}

🏷 Azure 🏷 Cloud Foundry 🏷 Pivotal Cloud Foundry 🏷 Ops Manager 🏷 PAS

🗓 Updated at 2019-05-22T18:59:43Z by Toshiaki Maki  🗓 Created at 2019-05-22T18:57:26Z by Toshiaki Maki  {✒️️ Edit  ⏰ History}


Pivotal Application Service (PAS) 2.4をCLIでAzureにインストールするメモでインストールしたPAS 2.4をPAS 2.5にバージョンアップします。

バージョンアップ前のCFのバージョンはcf curl /v2/infoで確認できます。

$ cf curl /v2/info
{
   "name": "Pivotal Application Service",
   "build": "2.4.7-build.16",
   "support": "https://support.pivotal.io",
   "version": 0,
   "description": "https://docs.pivotal.io/pivotalcf/2-3/pcf-release-notes/runtime-rn.html",
   "authorization_endpoint": "https://login.sys.pas.ik.am",
   "token_endpoint": "https://uaa.sys.pas.ik.am",
   "min_cli_version": "6.23.0",
   "min_recommended_cli_version": "6.23.0",
   "app_ssh_endpoint": "ssh.sys.pas.ik.am:2222",
   "app_ssh_host_key_fingerprint": "8d:b3:95:84:6b:65:c3:f0:64:cc:b3:18:25:3a:07:1b",
   "app_ssh_oauth_client": "ssh-proxy",
   "doppler_logging_endpoint": "wss://doppler.sys.pas.ik.am:443",
   "api_version": "2.125.0",
   "osbapi_version": "2.14",
   "routing_endpoint": "https://api.sys.pas.ik.am/routing"
}

前回同様に$HOME/install-pasで作業します。また、念のため環境変数OM_XXXXXXを再設定しておきます。

cd $HOME/install-pas

export OM_DECRYPTION_PASSPHRASE=pasw0rd
export OM_PASSWORD=pasw0rd
export OM_SKIP_SSL_VALIDATION=true
export OM_TARGET=$(terraform output ops_manager_dns)
export OM_USERNAME=admin

PAS 2.5.4のTileをダウンロードしておきます。

cd /tmp
pivnet download-product-files -p elastic-runtime -r 2.5.4 --glob=cf-*.pivotal
cd -

目次

Ops Managerのアップデート

重要: バージョンアップ作業をする前に、次のコマンドで必ずOps Managerの設定のエクスポートをおこなって下さい。

om export-installation -o installation.zip

Ops Manager 2.5.4のプロダクトページから、"Pivotal Cloud Foundry Ops Manager YAML for Azure"をダウンロードして、OpsManager VMイメージのURLを取得します。

terraform.tfvarsops_manager_image_uriを取得したURLで上書きします。

ops_manager_image_uri = "https://opsmanagersoutheastasia.blob.core.windows.net/images/ops-manager-2.5.4-build.189.vhd"

この変更をTerraformで反映します。

terraform plan -out plan template/terraforming-pas
terraform apply plan

新しいOps Manager VMが新しいバージョンに差し代わります。

先ほどエクスポートした設定を新しいバージョンにインポートします。

om import-installation -i installation.zip

これでOps Managerのアップデートが完了です。ブラウザで確認すると、PASのバージョンはv2.4.7のままで、Ops Managerのバージョンがv2.5.4-build.189になっていることがわかります。

image

PASのアップデート

次にPASを2.5にアップデートします。

om upload-product -p /tmp/cf-2.5.4-build.5.pivotal

ステージします。

export PRODUCT_NAME=cf
export PRODUCT_VERSION=2.5.4

om stage-product -p ${PRODUCT_NAME} -v ${PRODUCT_VERSION}

ブラウザで確認するとPAS Tileがオレンジ色になっています。これはPAS Tileに入力項目に不足があることを意味します。
BOSH Director Tileは緑色なので2.5へのバージョンアップに伴う設定追加は不要です。

image

Tileをクリックすると、"Cloud Controller"の項目に不足があることがわかります。

image

Type "X" to acknowledge that you have no applications running with cflinuxfs2. If you are upgrading from 2.4, please read this documentation closely for steps to verify all apps have been migrated: https://docs.pivotal.io/pivotalcf/2-5/upgrading/checklist.html#cflinuxfs3の項目が不足しています。このフィールドにXを入力する必要があります。

image

この項目はPAS 2.4でアプリケーション用コンテナイメージのベースであるstackがcflinuxfs3 (Ubuntu 18)のみになり、cflinuxfs2 (Ubuntu 14)は削除されるので、全てのアプリケーションがcflinuxfs3に以降したことを確認したらXを明示的に入力してほしいという項目です。

この項目をpas/config.ymlに設定するにはプロパティ名を知る必要があります。フォームのフィールドに対するプロパティ名を知る、手っ取り早い方法はChromeのDeveloper ToolででHTMLの要素を見ることです。

PAS 2.6では不足しているプロパティ名をomコマンドで取得できるようになります。

image

設定すべきプロパティ名は.properties.stack_migration_acknowledgementであることがわかります。

これをpas/config.ymlproduct-propertiesに追加します。

product-properties:
  # 途中略
  .properties.stack_migration_acknowledgement:
    value: X
# ...

また、PASではconsul_serverresource-configから消えるので、以下のようにconsul_serverの項目を削除して下さい。

resource-config:
  # ...

  # PAS 2.5で項目がなくなるので削除
  # consul_server:
  #   instances: 0

pas/config.ymlの変更をomコマンドで

om configure-product \
  --config ./pas/config.yml \
  --vars-file ./pas/vars.yml

ブラウザにアクセスするとPAS Tileも緑色になっていることがわかります。

image

以上で設定は完了です。Apply Changesしてアップデートを行います。

om apply-changes

これも2時間強かかります...

image

完了して、再度CFバージョンを確認するとバージョンアップしていることがわかります。

$ cf curl /v2/info
{
   "name": "Pivotal Application Service",
   "build": "2.5.4-build.5",
   "support": "https://support.pivotal.io",
   "version": 0,
   "description": "https://docs.pivotal.io/pivotalcf/2-5/pcf-release-notes/runtime-rn.html",
   "authorization_endpoint": "https://login.sys.pas.ik.am",
   "token_endpoint": "https://uaa.sys.pas.ik.am",
   "min_cli_version": "6.23.0",
   "min_recommended_cli_version": "6.23.0",
   "app_ssh_endpoint": "ssh.sys.pas.ik.am:2222",
   "app_ssh_host_key_fingerprint": "8d:b3:95:84:6b:65:c3:f0:64:cc:b3:18:25:3a:07:1b",
   "app_ssh_oauth_client": "ssh-proxy",
   "doppler_logging_endpoint": "wss://doppler.sys.pas.ik.am:443",
   "api_version": "2.131.0",
   "osbapi_version": "2.14",
   "routing_endpoint": "https://api.sys.pas.ik.am/routing"
}

2.5 -> 2.6へのバージョンアップ方法も基本的には同じです。