Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
¿Alguna vez ha pasado por la interfaz de instalación de SQL Server simplemente seleccionando los mismos botones, escribiendo la misma información y sin darle un segundo pensamiento? La instalación finalizó, pero olvidaste especificar el grupo DBA en el rol de sysadmin. Entonces tenías que hacer estas cosas:
- Cambiar a modo de usuario único.
- Agregue los usuarios o grupos adecuados.
- Realice una copia de seguridad de SQL Server en modo multiusuario.
- Prueba.
Lo peor es que ahora la confianza de toda la instalación está sacudida. "¿Qué más olvidé?" podría preguntarse usted mismo.
Obtenga información sobre La configuración de estado deseado (DSC) de PowerShell. Mediante DSC, se crea una plantilla de configuración que puede reutilizar en cientos y miles de servidores. En función de la compilación, es posible que tenga que ajustar algunos de los parámetros de configuración. Pero eso no es un problema importante porque puede mantener toda la configuración estándar en su lugar. Elimina la posibilidad de que se olvide de escribir un parámetro importante.
En este artículo se explora la configuración inicial de una instancia independiente de SQL Server 2017 en Windows Server 2016 mediante el recurso DSC SqlServerDsc . Algunos conocimientos previos de DSC son útiles, ya que no exploraremos cómo funciona DSC.
Nota:
En este artículo se hace referencia a PowerShell 5.1, que es la versión predeterminada de PowerShell instalada con Windows Server 2016, 2019 y 2022.
Para este tutorial se requieren los siguientes elementos:
- Una máquina que ejecuta Windows Server 2016.
- Medios de instalación de SQL Server 2017.
- El recurso DSC SqlServerDsc.
Prerrequisitos
En la mayoría de los casos, DSC se usa para controlar los requisitos previos. Sin embargo, para los fines de esta demostración, tratamos los requisitos previos manualmente.
Instalación del recurso de DSC SqlServerDsc
Descargue el recurso DSC SqlServerDsc de la Galería de PowerShell mediante el cmdlet Install-Module .
Nota:
Asegúrese de que PowerShell ejecuta Como administrador para instalar el módulo.
Install-Module -Name SqlServerDsc
Obtener los medios de instalación de SQL Server 2017
Descargue los medios de instalación de SQL Server 2017 en el servidor. Descargamos SQL Server 2017 Enterprise desde una suscripción de Visual Studio y copiamos el ISO en C:\en_sql_server_2017_enterprise_x64_dvd_11293666.iso.
Ahora es necesario extraer el ISO en un directorio.
New-Item -Path C:\SQL2017 -ItemType Directory
$mountResult = Mount-DiskImage -ImagePath 'C:\en_sql_server_2017_enterprise_x64_dvd_11293666.iso' -PassThru
$volumeInfo = $mountResult | Get-Volume
$driveInfo = Get-PSDrive -Name $volumeInfo.DriveLetter
Copy-Item -Path ( Join-Path -Path $driveInfo.Root -ChildPath '*' ) -Destination C:\SQL2017\ -Recurse
Dismount-DiskImage -ImagePath 'C:\en_sql_server_2017_enterprise_x64_dvd_11293666.iso'
Crear la configuración
Configuración
Cree la función de configuración a la que se llamará para generar los documentos de Formato de objeto administrado (MOF):
Configuration SQLInstall
{...}
Módulos
Importe los módulos en la sesión actual. Estos módulos indican al documento de configuración cómo compilar los documentos MOF. También indican al motor de DSC cómo aplicar los documentos MOF al servidor:
Import-DscResource -ModuleName SqlServerDsc
Recursos
.NET Framework
SQL Server se basa en .NET Framework. Por lo tanto, es necesario asegurarse de que está instalado antes de instalar SQL Server. El recurso WindowsFeature se usa para instalar la característica de Windows Net-Framework-45-Core :
WindowsFeature 'NetFramework45'
{
Name = 'Net-Framework-45-Core'
Ensure = 'Present'
}
SqlSetup
El recurso SqlSetup se usa para indicar a DSC cómo instalar SQL Server. Los parámetros necesarios para una instalación básica son los siguientes:
- InstanceName. Nombre de la instancia. Use MSSQLSERVER para una instancia predeterminada.
- Características. Características para instalar. En este ejemplo, solo se instala la característica SQLEngine .
-
SourcePath. Ruta de acceso al medio de instalación de SQL. En este ejemplo, almacenamos los medios de instalación de SQL en
C:\SQL2017. Un recurso compartido de red puede minimizar el espacio usado en el servidor. - SQLSysAdminAccounts. Los usuarios o grupos que van a ser miembros del rol sysadmin . En este ejemplo, se concede acceso sysadmin al grupo administradores local.
Nota:
No se recomienda esta configuración en un entorno de alta seguridad.
Hay una lista completa y una descripción de los parámetros disponibles en SqlSetup en el repositorio de GitHub SqlServerDsc.
El recurso SqlSetup solo instala SQL Server y no mantiene la configuración que se aplica. Un ejemplo es si sqlSysAdminAccounts se especifica en el momento de la instalación. Un administrador puede agregar o quitar inicios de sesión en el rol sysadmin o desde este. Pero el recurso SqlSetup no se verá afectado. Si desea que DSC aplique la pertenencia al rol sysadmin , use el recurso SqlServerRole .
Finalización de la configuración
Configuration SQLInstall
{
Import-DscResource -ModuleName SqlServerDsc
node localhost
{
WindowsFeature 'NetFramework45'
{
Name = 'NET-Framework-45-Core'
Ensure = 'Present'
}
SqlSetup 'InstallDefaultInstance'
{
InstanceName = 'MSSQLSERVER'
Features = 'SQLENGINE'
SourcePath = 'C:\SQL2017'
SQLSysAdminAccounts = @('Administrators')
DependsOn = '[WindowsFeature]NetFramework45'
}
}
}
Compilación e implementación
Compilar la configuración
Origen del punto del script de configuración:
. .\SQLInstallConfiguration.ps1
Ejecute la función de configuración:
SQLInstall
Se crea un directorio denominado SQLInstall en el directorio de trabajo. Contiene un archivo denominado localhost.mof. Examine el contenido del MOF, que muestra la configuración de DSC compilada.
Implementar la configuración
Para iniciar la implementación de DSC de SQL Server, llame al cmdlet Start-DscConfiguration . Los parámetros siguientes se proporcionan al cmdlet :
-
Ruta de acceso. Ruta de acceso a la carpeta que contiene los documentos MOF que se van a implementar. Un ejemplo es
C:\SQLInstall. - Espera. Espere a que finalice el trabajo de configuración.
- Force. Invalide las configuraciones de DSC existentes.
- Detallado. Muestra la salida detallada. Resulta útil cuando se inserta una configuración por primera vez para ayudar a solucionar problemas.
Start-DscConfiguration -Path C:\SQLInstall -Wait -Force -Verbose
A medida que se aplica la configuración, la salida detallada muestra lo que sucede. Siempre que no se produzcan errores (texto rojo), cuando aparezca la operación "Invocar CimMethod" completa en la pantalla, SQL Server debería estar instalado.
Validación de la instalación
DSC
Los cmdlets Test-DscConfiguration pueden determinar si el estado actual del servidor cumple el estado deseado. En este caso, es la instalación de SQL Server. El resultado de Test-DscConfiguration debe ser True:
PS C:\> Test-DscConfiguration
True
Servicios
La lista de servicios ahora devuelve los servicios de SQL Server:
PS C:\> Get-Service -Name *SQL*
Status Name DisplayName
------ ---- -----------
Running MSSQLSERVER SQL Server (MSSQLSERVER)
Stopped SQLBrowser SQL Server Browser
Running SQLSERVERAGENT SQL Server Agent (MSSQLSERVER)
Running SQLTELEMETRY SQL Server CEIP service (MSSQLSERVER)
Running SQLWriter SQL Server VSS Writer
Servidor SQL
PS C:\> & sqlcmd -S $env:COMPUTERNAME
1> SELECT @@SERVERNAME
2> GO
1> quit