Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avez-vous déjà parcouru l’interface d’installation de SQL Server en sélectionnant les mêmes boutons, en entrant les mêmes informations et en ne lui donnant pas une seconde réflexion ? L’installation s’est terminée, mais vous avez oublié de spécifier le groupe DBA dans le rôle sysadmin . Ensuite, vous deviez effectuer ces opérations :
- Passer en mode utilisateur unique.
- Ajoutez les utilisateurs ou groupes appropriés.
- Sauvegardez SQL Server en mode multiutilisateur.
- Test.
Ce qui est pire, c’est maintenant que la confiance de toute l’installation est ébranlée. « Qu’est-ce que j’ai oublié ? » tu pourrais te demander.
Découvrez powerShell Desired State Configuration (DSC). En utilisant DSC, vous créez un modèle de configuration que vous pouvez réutiliser sur des centaines et des milliers de serveurs. Selon la build, vous devrez peut-être ajuster quelques-uns des paramètres de configuration. Mais ce n’est pas un problème significatif, car vous pouvez conserver tous les paramètres standard en place. Il élimine la possibilité que vous oubliez d’entrer un paramètre important.
Cet article explore la configuration initiale d’une instance autonome de SQL Server 2017 sur Windows Server 2016 à l’aide de la ressource DSC SqlServerDsc . Certaines connaissances préalables de DSC sont utiles, car nous n’explorerons pas le fonctionnement de DSC.
Remarque
Cet article fait référence à PowerShell 5.1, qui est la version par défaut de PowerShell installée avec Windows Server 2016, 2019 et 2022.
Les éléments suivants sont requis pour cette procédure pas à pas :
- Machine qui exécute Windows Server 2016.
- Support d’installation de SQL Server 2017.
- Ressource DSC SqlServerDsc.
Conditions préalables
Dans la plupart des cas, DSC est utilisé pour gérer les conditions préalables requises. Mais pour les besoins de cette démonstration, nous gérons manuellement les prérequis.
Installer la ressource DSC SqlServerDsc
Téléchargez la ressource DSC SqlServerDsc depuis la PowerShell Gallery à l’aide de l’applet de commande Install-Module.
Remarque
Vérifiez que PowerShell s’exécute en tant qu’administrateur pour installer le module.
Install-Module -Name SqlServerDsc
Obtenez le média d’installation de SQL Server 2017
Téléchargez le support d’installation de SQL Server 2017 sur le serveur. Nous avons téléchargé SQL Server 2017 Enterprise à partir d’un abonnement Visual Studio et copié l’ISO dans C:\en_sql_server_2017_enterprise_x64_dvd_11293666.iso
.
À présent, l’ISO doit être extrait dans un répertoire :
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'
Créer la configuration
Paramétrage
Créez la fonction de configuration qui sera appelée pour générer les documents MOF (Managed Object Format) :
Configuration SQLInstall
{...}
Modules
Importez les modules dans la session active. Ces modules indiquent au document de configuration comment générer les documents MOF. Ils indiquent également au moteur DSC comment appliquer les documents MOF au serveur :
Import-DscResource -ModuleName SqlServerDsc
Ressources
.NET Framework
SQL Server s’appuie sur le .NET Framework. Nous devons donc nous assurer qu’il est installé avant d’installer SQL Server. La ressource WindowsFeature est utilisée pour installer la fonctionnalité Windows Net-Framework-45-Core :
WindowsFeature 'NetFramework45'
{
Name = 'Net-Framework-45-Core'
Ensure = 'Present'
}
SqlSetup
La ressource SqlSetup est utilisée pour indiquer à DSC comment installer SQL Server. Les paramètres requis pour une installation de base sont les suivants :
- InstanceName. Nom de l'instance. Utilisez MSSQLSERVER pour une instance par défaut.
- Fonctionnalités. Fonctionnalités à installer. Dans cet exemple, nous installons uniquement la fonctionnalité SQLEngine .
-
SourcePath. Chemin d’accès au support d’installation SQL. Dans cet exemple, nous avons stocké le support d’installation SQL dans
C:\SQL2017
. Un partage réseau peut réduire l’espace utilisé sur le serveur. - SQLSysAdminAccounts. Utilisateurs ou groupes qui doivent être membres du rôle sysadmin . Dans cet exemple, nous accordons au groupe Administrateurs local l'accès sysadmin.
Remarque
Nous vous déconseillons cette configuration dans un environnement à haute sécurité.
Une liste complète et une description des paramètres disponibles sur SqlSetup sont disponibles dans le référentiel GitHub SqlServerDsc.
La ressource SqlSetup installe uniquement SQL Server et ne conserve pas les paramètres appliqués. Par exemple, si sqlSysAdminAccounts est spécifié au moment de l’installation. Un administrateur peut ajouter ou supprimer des connexions à ou à partir du rôle sysadmin . Mais la ressource SqlSetup n’est pas affectée. Si vous souhaitez que DSC applique l’appartenance au rôle sysadmin , utilisez la ressource SqlServerRole .
Terminer la configuration
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'
}
}
}
Générer et déployer
Compiler la configuration
Pointez la source du script de configuration :
. .\SQLInstallConfiguration.ps1
Exécutez la fonction de configuration :
SQLInstall
Un répertoire appelé SQLInstall est créé dans le répertoire de travail. Il contient un fichier appelé localhost.mof. Examinez le contenu du MOF, qui montre la configuration DSC compilée.
Déployer la configuration
Pour démarrer le déploiement DSC de SQL Server, appelez l’applet de commande Start-DscConfiguration . Les paramètres suivants sont fournis à l’applet de commande :
-
Chemin d’accès. Chemin d’accès au dossier qui contient les documents MOF à déployer. par exemple
C:\SQLInstall
. - Attendez. Attendez la fin du travail de configuration.
- Force. Remplacez toutes les configurations DSC existantes.
- Verbeux. Afficher la sortie détaillée. Il est utile lorsque vous envoyez (push) une configuration pour la première fois pour faciliter la résolution des problèmes.
Start-DscConfiguration -Path C:\SQLInstall -Wait -Force -Verbose
À mesure que la configuration s’applique, le résultat détaillé vous montre ce qui se passe. Tant qu'aucune erreur (texte rouge) n'est levée, et que l'opération « Invoke CimMethod » apparaît à l'écran, SQL Server devrait alors être installé.
Valider l’installation
DSC
Les applets de commande Test-DscConfiguration peuvent déterminer si l’état actuel du serveur répond à l’état souhaité. Dans ce cas, il s’agit de l’installation de SQL Server. Le résultat de Test-DscConfiguration doit être True :
PS C:\> Test-DscConfiguration
True
Prestations
La liste des services retourne désormais les services 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
Serveur SQL
PS C:\> & sqlcmd -S $env:COMPUTERNAME
1> SELECT @@SERVERNAME
2> GO
1> quit