StoreFront

Exportar e importar la configuración de StoreFront

Nota:

Solo puedes importar configuraciones de StoreFront que sean de la misma versión de StoreFront que la instalación de StoreFront de destino.

Puedes exportar la configuración completa de una implementación de StoreFront. Esto incluye tanto implementaciones de un solo servidor como configuraciones de grupos de servidores. Si ya existe una implementación en el servidor de importación, la configuración actual se borrará y se reemplazará por la configuración contenida en el archivo de copia de seguridad. Si el servidor de destino es una instalación limpia de fábrica, se creará una nueva implementación utilizando la configuración importada almacenada en la copia de seguridad. La copia de seguridad de la configuración exportada se presenta en forma de un único archivo .zip si no está cifrada, o un .ctxzip si eliges cifrar el archivo de copia de seguridad al crearlo.

Casos de uso para la exportación e importación de configuraciones

  • Realiza copias de seguridad de las implementaciones de StoreFront solo cuando estén en un estado operativo y de confianza. Cualquier cambio en la configuración requiere una nueva copia de seguridad para reemplazar la anterior. No puedes modificar las copias de seguridad existentes, ya que un hash de archivo del archivo backup.zip impide su modificación.
  • Realiza una copia de seguridad ANTES de actualizar StoreFront para la recuperación ante desastres.
  • Clonar implementaciones de StoreFront de prueba existentes para ponerlas en producción.
  • Crear entornos de aceptación de usuario clonando implementaciones de producción en un entorno de prueba.
  • Mover StoreFront durante migraciones de SO, como la actualización del alojamiento de Windows Server 2019 a Windows 2022. Las actualizaciones de SO in situ no son compatibles.
  • Crear grupos de servidores adicionales en implementaciones multigeográficas, como en grandes empresas con varios centros de datos.

Aspectos a tener en cuenta al exportar e importar una configuración de StoreFront

  • ¿Utilizas actualmente algún ejemplo de SDK de autenticación publicado por Citrix®, como la autenticación Magic Word o personalizaciones de autenticación de terceros? Si es así, debes instalar estos paquetes en TODOS los servidores de importación ANTES de importar una configuración que contenga métodos de autenticación adicionales. La importación de la configuración fallará si los paquetes de SDK de autenticación requeridos no están instalados en ninguno de los servidores de importación. Si importas una configuración en un grupo de servidores, instala los paquetes de autenticación en todos los miembros del grupo.
  • Puedes cifrar o descifrar tus copias de seguridad de configuración. Los cmdlets de PowerShell de exportación e importación admiten ambos casos de uso.
  • Puedes descifrar copias de seguridad cifradas (.ctxzip) más tarde, pero StoreFront no puede volver a cifrar archivos de copia de seguridad no cifrados (.zip). Si se requiere una copia de seguridad cifrada, realiza la exportación de nuevo utilizando un objeto de credencial de PowerShell que contenga una contraseña de tu elección.
  • El SiteID del sitio web en IIS donde StoreFront está instalado actualmente (servidor de exportación) debe coincidir con el SiteID del sitio web de destino en IIS (servidor de importación) donde deseas restaurar la configuración de StoreFront de la que se hizo una copia de seguridad.

Cmdlets de PowerShell

Export-STFConfiguration

Parámetro Descripción
-TargetFolder (String) La ruta de exportación al archivo de copia de seguridad. Ejemplo: “$env:userprofile\desktop\”
-Credential (PSCredential Object) Especifica un objeto de credencial para crear un archivo de copia de seguridad .ctxzip cifrado durante la exportación. El objeto de credencial de PowerShell debe contener la contraseña que se utilizará para el cifrado y descifrado. No uses -Credential al mismo tiempo que el parámetro -NoEncryption. Ejemplo: $CredObject
-NoEncryption (Switch) Especifica que el archivo de copia de seguridad debe ser un .zip no cifrado. No uses -NoEncryption al mismo tiempo que el parámetro -Credential.
-ZipFileName (String) El nombre del archivo de copia de seguridad de la configuración de StoreFront. No añadas una extensión de archivo, como .zip o .ctxzip. La extensión de archivo se añade automáticamente según si se especifica el parámetro -Credential o -NoEncryption durante la exportación. Ejemplo: “backup”
-Force (Boolean) Este parámetro sobrescribe automáticamente los archivos de copia de seguridad con el mismo nombre de archivo que los archivos de copia de seguridad existentes ya presentes en la ubicación de exportación especificada.

Importante:

El parámetro SiteID que se encontraba en StoreFront 3.5 quedó obsoleto en la versión 3.6. Ya no es necesario especificar el SiteID al realizar una importación, ya que siempre se utilizará el SiteID contenido en el archivo de copia de seguridad. Asegúrate de que el SiteID coincida con el sitio web de StoreFront existente ya configurado en IIS en el servidor de importación. Las importaciones de configuración de SiteID 1 a SiteID 2 NO son compatibles.

Import-STFConfiguration

Parámetro Descripción
-ConfigurationZip (String) La ruta completa al archivo de copia de seguridad que quieres importar. Esto también debe incluir la extensión del archivo. Usa .zip para archivos de copia de seguridad no cifrados y .ctxzip para cifrados. Ejemplo: $env:userprofile\desktop\backup.ctxzip
-Credential (PSCredential Object) Especifica un objeto de credencial para descifrar una copia de seguridad cifrada durante la importación. Ejemplo: $CredObject
-HostBaseURL (String) Si se incluye este parámetro, la URL base del host que especifiques se utilizará en lugar de la URL base del host del servidor de exportación. Ejemplo: https://<importingserver>.example.com

Unprotect-STFConfigurationBackup

Parámetro Descripción
-TargetFolder (String)
-Credential (PSCredential Object)
La ruta de exportación al archivo de copia de seguridad. Ejemplo: $env:userprofile\desktop
Usa este parámetro para crear una copia no cifrada del archivo de copia de seguridad cifrado. Especifica el objeto de credencial de PowerShell que contiene la contraseña que se utilizará para el descifrado. Ejemplo: $CredObject
-EncryptedConfigurationZip (String) La ruta completa del archivo de copia de seguridad cifrado que quieres descifrar. Debes especificar la extensión de archivo .ctxzip. Ejemplo: $env:userprofile\\desktop\\backup.ctxzip
-OutputFolder (String)
-Force (Boolean)
La ruta para crear una copia no cifrada (.zip) del archivo de copia de seguridad cifrado (.ctxzip). La copia cifrada original de la copia de seguridad se conserva para que pueda reutilizarse. No especifiques un nombre de archivo ni una extensión de archivo para la copia no cifrada. Ejemplo: $env:userprofile\desktop
Este parámetro sobrescribe automáticamente los archivos de copia de seguridad con el mismo nombre de archivo que los archivos de copia de seguridad existentes ya presentes en la ubicación de exportación especificada.

Ejemplos de exportación e importación de configuraciones

Importar los cmdlets de StoreFront en la sesión actual de PowerShell

Abre el Entorno de scripting integrado (ISE) de PowerShell en el servidor de StoreFront y ejecuta:

$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-->

Casos de uso de un solo servidor

Crear una copia de seguridad no cifrada de una configuración existente en el Servidor A y restaurarla en la misma implementación

Exporta la configuración del servidor del que deseas hacer una copia de seguridad.

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

Copia el archivo backup.zip en una ubicación segura. Puedes usar esta copia de seguridad para la recuperación ante desastres y restaurar el servidor a su estado anterior.

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

Hacer una copia de seguridad de una configuración existente en el Servidor A y restaurarla en el Servidor B para crear un clon de un servidor existente

Exporta la configuración del servidor del que deseas hacer una copia de seguridad.

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

Copia el archivo backup.zip en el escritorio del servidor B.

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

StoreFront ya está implementado en un sitio web personalizado en IIS. Restaura la configuración en otra implementación de sitio web personalizado

El Servidor A tiene StoreFront implementado en una ubicación de sitio web personalizada en lugar del sitio web predeterminado habitual dentro de IIS. El SiteID de IIS para el segundo sitio web creado en IIS es 2. La ruta física del sitio web de StoreFront puede estar en otra unidad que no sea del sistema, como d:\, o en la unidad del sistema predeterminada c:\, pero debe usar un SiteID de IIS mayor que 1.

Se ha configurado un nuevo sitio web llamado StoreFront en IIS, que utiliza SiteID = 2. StoreFront ya está implementado en el sitio web personalizado en IIS con su ruta física en la unidad d:\inetpub\wwwroot.

Captura de pantalla de la ventana Agregar sitio web de IIS

  1. Exporta una copia de la configuración del Servidor A.
  2. En el Servidor B, configura IIS con un nuevo sitio web llamado StoreFront, que también utiliza SiteID 2.
  3. Importa la configuración del Servidor A en el Servidor B. Se utiliza el ID del sitio contenido en la copia de seguridad y debe coincidir con el sitio web de destino donde deseas importar la configuración de StoreFront.

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

Casos de uso de grupos de servidores

Escenario 1: Hacer una copia de seguridad de una configuración de grupo de servidores existente y restaurarla más tarde en la misma implementación de grupo de servidores

Se realizó una copia de seguridad de la configuración anterior cuando solo dos servidores de StoreFront, 2012R2-A y 2012R2-B, eran miembros del grupo de servidores. Dentro del archivo de copia de seguridad hay un registro de la CitrixClusterMembership en el momento en que se realizó la copia de seguridad, que contiene solo los dos servidores originales 2012R2-A y 2012R2-B. La implementación del grupo de servidores de StoreFront ha aumentado de tamaño posteriormente desde que se realizó la copia de seguridad original debido a la demanda empresarial, por lo que se ha añadido un nodo adicional 2012R2-C al grupo de servidores. La configuración subyacente de StoreFront del grupo de servidores contenida en la copia de seguridad no ha cambiado. La CitrixClusterMembership actual de tres servidores debe mantenerse incluso si se importa una copia de seguridad antigua que contiene solo los dos nodos originales del grupo de servidores. Durante la importación, la pertenencia actual al clúster se conserva y luego se vuelve a escribir una vez que la configuración se ha importado correctamente en el servidor principal. La importación también conserva la CitrixClusterMembership actual si se eliminaron nodos del grupo de servidores desde que se realizó la copia de seguridad original.

  1. Exporta la configuración del Grupo de servidores 1 desde 2012R2-A, que es el servidor principal utilizado para administrar todo el grupo de servidores.

    Captura de pantalla de CitrixClusterMembersProperties en el grupo 1

  2. Más tarde, añades un servidor adicional, 2012R2-C, al grupo de servidores existente.

    Captura de pantalla de CitrixClusterMembersProperties en el grupo 2

  3. La configuración del grupo de servidores debe restaurarse a un estado de funcionamiento conocido anteriormente. StoreFront realiza una copia de seguridad de la CitrixClusterMembership actual de tres servidores durante el proceso de importación y luego la restaura una vez que la importación ha tenido éxito.

  4. Importa la configuración del Grupo de servidores 1 de nuevo en el nodo 2012R2-A.

    Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -HostBaseURL "https://servergroup1.example.com"
    <!--NeedCopy-->
    
  5. Propaga la configuración recién importada a todo el grupo de servidores, para que todos los servidores tengan una configuración coherente después de la importación.

Escenario 2: Hacer una copia de seguridad de una configuración existente del Grupo de servidores 1 y usarla para crear un nuevo Grupo de servidores en una instalación predeterminada de fábrica diferente. Luego puedes agregar otros nuevos miembros del grupo de servidores al nuevo servidor principal

Se crea el Grupo de servidores 2, que contiene dos servidores nuevos, 2012R2-C y 2012R2-D. La configuración del Grupo de servidores 2 se basará en la configuración de una implementación existente, el Grupo de servidores 1, que también contiene dos servidores 2012R2-A y 2012R2-B. La CitrixClusterMembership contenida en el archivo de copia de seguridad no se utiliza al crear un nuevo grupo de servidores. La CitrixClusterMembership actual siempre se copia de seguridad y luego se restaura después de que la importación sea exitosa. Al crear una nueva implementación utilizando una configuración importada, el grupo de seguridad CitrixClusterMembership contiene solo el servidor de importación hasta que se unen servidores adicionales al nuevo grupo. El Grupo de servidores 2 es una nueva implementación y está destinado a coexistir junto con el Grupo de servidores 1. Especifica el parámetro -HostBaseURL.

El Grupo de servidores 2 se creará utilizando una nueva instalación predeterminada de fábrica de StoreFront.

  1. Exporta la configuración del Grupo de servidores 1 desde 2012R2-A, que es el servidor principal utilizado para administrar todo el grupo de servidores.

  2. Importa la configuración del Grupo de servidores 1 en el nodo 2012R2-C, que será el servidor principal utilizado para administrar el Grupo de servidores 2 recién creado.

    Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -HostBaseURL "https://servergroup2.example.com"
    <!--NeedCopy-->
    
  3. Une cualquier servidor adicional que formará parte de la nueva implementación del Grupo de servidores 2. La propagación de la configuración recién importada del Grupo de servidores 1 a todos los nuevos miembros del Grupo de servidores 2 es automática, ya que esto forma parte del proceso de unión normal cuando se añade un nuevo servidor.

Escenario 3: Hacer una copia de seguridad de una configuración existente del Grupo de servidores A y usarla para sobrescribir la configuración existente del Grupo de servidores B

El Grupo de servidores 1 y el Grupo de servidores 2 ya existen en dos centros de datos separados. Se realizan muchos cambios de configuración de StoreFront en el Grupo de servidores 1, que debes aplicar al Grupo de servidores 2 en el otro centro de datos. Puedes trasladar los cambios del Grupo de servidores 1 al Grupo de servidores 2. No uses la CitrixClusterMembership dentro del archivo de copia de seguridad en el Grupo de servidores 2. Especifica el parámetro -HostBaseURL durante la importación, ya que la URL base del host del Grupo de servidores 2 no debe cambiarse al mismo FQDN que está actualmente en uso por el Grupo de servidores 1. El Grupo de servidores 2 es una implementación existente.

  1. Exporta la configuración del Grupo de servidores 1 desde 2012R2-A, que es el servidor principal utilizado para administrar todo el grupo de servidores.

  2. Importa la configuración del Grupo de servidores 1 en la instalación predeterminada de fábrica en el nodo 2012R2-C, que será el servidor principal del nuevo Grupo de servidores 2.

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

Crear una copia de seguridad cifrada de la configuración de tu servidor

Un objeto de credencial de PowerShell comprende tanto un nombre de usuario de cuenta de Windows como una contraseña. Los objetos de credencial de PowerShell garantizan que tu contraseña permanezca protegida en la memoria.

Nota:

Para cifrar un archivo de copia de seguridad de configuración, solo necesitas la contraseña para realizar el cifrado y descifrado. El nombre de usuario almacenado dentro del objeto de credencial no se utiliza. Debes crear un objeto de credencial que contenga la misma contraseña dentro de la sesión de PowerShell que se utiliza tanto en los servidores de exportación como de importación. Dentro del objeto de credencial puedes especificar cualquier usuario.

PowerShell requiere que especifiques un usuario al crear un nuevo objeto de credencial. Este código de ejemplo obtiene el usuario de Windows actualmente conectado para mayor comodidad.

Crea un objeto de credencial de PowerShell dentro de tu sesión de PowerShell en el servidor de exportación.

$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-->

Exporta la configuración a backup.ctxzip, que es un archivo zip cifrado.

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

Crea un objeto de credencial de PowerShell idéntico dentro de tu sesión de PowerShell en el servidor de importación.

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

Desproteger un archivo de copia de seguridad cifrado existente

$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-->
Exportar e importar la configuración de StoreFront