StoreFront

StoreFront構成のエクスポートとインポート

注:

ターゲットのStoreFrontインストールとまったく同じStoreFrontバージョンのStoreFront構成のみをインポートできます。この制限のため、各累積更新プログラムは異なる製品バージョンと見なされます。

StoreFront展開の構成全体をエクスポートできます。これには、単一サーバー展開とサーバーグループ構成の両方が含まれます。インポートするサーバーに既存の展開がすでに存在する場合、現在の構成は消去され、バックアップアーカイブに含まれる構成に置き換えられます。ターゲットサーバーがクリーンな工場出荷時設定のインストールである場合、バックアップに保存されているインポートされた構成を使用して新しい展開が作成されます。エクスポートされた構成バックアップは、暗号化されていない場合は単一の.zipアーカイブ形式で、バックアップファイルの作成時に暗号化を選択した場合は.ctxzip形式になります。

構成のエクスポートとインポートを使用できるシナリオ

  • 動作中で信頼できる状態のStoreFront展開のみをバックアップしてください。構成に変更を加える場合は、古いバックアップを置き換えるために新しいバックアップを作成する必要があります。backup.zipファイルのファイルハッシュが変更を防止するため、既存のバックアップを変更することはできません。
  • 災害復旧のためにStoreFrontをアップグレードする前にバックアップしてください。
  • 既存のテスト用StoreFront展開をクローンして本番環境に導入する
  • 本番展開をテスト環境にクローンしてユーザー受け入れ環境を作成する。
  • ホスティングをWindows Server 2019からWindows 2022にアップグレードするなど、OS移行中にStoreFrontを移動する。インプレースOSアップグレードはサポートされていません。
  • 複数のデータセンターを持つ大企業など、マルチジオ展開で追加のサーバーグループを構築する。

StoreFront構成のエクスポートとインポートを行う際の考慮事項

  • Do you currently use any Citrix® published authentication SDK examples, such as Magic Word authentication or third party authentication customizations? If so, you must install these packages on ALL importing servers BEFORE importing a configuration containing extra authentication methods. The configuration import fails if required authentication SDK packages are not installed on any of the importing servers. If importing a configuration into a server group, install the authentication packages on all members of the group.
  • 構成バックアップを暗号化または復号化できます。エクスポートおよびインポートのPowerShellコマンドレットは、両方のユースケースをサポートしています。
  • 暗号化されたバックアップ(.ctxzip)は後で復号化できますが、StoreFrontは暗号化されていないバックアップファイル(.zip)を再暗号化することはできません。暗号化されたバックアップが必要な場合は、選択したパスワードを含むPowerShell資格情報オブジェクトを使用して、再度エクスポートを実行してください。
  • IISに現在StoreFrontがインストールされているWebサイト(エクスポート元サーバー)のSiteIDは、バックアップされたStoreFront構成を復元したいIIS内のターゲットWebサイト(インポート先サーバー)のSiteIDと一致している必要があります。

PowerShellコマンドレット

Export-STFConfiguration

パラメーター 説明
-TargetFolder (String) バックアップアーカイブのエクスポートパス。例: “$env:userprofile\desktop\”
-Credential (PSCredential Object) エクスポート中に暗号化された.ctxzipバックアップアーカイブを作成するための資格情報オブジェクトを指定します。PowerShell資格情報オブジェクトには、暗号化と復号化に使用するパスワードを含める必要があります。-Credential-NoEncryptionパラメーターと同時に使用しないでください。例: $CredObject
-NoEncryption (Switch) バックアップアーカイブが暗号化されていない.zipであることを指定します。-NoEncryption-Credentialパラメーターと同時に使用しないでください。
-ZipFileName (String) StoreFront構成バックアップアーカイブの名前。 .zipや.ctxzipなどのファイル拡張子を追加しないでください。ファイル拡張子は、エクスポート時に-Credentialまたは-NoEncryptionパラメーターが指定されているかどうかに応じて自動的に追加されます。例: “backup”
-Force (Boolean) このパラメーターは、指定されたエクスポート場所に既に存在する既存のバックアップファイルと同じファイル名のバックアップアーカイブを自動的に上書きします。

重要:

StoreFront 3.5にあったSiteIDパラメーターは、バージョン3.6で非推奨になりました。バックアップアーカイブに含まれるSiteIDが常に使用されるため、インポート時にSiteIDを指定する必要はなくなりました。インポート元サーバーのIIS内に既に構成されている既存のStoreFront WebサイトとSiteIDが一致していることを確認してください。SiteID 1からSiteID 2への構成インポートはサポートされていません。

インポート-STFコンフィギュレーション

パラメーター 説明
-コンフィギュレーションジップ (文字列) インポートするバックアップアーカイブへの完全パス。ファイル拡張子も含まれている必要があります。暗号化されていないバックアップアーカイブには.zipを、暗号化されたバックアップアーカイブには.ctxzipを使用します。例: $env:userprofile\desktop\backup.ctxzip
-Credential (PSCredential 型のオブジェクトを指定する必要があります) インポート中に暗号化されたバックアップを復号化するための資格情報オブジェクトを指定します。例: $CredObject
-HostBaseURL (文字列形式で指定する値) このパラメーターが含まれている場合、エクスポート元サーバーのホストベースURLの代わりに、指定したホストベースURLが使用されます。例: https://<importingserver>.example.com

Unprotect-STFConfigurationBackup

パラメーター 説明
-TargetFolder (String)
-Credential パラメーターは、PSCredential 型のオブジェクトを受け取ります。
バックアップアーカイブへのエクスポートパス。例: $env:userprofile\desktop
このパラメーターを使用して、暗号化されたバックアップアーカイブの暗号化されていないコピーを作成します。復号化に使用するパスワードを含むPowerShell資格情報オブジェクトを指定します。例: $CredObject
-EncryptedConfigurationZip パラメーターは、文字列型の値を受け取ります。 復号化する暗号化されたバックアップアーカイブの完全パス。ファイル拡張子 .ctxzip を指定する必要があります。例: $env:userprofile\\desktop\\backup.ctxzip
-OutputFolder (String)
-Force (Boolean)
暗号化された (.ctxzip) バックアップアーカイブの暗号化されていないコピー (.zip) を作成するパス。バックアップの元の暗号化されたコピーは再利用できるように保持されます。暗号化されていないコピーのファイル名とファイル拡張子を指定しないでください。例: $env:userprofile\desktop
このパラメーターは、指定されたエクスポート場所に既に存在する既存のバックアップファイルと同じファイル名を持つバックアップアーカイブを自動的に上書きします。

構成のエクスポートとインポートの例

StoreFrontコマンドレットを現在のPowerShellセッションにインポートする

StoreFrontサーバー上でPowerShell 統合スクリプト環境 (ISE) を開き、以下を実行します。

$env:PSModulePath = [Environment]::GetEnvironmentVariable('PSModulePath','Machine')
$SDKModules = 'C:\Program Files\Citrix\Receiver StoreFront\PowerShellSDK\Modules\Citrix.StoreFront'
Import-Module "$SDKModules\Citrix.StoreFront.psd1" -verbose
Import-Module "$SDKModules.Authentication\Citrix.StoreFront.Authentication.psd1" -verbose
Import-Module "$SDKModules.Roaming\Citrix.StoreFront.Roaming.psd1" -verbose
Import-Module "$SDKModules.Stores\Citrix.StoreFront.Stores.psd1" -verbose
Import-Module "$SDKModules.WebReceiver\Citrix.StoreFront.WebReceiver.psd1" -verbose
<!--NeedCopy-->

シングルサーバーのシナリオ

サーバーA上の既存の構成の暗号化されていないバックアップを作成し、同じ展開に復元する

バックアップするサーバーの構成をエクスポートします。

Export-STFConfiguration -targetFolder "$env:userprofile\desktop\" -zipFileName "backup" -NoEncryption
<!--NeedCopy-->

backup.zipファイルを安全な場所にコピーします。このバックアップは、災害復旧のためにサーバーを以前の状態に復元するために使用できます。

Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.zip" -HostBaseURL "https://storefront.example.com"
<!--NeedCopy-->

サーバーA上の既存の構成をバックアップし、サーバーBに復元して既存のサーバーのクローンを作成する

バックアップするサーバーの構成をエクスポートします。

Export-STFConfiguration -targetFolder "$env:userprofile\desktop\" -zipFileName "backup" -NoEncryption
<!--NeedCopy-->

backup.zipファイルをサーバーBのデスクトップにコピーします。

Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.zip" -HostBaseURL "https://serverB.example.com"
<!--NeedCopy-->

StoreFrontはすでにIISのカスタムWebサイトに展開されています。構成を別のカスタムWebサイト展開に復元する

サーバーAには、IIS内の通常のデフォルトWebサイトではなく、カスタムWebサイトの場所にStoreFrontが展開されています。IISで作成された2番目のWebサイトのIIS SiteIDは2です。StoreFront Webサイトの物理パスは、d:\などの別の非システムドライブ上、またはデフォルトのc:\システムドライブ上にあることができますが、1より大きいIIS SiteIDを使用する必要があります。

IIS内にSiteID = 2を使用するStoreFrontという新しいWebサイトが構成されています。StoreFrontはすでにIISのカスタムWebサイトに展開されており、その物理パスはドライブd:\inetpub\wwwrooot上にあります。

IISのWebサイトの追加ウィンドウのスクリーンショット(/ja-jp/storefront/2203-ltsr/media/add-website.png)

  1. サーバーAの構成のコピーをエクスポートします。
  2. サーバーBで、SiteID 2も使用するStoreFrontという新しいWebサイトでIISを構成します。
  3. サーバーAの構成をサーバーBにインポートします。バックアップに含まれるサイトIDが使用され、StoreFront構成をインポートするターゲットWebサイトと一致する必要があります。

    Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -HostBaseURL "https://serverB.example.com"
    <!--NeedCopy-->
    

サーバーグループのシナリオ

シナリオ1:既存のサーバーグループ構成をバックアップし、後で同じサーバーグループ展開に復元する

以前の構成バックアップは、StoreFrontサーバー2台(2012R2-Aと2012R2-B)のみがサーバーグループのメンバーであったときに取得されました。バックアップアーカイブには、バックアップ取得時のCitrixClusterMembershipの記録が含まれており、そこには元の2台のサーバー2012R2-Aと2012R2-Bのみが記載されています。元のバックアップが取得されて以来、ビジネス需要によりStoreFrontサーバーグループの展開規模が拡大し、追加ノード2012R2-Cがサーバーグループに追加されました。バックアップに保持されているサーバーグループの基盤となるStoreFront構成は変更されていません。元のサーバーグループノード2台のみを含む古いバックアップがインポートされた場合でも、現在の3台のサーバーのCitrixClusterMembershipは維持されなければなりません。インポート中、現在のクラスターメンバーシップは保持され、構成がプライマリサーバーに正常にインポートされた後で書き戻されます。また、元のバックアップが取得されて以来、サーバーグループノードがサーバーグループから削除された場合でも、インポートによって現在のCitrixClusterMembershipが保持されます。

  1. サーバーグループ全体を管理するために使用されるプライマリサーバーである2012R2-Aから、サーバーグループ1の構成をエクスポートします。

    グループ1に表示されているCitrixClusterMembersPropertiesのスクリーンショット画像

  2. 後で、既存のサーバーグループに2012R2-Cという追加サーバーを追加します。

    グループ2におけるCitrixClusterMembersPropertiesの画面を示すスクリーンショット

  3. サーバーグループの構成は、以前に動作していた既知の状態に復元する必要があります。StoreFrontは、インポートプロセス中に3台のサーバーの現在のCitrixClusterMembershipをバックアップし、インポートが成功した後にそれを復元します。

  4. サーバーグループ1の構成をノード2012R2-Aにインポートし直します。

    Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -HostBaseURL "https://servergroup1.example.com"
    <!--NeedCopy-->
    
  5. 新しくインポートされた構成をサーバーグループ全体に伝播し、インポート後にすべてのサーバーが整合性のある構成を持つようにします。

シナリオ2:サーバーグループ1から既存の構成をバックアップし、別の工場出荷時設定のインストールで新しいサーバーグループを作成し、その後、新しいプライマリサーバーに他の新しいサーバーグループメンバーを追加する

サーバーグループ2は、2台の新しいサーバー2012R2-Cと2012R2-Dを含んで作成されます。サーバーグループ2の構成は、既存の展開であるサーバーグループ1の構成に基づきます。サーバーグループ1には、2台のサーバー2012R2-Aと2012R2-Bも含まれています。新しいサーバーグループを作成する際、バックアップアーカイブに含まれるCitrixClusterMembershipは使用されません。現在のCitrixClusterMembershipは常にバックアップされ、インポートが成功した後に復元されます。インポートされた構成を使用して新しい展開を作成する場合、CitrixClusterMembershipセキュリティグループには、追加のサーバーが新しいグループに参加するまで、インポートするサーバーのみが含まれます。サーバーグループ2は新しい展開であり、サーバーグループ1と共存することを意図しています。-HostBaseURLパラメーターを指定します。サーバーグループ2は、新しい工場出荷時設定のStoreFrontインストールを使用して作成されます。

  1. サーバーグループ全体を管理するために使用されるプライマリサーバーである2012R2-Aから、サーバーグループ1の構成をエクスポートします。

  2. サーバーグループ1の構成をノード2012R2-Cにインポートします。ノード2012R2-Cは、新しく作成されたサーバーグループ2を管理するために使用されるプライマリサーバーになります。

    Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -HostBaseURL "https://servergroup2.example.com"
    <!--NeedCopy-->
    
  3. 新しいサーバーグループ2展開の一部となる追加サーバーをすべて参加させます。サーバーグループ1から新しくインポートされた構成がサーバーグループ2のすべての新しいメンバーに伝播されるのは自動的です。これは、新しいサーバーが追加される際の通常の参加プロセスの一部であるためです。

シナリオ3:既存のServer Group Aから構成をバックアップし、それを使用して既存のServer Group B構成を上書きする

Server Group 1とServer Group 2は、すでに2つの異なるデータセンターに存在します。Server Group 1で多くのStoreFront構成変更が行われており、これらを別のデータセンターにあるServer Group 2に適用する必要があります。Server Group 1からServer Group 2に変更を移植できます。Server Group 2のバックアップアーカイブ内のCitrixClusterMembershipは使用しないでください。インポート時に-HostBaseURLパラメーターを指定してください。Server Group 2のホストベースURLは、現在Server Group 1で使用されているのと同じFQDNに変更すべきではないためです。Server Group 2は既存の展開です。

  1. サーバーグループ全体を管理するために使用されるプライマリサーバーである2012R2-Aから、Server Group 1の構成をエクスポートします。

  2. 新しいServer Group 2のプライマリサーバーとなるノード2012R2-Cの工場出荷時設定のインストールに、Server Group 1の構成をインポートします。

    Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.zip" -NoEncryption -HostBaseURL "https://servergroup2.example.com"
    <!--NeedCopy-->
    

サーバー構成の暗号化されたバックアップを作成する

PowerShell資格情報オブジェクトは、Windowsアカウントのユーザー名とパスワードの両方で構成されます。PowerShell資格情報オブジェクトは、パスワードがメモリ内で保護された状態を保つことを保証します。

注:

構成バックアップアーカイブを暗号化するには、暗号化と復号化を実行するためのパスワードのみが必要です。資格情報オブジェクト内に保存されているユーザー名は使用されません。エクスポートサーバーとインポートサーバーの両方で使用されるPowerShellセッション内で、同じパスワードを含む資格情報オブジェクトを作成する必要があります。資格情報オブジェクト内では、任意のユーザーを指定できます。

PowerShellでは、新しい資格情報オブジェクトを作成する際にユーザーを指定する必要があります。この例のコードは、便宜上、現在ログオンしているWindowsユーザーを取得します。

エクスポートサーバーのPowerShellセッション内でPowerShell資格情報オブジェクトを作成します。

$User = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$Password = "Pa55w0rd"
$Password = $Password | ConvertTo-SecureString -asPlainText -Force
$CredObject = New-Object System.Management.Automation.PSCredential($User,$Password)
<!--NeedCopy-->

構成を暗号化されたzipファイルであるbackup.ctxzipにエクスポートします。

Export-STFConfiguration -targetFolder "$env:userprofile\desktop\" -zipFileName "backup" -Credential $CredObject
<!--NeedCopy-->

インポートサーバーのPowerShellセッション内で、同一のPowerShell資格情報オブジェクトを作成します。

Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -Credential $CredObject -HostBaseURL "https://storefront.example.com"
<!--NeedCopy-->

既存の暗号化されたバックアップアーカイブの保護を解除する

$User = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$Password = "Pa55w0rd"
$Password = $Password | ConvertTo-SecureString -asPlainText -Force
$CredObject = New-Object System.Management.Automation.PSCredential($User,$Password)

Unprotect-STFConfigurationExport -encryptedConfigurationZip "$env:userprofile\desktop\backup.ctxzip" -credential $CredObject -outputFolder "c:\StoreFrontBackups" -Force
<!--NeedCopy-->
StoreFront構成のエクスポートとインポート