Linux VDAの自動更新
この機能によって、Linux VDAソフトウェアを即座に、またはスケジュールされた時間に自動的に更新することができます。これは、Citrix Virtual Apps and Desktops Standard for AzureでLinux VDAを作成する場合に特に役立ちます。Azureの仮想マシンの管理者特権はありません。詳しくは、「Citrix Virtual Apps and Desktops Standard for AzureでLinux VDAを作成」を参照してください。
構成
この機能を使用するには、次の手順を実行します:
手順1:更新情報と新しいVDAパッケージをAzureコンテナにアップロードする
手順1a:Azureストレージアカウントでコンテナを作成し、コンテナアクセスレベルを [BLOB(BLOB専用の匿名読み取りアクセス)] に設定します。
注:
AzureコンテナとBLOBは、お客様が独占的に保有および管理するものです。Citrixは、セキュリティ上の問題について責任を負いません。データのセキュリティとコスト効率を確保するには、自動更新が終わるたびにコンテナのアクセスレベルを [プライベート(匿名アクセスはありません)] に設定します。
手順1b:VDA更新情報をUpdateInfo.jsonという名前のJSONファイルに組み込みます。ファイル形式の例については、次のブロックを参照してください:
{
"Version": "21.04.200.4",
"Distributions":[
{
"TargetOS": "RHEL7_9",
"PackageName": "",
"PackageHash": ""
},
{
"TargetOS": "RHEL8_3",
"PackageName": "XenDesktopVDA-21.04.200.4-1.el8_x.x86_64.rpm",
"PackageHash": "a6f2aba23b84bbc3a4640294a8bb92474e0cacbab1e5ae33416c0a4473a28d73"
},
{
"TargetOS": "UBUNTU16_04",
"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の場合)、”RHEL8_3”、”UBUNTU16_04”、”UBUNTU18_04”、”UBUNTU20_04”のいずれかである必要があります。
ctxmonitorservice
は他のディストリビューションを認識しません。 - “PackageName”:指定されたバージョンのVDAパッケージのフルネーム。
-
“PackageHash”:
shasum -a 256 <pkgname>
コマンドを使用して計算するSHA-256値。
手順1c:JSONファイルと新しいバージョンのLinux VDAパッケージをAzureコンテナにアップロードします。
手順2:マスターイメージまたは各VDAで自動更新機能を有効にする
デフォルトでは、自動更新は無効になっています。Citrix Virtual Apps and Desktops 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 | この設定は必須です。AzureコンテナのURLを設定して、更新情報と新しいVDAパッケージを取得します。 |
ScheduledTime | この設定は必須です。[Immediately] または [NextStart] に設定できます。[Immediately] は、VDAパッケージをダウンロードした直後に更新を実行することを意味します。この選択肢は、ダウンロード速度が速く、更新が緊急の場合に適しています。ただし、パッケージをダウンロードするときにライブセッションがあると、ユーザーエクスペリエンスが損なわれる可能性があります。[NextStart] は、ctxmonitorservice の次の開始時に更新を実行することを意味します。この選択肢は、ダウンロード速度が速くなく、更新が緊急でない場合に適しています。 |
CaCertificate | この設定はオプションです。AzureコンテナのURLを確認するPEM証明書のフルパスを設定します。Azure BLOBの場合、Webブラウザーから取得されてPEMに変換されるportal.azure.comの証明書にすることができます。セキュリティ上の理由から、このレジストリ設定を追加することをお勧めしますが、Ubuntuでのみサポートされています。RHELでは、curl コマンド用に一部のNSSライブラリをリンクできません。証明書の最小特権が設定されているか確認してください。 |
ctxmonitorservice
が再起動すると、最初にUrlにクエリを実行してUpdateInfo.jsonファイルを取得し、JSONファイルから更新バージョンを取得します。次に、ctxmonitorservice
は更新バージョンと現在のバージョンを比較します。現在のバージョンが以前のバージョンの場合、このサービスによってAzureから新しいバージョンのVDAパッケージがダウンロードされ、ローカルに保存されます。その後、[ScheduledTime]の設定に従って更新が実行されます。オンプレミス環境の場合、ctxmonitorservice
を直接再起動して更新をトリガーできます。ただし、仮想マシンに対する管理者特権がないCitrix Virtual Apps and Desktops Standard for Azureでは、ctxmonitorservice
はVDAマシンを再起動した後でのみ再起動できます。更新が失敗した場合、VDAは既存のバージョンにロールバックされます。
注:
- マスターイメージで構成したレジストリ設定は変更できません。
- 環境内のすべての仮想マシンが同時にパッケージをダウンロードすると、ローカルネットワークが混雑する可能性があります。
- 更新とロールバックの両方が失敗すると、ユーザーデータは失われます。
- 更新が失敗してもロールバックが成功した場合、同じネットワーク上のユーザーにおけるLinux VDAのバージョンが異なる可能性があります。このケースは最適なものではありません。
- 通常、更新は完了するまでに数分かかります。Citrix Studioには状態インジケーターはありません。