StoreFront

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

注:

インポートできるのは、対象のStoreFrontインストールと同じバージョンのStoreFront構成のみです。

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

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

  • StoreFront展開環境は動作し、信頼できる状態の場合のみバックアップが作成されます。 構成を変更した場合は、古いバックアップを置き換えるために新しいバックアップを作成する必要があります。 backup.zipファイルのファイルハッシュが変更を妨げるため、既存のバックアップを変更することはできません。
  • StoreFrontをアップグレードする前に障害回復用のバックアップを作成します。
  • 既存のテスト用StoreFront展開を複製して実稼働環境に配置します。
  • 実稼働環境をテスト環境に複製することにより、ユーザー承認環境を作成します。
  • OSの移行中(Window Server 2019からWindows 2022へのホスティングのアップグレードなど)に、StoreFrontを移動します。OSのインプレースアップグレードはサポートされていません。
  • 複数のデータセンターを持つ大企業など、複数地域での展開で追加のサーバーグループを構築します。

StoreFront構成のエクスポートおよびインポート時の検討事項

  • 現在Citrixが公開している認証SDKの例(Magic Word Authenticationなど)またはサードパーティの認証カスタマイズを使用していますか。 使用している場合は、これらのパッケージをすべてのインポートサーバーにインストールしてから、追加の認証方式を含む構成をインポートする必要があります。 必要な認証SDKパッケージがどのインポートサーバーにもインストールされていない場合、構成のインポートは失敗します。 構成をサーバーグループにインポートする場合は、グループのすべてのメンバーに認証パッケージをインストールします。
  • 構成のバックアップを暗号化または暗号化解除できます。エクスポートおよびインポートPowerShellコマンドレットはどちらのユースケースもサポートします。
  • 暗号化されたバックアップ(.ctxzip)は後から暗号化解除できますが、StoreFrontは暗号化されていないバックアップファイル(.zip)を再暗号化できません。 暗号化されたバックアップが必要な場合は、選択したパスワードを含むPowerShell資格情報オブジェクトを使用してもう一度エクスポートを実行します。
  • StoreFrontが現在インストールされているIIS(エクスポート元サーバー)におけるWebサイトのSiteIDは、バックアップされたStoreFront構成をリストアするIIS(インポート先サーバー)におけるターゲットWebサイトのSiteIDに一致する必要があります。

PowerShellコマンドレット

Export-STFConfiguration

パラメーター 説明
-TargetFolder(文字列) バックアップアーカイブへのエクスポートパス。例:”$env:userprofile\desktop\”
-Credential(PSCredentialオブジェクト) エクスポート中に暗号化された.ctxzipバックアップアーカイブを作成する資格情報オブジェクトを指定します。PowerShell資格情報オブジェクトには、暗号化と暗号化解除に使用されるパスワードが含まれます。-Credential-NoEncryptionパラメーターと一緒に使用しないでください。例:$CredObject
-NoEncryption(スイッチ) バックアップアーカイブを暗号化されていない.zipにすることを指定します。-Credentialパラメーターを-NoEncryptionパラメーターと一緒に使用しないでください。
-ZipFileName(文字列) StoreFront構成のバックアップアーカイブの名前。 .zipや.ctxzipなどのファイル拡張子を追加しないでください。 ファイル拡張子は、エクスポート中に-Credentialまたは-NoEncryptionのどちらのパラメーターを指定したかによって自動的に追加されます。例:”backup”
-Force(ブール型) このパラメーターは、バックアップアーカイブを、指定されたエクスポート先にある既存のバックアップファイルと同じファイル名で自動的に上書きします。

重要:

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

Import-STFConfiguration

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

Unprotect-STFConfigurationBackup

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

構成のエクスポートおよびインポート例

現在のPowerShellセッションへのStoreFrontコマンドレットのインポート

StoreFrontサーバーでPowerShell Integrated Scripting Environment(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ではStoreFrontをIIS内の通常のデフォルトのWebサイトではなくカスタムのWebサイトの場所に展開しています。IIS内に作成された2つ目のWebサイトのIIS SiteIDは2です。StoreFront Webサイトの物理パスは、d:\など別のシステム以外のドライブまたはデフォルトのc:\システムドライブに置くことができますが、1を超えるIIS SiteIDを使用する必要があります。

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

IISの[Web サイトの追加]ウィンドウのスクリーンショット

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

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

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

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

前の構成バックアップは、2つのStoreFrontサーバー(2012R2-Aと2012R2-B)のみがサーバーグループのメンバーであるときに取得されました。 バックアップアーカイブ内には、元のサーバー2012R2-Aと2012R2-Bのみを含む、バックアップが取得された時点のCitrixClusterMembershipのレコードが含まれます。 StoreFrontサーバーグループ環境では、ビジネス上の需要に伴い、元のバックアップが取得された時点よりサイズが増え続けています。したがって、追加のノード2012R2-Cがサーバーグループに追加されています。 バックアップに保持されているサーバーグループの基になるStoreFront構成は変更されていません。 2つの元のサーバーグループノードのみを含む古いバックアップがインポートされている場合でも、3つのサーバーの現在のCitrixClusterMembershipを維持する必要があります。 インポート中に、現在のクラスターメンバーシップが保持されて、構成がプライマリサーバーに正常にインポートされた後にライトバックされます。 元のバックアップが取得された後にサーバーグループノードがサーバーグループから削除された場合、インポートでは現在のCitrixClusterMembershipも保持されます。

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

    グループ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つのサーバー2012R2-Cと2012R2-Dを含むサーバーグループ2が作成されます。 サーバーグループ2の構成は既存環境のサーバーグループ1の構成に基づきます。サーバーグループ1にも2つのサーバー2012R2-Aと2012R2-Bが含まれています。 バックアップアーカイブに含まれるCitrixClusterMembershipは、新しいサーバーグループの作成時には使用されません。 現在のCitrixClusterMembershipが常にバックアップされ、インポートの成功後に復元されます。 インポートされた構成を使用して新しい展開環境を作成すると、追加サーバーが新しいグループに加わるまでは、CitrixClusterMembershipセキュリティグループには1つのインポートサーバーのみが含まれます。サーバーグループ2は新しい環境で、サーバーグループ1と共存することを目的としています。-HostBaseURLパラメーターを指定します。 サーバーグループ2は、新しい工場出荷時のデフォルトStoreFront環境を使用して作成されます。

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

  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:既存の構成をサーバーグループAからバックアップし、そのバックアップを使用して既存のサーバーグループBの構成を上書きする

サーバーグループ1とサーバーグループ2は既に2つの個別のデータセンターに存在します。 多くのStoreFront構成の変更はサーバーグループ1で行われ、もう一方のデータセンターのサーバーグループ2に適用する必要があります。 サーバーグループ1の変更をサーバーグループ2に移植できます。 サーバーグループ2のバックアップアーカイブ内でCitrixClusterMembershipを使用しないでください。 インポート中に-HostBaseURLパラメーターを指定します。サーバーグループ2のホストベースURLは、サーバーグループ1で現在使用されている同じFQDNに変更できません。 サーバーグループ2は既存の環境です。

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

  2. サーバーグループ1の構成をノード2012R2-Cの工場出荷時のデフォルト環境にインポートします。2012R2-Cは新しいサーバーグループ2のプライマリサーバーです。

    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構成のエクスポートとインポート