Linux Virtual Delivery Agent

Azure経由でのLinux VDAの自己更新

この機能は、Linux VDAソフトウェアを即時またはスケジュールされた時間に自動的に更新するのに役立ちます。Citrix DaaS Standard for Azure(旧称 Citrix Virtual Apps and Desktops Standard for Azure)でLinux VDAを作成する場合に役立ちます。Azure内のVMの管理者権限は必要ありません。詳細については、「Citrix DaaS Standard for AzureでLinux VDAを作成する」を参照してください。

構成

この機能を使用するには、次の手順を完了します。

ステップ1: 更新情報と新しいVDAパッケージのAzureコンテナーへのアップロード

ステップ1a: Azureストレージアカウントの下にコンテナーを作成し、コンテナーのアクセスレベルをBlob (Anonymous read access for blobs only)に設定します。

注:

AzureコンテナーとBLOBは、お客様が排他的に保持および管理します。Citrix®は、それらに関するセキュリティ問題について責任を負いません。データセキュリティとコスト効率を確保するため、各自己更新後にコンテナーのアクセスレベルをPrivate (no anonymous access)に設定してください。

ステップ1b: VDA更新情報をUpdateInfo.jsonという名前のJSONファイルに組み込みます。ファイル形式の例については、次のブロックを参照してください。

{
 "Version": "21.04.200.4",
"Distributions":[
{
"TargetOS": "RHEL7_9",
"PackageName": "",
"PackageHash": ""
},
{
"TargetOS": "UBUNTU18_04",
"PackageName": "xendesktopvda_21.04.200.4-1.ubuntu18.04_amd64.deb",
"PackageHash": "4148cc3f25d3717e3cbc19bd953b42c72bd38ee3fcd7f7034c2cd6f2b15b3c5a"
},
{
-  "TargetOS": "UBUNTU20_04",
-  "PackageName": "",
-  "PackageHash": ""
}
]
}
<!--NeedCopy-->

ここで、“Version”は新しいVDAバージョンを示し、“Distributions”は更新オブジェクトの配列です。各オブジェクトには3つの項目が含まれています。

  • “TargetOS”: “RHEL7_9” (RHEL 7、CentOS 7、およびAmazon Linux 2の場合)、”UBUNTU18_04”、または”UBUNTU20_04”である必要があります。ctxmonitorserviceは他のディストリビューションを認識しません
  • “PackageName”: 指定されたバージョンのVDAパッケージの完全な名前
  • “PackageHash”: shasum -a 256 <pkgname>コマンドを使用して計算するSHA-256値

ステップ1c: JSONファイルと新しいバージョンのLinux VDAパッケージをAzureコンテナーにアップロードします。

ステップ2: マスターイメージまたは各VDAでの自己更新機能の有効化

デフォルトでは、自己更新は無効になっています。Citrix DaaS Standard for AzureでLinux VDAを作成する場合、機能の有効化はマスターイメージで実行する必要があります。それ以外の場合は、各ターゲットVDAで直接機能を有効にします。

自己更新を有効にするには、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\SelfUpdateのレジストリキーを編集するために、次のようなコマンドを実行します。

/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_DWORD" -v "fEnabled" -d "0x00000001" --force

/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_SZ" -v "ScheduledTime" -d "Immediately" --force

/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_SZ" -v "Url" -d "<Your-Azure-Container-Url>" --force

/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\SelfUpdate" -t "REG_SZ" -v "CaCertificate" -d "<Local-Certificate-Path-of-PortalAzureCom>" --force
<!--NeedCopy-->

次の表に、レジストリ設定について説明します。

レジストリ設定 説明
fEnabled この設定は必須です。デフォルトでは、値は0であり、自己更新が無効であることを意味します。1に設定すると、自己更新を有効にできます。
Url この設定は必須です。更新情報と新しいVDAパッケージを取得するためのAzureコンテナーのURLを設定します。
ScheduledTime この設定は必須です。ImmediatelyまたはNextStartに設定できます。Immediatelyは、VDAパッケージのダウンロード直後に更新を実行することを意味します。このオプションは、ダウンロード速度が速く、更新が緊急である場合に適しています。ただし、パッケージのダウンロード中にライブセッションがある場合、ユーザーエクスペリエンスを妨げる可能性があります。NextStartは、ctxmonitorserviceの次回の起動時に更新を実行することを意味します。このオプションは、ダウンロード速度が速くなく、更新が緊急でない場合に適しています。
CaCertificate この設定はオプションです。AzureコンテナーのURLを検証するためのPEM証明書のフルパスを設定します。Azure BLOBの場合、ブラウザーから取得し、PEMに変換されたportal.azure.comの証明書を使用できます。セキュリティのため、このレジストリ設定を追加することをお勧めしますが、Ubuntuでのみサポートされています。RHELでは、curlコマンド用の一部のNSSライブラリのリンクが欠落しています。証明書の最小限の権限を設定するようにしてください。

ctxmonitorserviceが再起動すると、まずUrlを照会してUpdateInfo.jsonファイルを取得し、JSONファイルから更新バージョンを取得します。次に、ctxmonitorserviceは更新バージョンを現在のバージョンと比較します。現在のバージョンが古い場合、サービスはAzureから新しいバージョンのVDAパッケージをダウンロードし、ローカルに保存します。その後、ScheduledTimeの設定に従って更新を実行します。オンプレミス展開の場合、ctxmonitorserviceを直接再起動して更新をトリガーできます。ただし、VMへの管理者権限がないCitrix DaaS Standard for Azureでは、ctxmonitorserviceはVDAマシンが再起動された後にのみ再起動できます。更新が失敗した場合、VDAは既存のバージョンにロールバックされます。

注:

  • マスターイメージで構成したレジストリ設定は変更できません
  • 環境内のすべてのVMが同時にパッケージをダウンロードすると、ローカルネットワークが混雑する可能性があります
  • 更新とロールバックの両方が失敗した場合、ユーザーデータは失われます
  • 更新が失敗してもロールバックが成功した場合、同じネットワーク上のユーザーは異なるバージョンのLinux VDAを使用する可能性があります。このケースは最適ではありません
  • 更新の完了には通常数分かかります。Citrix Studioにはステータスインジケーターはありません
Azure経由でのLinux VDAの自己更新

この記事の概要