Migrar y restaurar
A menudo resulta deseable migrar la configuración de un servidor de PowerShell Universal de una máquina a otra. Esto puede deberse a un cambio de infraestructura o a una restauración desde una copia de seguridad. Puede ser por actualizaciones del sistema operativo o por mantenimiento general del centro de datos.
Este documento explica los pasos necesarios para migrar la configuración de PowerShell Universal a otra máquina.
Recomendamos detener el servicio de PowerShell Universal antes de realizar la migración o la restauración.
Stop-Service 'PowerShellUniversal'Según el tipo de migración o restauración, es posible que no necesite realizar todas estas acciones.
Datos de configuración
Los ficheros de datos de configuración se almacenan de forma predeterminada en %ProgramData%\UniversalAutomation\Repository. Estos incluirán funciones como APIs, Scripts y Apps. Todo el directorio es necesario para que funcione la configuración del sistema de destino.
Puede copiar la carpeta manualmente o mediante PowerShell. Asegúrese de incluir todos los subdirectorios.
Copy-Item $ENV:ProgramData\UniversalAutomation\Repository \\newServer\C$\ProgramData\UniversalAutomation\Repository -RecurseBase de datos
La migración de la base de datos dependerá del tipo de base de datos utilizado.
SQLite
Deberá copiar el fichero de base de datos SQLite a la ubicación de base de datos configurada o predeterminada. En una instalación predeterminada, será %ProgramData%\UniversalAutomation\database.db. La cuenta de máquina o la cuenta de servicio de destino necesitará acceso de lectura y escritura a este fichero de base de datos.
Copy-Item $ENV:ProgramData\UniversalAutomation\database.db \\newServer\C$\ProgramData\UniversalAutomation\database.db Si está restaurando desde una copia de seguridad, es posible que deba Degradar el esquema si actualizó la versión.
SQL y PostgreSQL
Como estas bases de datos se almacenan fuera del servidor de PowerShell Universal, no necesita realizar una migración de la base de datos en sí. Deberá asegurarse de que el servidor de destino tenga acceso de red al host de SQL.
Si está restaurando desde una copia de seguridad, es posible que deba Degradar el esquema si actualizó la versión.
Configuración de la aplicación
El fichero appsettings.json de PowerShell Universal es necesario para proporcionar la configuración de servidor adecuada a la plataforma. De forma predeterminada, se almacena en %ProgramData%\PowerShellUniversal\appsettings.json. Deberá copiarlo al nuevo servidor en la misma ubicación.
Este fichero contiene ajustes de configuración como el certificado HTTP, la autenticación, la configuración de sincronización de git, las opciones de configuración de la API y más.
Los ficheros appsettings.json no cambian entre actualizaciones y probablemente no necesite realizar esta acción durante una restauración.
Bóvedas de secretos
PowerShell Universal incluye 3 bóvedas de secretos integradas que podrían necesitar migración. La bóveda de base de datos se incluye con la migración de la base de datos y no requiere pasos adicionales. Si está realizando una restauración, es poco probable que necesite realizar estas operaciones de restauración a menos que las bóvedas de secretos se hayan corrompido.
PSUSecretStore
La bóveda PSUSecretStore utiliza el módulo SecretStore de Microsoft. Este módulo almacena secretos en disco mediante cifrado simétrico. Se incluye una clave de cifrado predeterminada con las instalaciones de PowerShell Universal. Si la clave se actualizó, la nueva clave estará en el fichero appsettings.json que migró en el paso anterior. También deberá mover el almacén de secretos físico al sistema de ficheros del nuevo servidor.
El módulo SecretStore utiliza una ubicación de almacenamiento específica del usuario para garantizar que se apliquen las ACL en los propios ficheros. Deberá asegurarse de copiar el contenido de la bóveda a la cuenta del usuario que ejecutará PowerShell Universal en el nuevo sistema.
BuiltInLocalVault
El BuiltInLocalVault solo está disponible en Windows y utiliza el Administrador de credenciales para almacenar secretos. Deberá recrear estos secretos en el almacén del Administrador de credenciales del nuevo sistema.
Dentro del Administrador de credenciales, encontrará los secretos de PowerShell almacenados con el prefijo ps:.

Aunque no es posible extraer credenciales directamente desde la interfaz del Administrador de credenciales, puede utilizar los módulos de Secret Management directamente. Para recuperar secretos, puede hacer lo siguiente.
En el nuevo servidor, puede hacer lo contrario y llamar a Set-Secret. Tenga en cuenta que estos comandos deben ejecutarse como la cuenta de servicio que ejecuta PowerShell Universal para poder almacenarlos correctamente en la cuenta del Administrador de credenciales del usuario.
Autenticación
Ciertos tipos de autenticación requerirán configuración fuera de PowerShell Universal. A menos que esté moviendo la máquina que ejecuta PowerShell Universal o cambiando las URLs accesibles, no necesitará realizar estas acciones.
OpenID Connect
Asegúrese de que las URLs de inicio de sesión correctas estén configuradas en su proveedor de identidad (p. ej., Azure AD u Okta) si el nombre de host del servidor va a cambiar. Sin URLs de inicio de sesión correctamente configuradas, los usuarios no podrán iniciar sesión en el nuevo sistema.
Windows
La autenticación de Windows requiere la configuración de un SPN para la cuenta de servicio que ejecuta el servicio de PowerShell Universal. Asegúrese de que este SPN esté en su lugar antes de intentar utilizar la autenticación de Windows con el nuevo sistema.
Otros recursos y consideraciones
Puede haber otros recursos que PowerShell Universal utilice en el sistema y que deban tenerse en cuenta al migrar o restaurar servidores. Normalmente, no necesitará preocuparse por estos recursos durante una restauración, ya que deberían permanecer iguales si la máquina no ha cambiado.
Módulos de PowerShell
Variables de entorno
Privilegios de cuentas locales
Permisos del sistema de ficheros
Configuración del proxy
Certificados
Claves SSH o credenciales de Git
Configuración de DNS
Ficheros de la aplicación
Una vez realizados todos los pasos siguientes, ya puede instalar PowerShell Universal en el nuevo servidor. Si está degradando durante una restauración, siga la documentación de Degradar .
MSI \ Kestrel
El paquete MSI de PowerShell Universal instala la plataforma como un servicio de Windows que aloja su propio servidor web denominado Kestrel. Para instalar el servicio, descargue el MSI y ejecútelo. Recomendamos utilizar exactamente la misma versión que el servidor de origen.
Durante la instalación del MSI, deje toda la configuración con los valores predeterminados. Recomendamos dejar la cuenta de servicio en blanco y desmarcar la casilla que indica iniciar el servicio de PowerShell Universal una vez completada la instalación.
Cuando la instalación se complete, el servicio se habrá creado pero no estará en ejecución. Abra el Administrador de control de servicios (services.msc) y establezca la cuenta de servicio para el servicio de PowerShell Universal. Inicie el servicio.
Depuración de problemas
Al migrar un servicio de PowerShell Universal, puede encontrarse con problemas derivados de diferencias de configuración entre los dos sistemas. A continuación se indican los lugares donde buscar más información.
Visor de eventos
si el servicio se inicia y se detiene, puede haber un problema con el acceso a la base de datos. Recomendamos consultar el registro de Aplicación en el Visor de eventos. PowerShell Universal notificará dos errores de aplicación que incluirán .NET en el nombre. El segundo de los dos errores proporcionará una excepción legible con más detalles.
Registros del sistema
PowerShell Universal escribirá los registros del sistema en el directorio %ProgramData%\PowerShellUniversal. Busque cadenas que empiecen por [ERR] para recopilar más información sobre los problemas de la instalación.
Notificaciones
Después de migrar el servicio, compruebe si hay notificaciones de error que puedan indicar una configuración incorrecta del sistema.
Última actualización
¿Te fue útil?