StoreFront

Exportar e importar la configuración de StoreFront

Nota:

Solo puede importar configuraciones de StoreFront que sean exactamente de la misma versión de StoreFront que la instalación de StoreFront de destino. A efectos de esta limitación, cada actualización acumulativa se considera una versión de producto diferente.

Puede exportar la configuración completa de una implementación de StoreFront. Esto incluye tanto implementaciones de un único servidor como implementaciones con un grupo de servidores. Si una implementación existente ya está presente en el servidor que realiza la importación, la configuración actual se borra y se sustituye por la configuración contenida en el archivo de copia de seguridad. Si el servidor de destino es una instalación limpia con los valores predeterminados de fábrica, se crea una implementación con la configuración importada almacenada en la copia de seguridad. La copia de seguridad de la configuración exportada es un archivo .zip único si no está cifrada, o un archivo .ctxzip si se eligió cifrar el archivo de copia de seguridad al crearlo.

Casos en los que se puede utilizar la exportación e importación de configuraciones

  • Solo implementaciones de copia de seguridad de StoreFront en un estado de confianza y funcionamiento correcto. Cualquier cambio en la configuración requiere que se realice una nueva copia de seguridad para reemplazar la anterior. No puede modificar las copias de seguridad existentes, ya que un hash del archivo backup.zip impide la modificación.
  • Copia de seguridad ANTES de actualizar la versión de StoreFront a efectos de recuperación ante desastres.
  • Clonación de implementaciones de prueba existentes de StoreFront para ponerlas en producción
  • Creación de entornos de aceptación de usuarios mediante la clonación de implementaciones de producción en un entorno de prueba.
  • Transferencia de StoreFront durante migraciones del sistema operativo, como la actualización del sistema operativo del host de Windows Server 2019 a Windows 2022. No se admiten las actualizaciones de versión locales del sistema operativo.
  • Creación de grupos de servidores adicionales en implementaciones para múltiples regiones, como en grandes empresas con varios centros de datos.

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

  • ¿Está usando actualmente algún ejemplo de SDK de autenticación publicado de Citrix, por ejemplo, personalizaciones para autenticación con palabra mágica o para autenticación con productos de terceros? En ese caso, debe instalar esos paquetes en TODOS los servidores donde se importa la configuración ANTES de importar la configuración que contenga métodos de autenticación adicionales. La importación de la configuración falla si los paquetes del SDK de autenticación no están instalados en los servidores donde se importa la misma. Si importa una configuración en un grupo de servidores, instale los paquetes de autenticación en todos los miembros del grupo.
  • Puede cifrar y descifrar los archivos de copia de seguridad. Los cmdlets PowerShell de importación y exportación admiten ambos casos de uso.
  • Puede descifrar copias de seguridad cifradas (.ctxzip) más adelante, pero StoreFront no puede volver a cifrar archivos de copia de seguridad no cifrados (.zip). Si se requiere una copia de seguridad cifrada, realice la exportación de nuevo mediante un objeto de credenciales de PowerShell que contenga la contraseña que usted quiera.
  • El ID de sitio del sitio web de IIS donde StoreFront está instalado actualmente (servidor de exportación) debe coincidir con el ID de sitio del sitio web de IIS de destino (servidor de importación) donde se quiere restaurar la copia de seguridad de la configuración de StoreFront.

Cmdlets de PowerShell

Export-STFConfiguration

Parámetro Descripción
-TargetFolder (cadena) La ruta de exportación al archivo de copia de seguridad. Ejemplo: “$env:userprofile\desktop\”
-Credential (PSCredential Object) Especifica un objeto de credenciales para crear un archivo de copia de seguridad .ctxzip durante la exportación. El objeto de credenciales de PowerShell debe contener la contraseña que se usará para el cifrado y el descifrado. No use -Credential al mismo tiempo que el parámetro -NoEncryption. Ejemplo: $CredObject
-NoEncryption (conmutador) Especifica que el archivo de copia de seguridad debe ser un archivo .zip no cifrado. No use -NoEncryption al mismo tiempo que el parámetro -Credential.
-ZipFileName (cadena) El nombre del archivo de copia de seguridad de la configuración de StoreFront. No agregue ninguna extensión de archivo como .zip o .ctxzip. La extensión del archivo se agrega automáticamente dependiendo de si se especificó el parámetro -Credential o el parámetro -NoEncryption durante la exportación. Por ejemplo: “copiaSeguridad”
-Force (booleano) Este parámetro sobrescribe automáticamente los archivos de copia de seguridad con el mismo nombre de archivo que los ya existentes en la ubicación de exportación especificada.

Importante:

El parámetro -SiteID de StoreFront 3.5 se retiró en la versión 3.6. Ya no es necesario especificar el ID de sitio SiteID cuando se realiza una importación, porque siempre se usará el parámetro SiteID contenido en el archivo de copia de seguridad. Asegúrese de que el ID de sitio coincide con el sitio web de StoreFront existente ya configurado dentro de IIS en el servidor de importación.NO se admite la importación de configuraciones de SiteID 1 a SiteID 2.

Import-STFConfiguration

Parámetro Descripción
-ConfigurationZip (cadena) La ruta completa del archivo de copia de seguridad que quiere importar. Esto debe incluir la extensión del archivo. Use .zip para copias de seguridad no cifradas y .ctxzip para las cifradas. Ejemplo:$env:userprofile\desktop\backup.ctxzip
-Credential (PSCredential Object) Especifique un objeto de credenciales para descifrar una copia de seguridad cifrada durante la importación. Ejemplo:$CredObject
-HostBaseURL (cadena) Si se incluye este parámetro, se usará la URL base de host que usted especifique en lugar de usarse la URL base de host del servidor desde donde se realiza la exportación. Ejemplo:https://<importingserver>.example.com

Unprotect-STFConfigurationBackup

Parámetro Descripción
-TargetFolder (cadena)
-Credential (PSCredential Object)
La ruta de exportación al archivo de copia de seguridad. Ejemplo:$env:userprofile\desktop
Use este parámetro para crear una copia no cifrada del archivo de copia de seguridad cifrado. Especifique el objeto de credenciales de PowerShell que contiene la contraseña que debe usarse para el descifrado. Ejemplo:$CredObject
-EncryptedConfigurationZip (cadena) La ruta completa del archivo de copia de seguridad cifrado que quiere descifrar. Debe especificar la extensión de archivo .ctxzip. Ejemplo:$env:userprofile\\desktop\\backup.ctxzip
-OutputFolder (cadena)
-Force (booleano)
La ruta para crear una copia no cifrada (.zip) del archivo de copia de seguridad cifrado (.ctxzip). El archivo cifrado de copia de seguridad original se conserva para poder volver a utilizarlo. No especifique ningún 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 ya existentes 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

Abra el entorno ISE (Integrated Scripting Environment) de PowerShell en el servidor de StoreFront y ejecute:

$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 un solo servidor

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

Exporte la configuración del servidor del que quiere realizar una copia de seguridad.

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

Copie el archivo backup.zip en una ubicación segura. Puede utilizar esta copia de seguridad para recuperación ante desastres a fin de restaurar el servidor a su estado anterior.

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

Realizar 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

Exporte la configuración del servidor del que quiere realizar una copia de seguridad.

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

Copie 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 IIS personalizado. Restaurar 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 de ubicarse en el sitio web predeterminado de IIS. El ID de sitio 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 no perteneciente al sistema, como D:\, o en la unidad predeterminada del sistema C:\, pero debe usar un ID de sitio de IIS mayor que 1.

Se ha configurado un nuevo sitio web llamado StoreFront dentro de IIS, que usa SiteID = 2. StoreFront ya está implementado en el sitio web personalizado y su ruta física se encuentra en la unidad d:\inetpub\wwwrooot.

Captura de pantalla de la ventana Agregar sitio web de IIS

  1. Exportar una copia de la configuración del servidor A.
  2. En el Servidor B, configure IIS con un nuevo sitio web llamado StoreFront, que también usa SiteID 2.
  3. Importar la configuración del Servidor A en el Servidor B. El ID de sitio que contiene la copia de seguridad es el ID que se utiliza y debe coincidir con el sitio web de destino donde se quiere importar la configuración de StoreFront.

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

Casos de grupos de servidores

Caso 1: Hacer una copia de seguridad de la configuración de un grupo de servidores y restaurarla más tarde en la implementación del mismo grupo de servidores

Anteriormente se hizo una copia de seguridad de la configuración, cuando el grupo de servidores solo tenía dos servidores de StoreFront, 2012R2-A y 2012R2-B. En el archivo de la copia de seguridad, dispone de un registro de CitrixClusterMembership. Este registro contiene el momento en el que se realizó la copia de seguridad con los dos servidores originales 2012R2-A y 2012R2-B. Posteriormente a la creación de esa copia de seguridad original, la implementación del grupo de servidores de StoreFront ha aumentado de tamaño y se ha agregado un nodo 2012R2-C al grupo de servidores. La configuración de StoreFront subyacente del grupo de entrega que está guardada en la copia de seguridad no ha cambiado. La entrada de miembros del grupo CitrixClusterMembership de tres servidores debe conservarse, aunque se importe la antigua copia de seguridad que contiene solo los dos nodos originales del grupo de servidores. Durante la importación, se conserva la información de miembros del clúster CitrixClusterMembership y luego se vuelve a copiar, una vez que la configuración se haya importado correctamente en el servidor principal. La importación también conserva la información de miembros del clúster CitrixClusterMembership aunque se hayan quitado nodos del grupo de servidores posteriormente a la creación de la copia de seguridad original.

  1. Exporte 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, se agrega 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 correcto previo conocido. StoreFront hace una copia de seguridad del clúster actual CitrixClusterMembership de tres servidores durante el proceso de importación, y luego la restaura, una vez completada correctamente la importación.

  4. Importe la configuración del grupo de servidores 1 de vuelta en el nodo 2012R2-A.

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

Caso 2: Hacer una copia de seguridad de una configuración existente desde el grupo de servidores 1 y usarla para crear un nuevo grupo de servidores en una instalación diferente predeterminada de fábrica. A continuación, se pueden agregar nuevos servidores miembros de grupo 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, la del grupo de servidores 1, que también contiene dos servidores: 2012R2-A y 2012R2-B. El clúster CitrixClusterMembership contenido en el archivo de copia de seguridad no se usa al crear un nuevo grupo de servidores. Siempre se hace una copia de seguridad del clúster CitrixClusterMembership actual y luego se restaura después de una importación correcta. Al crear una implementación con una configuración importada, el grupo de seguridad de CitrixClusterMembership solo contiene el servidor que recibe la importación hasta que se agregan servidores adicionales al grupo. El grupo de servidores 2 es una nueva implementación que va a coexistir con el grupo de servidores 1. Especifique el parámetro -HostBaseURL. El grupo de servidores 2 se creará con una instalación de StoreFront limpia que tiene los valores predeterminados de fábrica.

  1. Exporte 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. Importe la configuración del grupo de servidores 1 en el nodo 2012R2-C, que será el servidor principal utilizado para administrar todo el grupo de servidores 2 recién creado.

    Import-STFConfiguration -configurationZip "$env:userprofile\desktop\backup.ctxzip" -HostBaseURL "https://servergroup2.example.com"
    <!--NeedCopy-->
    
  3. Incorpore servidores adicionales que formarán parte de la nueva implementación del grupo de servidores 2. La propagación de la configuración recién importada desde el grupo de servidores 1 a todos los nuevos miembros del grupo de servidores 2 es automática, ya que esto forma parte del proceso normal de incorporación de nuevos servidores a un grupo.

Caso 3: Hacer una copia de seguridad de una configuración existente desde el grupo de servidores 1 y usarla para sobrescribir la configuración existente del grupo de servidores 2

El grupo de servidores 1 y el grupo de servidores 2 ya existen, y están en dos centros de datos distintos. Se han hecho muchos cambios en la configuración de StoreFront del grupo de servidores 1 y deben aplicarse al grupo de servidores 2 situado en el otro centro de datos. Estos cambios pueden transferirse del grupo de servidores 1 al grupo de servidores 2. No use la información de CitrixClusterMembership contenida en el archivo de copia de seguridad en el grupo de servidores 2. Especifique el parámetro -HostBaseURL durante la importación, ya que la URL base de host del grupo de servidores 2 no debe cambiarse por el mismo FQDN que usa el grupo de servidores 1. El grupo de servidores 2 es una implementación existente.

  1. Exporte 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. Importe la configuración del grupo de servidores 1 en el nodo 2012R2-C que tiene la instalación predeterminada de fábrica, y será el servidor principal utilizado para el 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 del servidor

Un objeto de credenciales de PowerShell se compone de un nombre de usuario y una contraseña de una cuenta de Windows. Los objetos de credenciales de PowerShell garantizan que su contraseña queda protegida en memoria.

Nota:

Para cifrar un archivo de copia de seguridad de configuración, necesita solo la contraseña para realizar el cifrado y el descifrado. El nombre de usuario guardado con el objeto de credenciales no se usa. Debe crear un objeto de credenciales que contenga la misma contraseña dentro de la sesión de PowerShell que se utiliza en los servidores de exportación y de importación. Dentro del objeto de credenciales puede especificar cualquier usuario.

PowerShell requiere la especificación de un usuario al crear un nuevo objeto de credenciales. Este ejemplo de código obtiene el usuario de Windows de la sesión actual.

Cree un objeto de credenciales de PowerShell dentro de su 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-->

Exporte la configuración al archivo backup.ctxzip, que es un archivo zip cifrado.

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

Cree un objeto de credenciales de PowerShell idéntico dentro de su 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 cifrado de copia de seguridad 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