[SQL Server] Installation silencieuse de SQL Server 2016

Dans ce billet, nous allons brièvement aborder le cas d’une installation silencieuse de SQL Server 2016. PolyBase y est également abordé.

Pour savoir comment installer une instance SQL Server 2016 via l’assistant, vous pouvez faire un saut ici.

Qu’est-ce qu’une installation silencieuse ?

Une installation silencieuse est une installation de SQL Server en ligne de commandes. Cette approche est très utile dans le cas où plusieurs instances SQL Server de même configuration doivent être déployées.

L’installation silencieuse utilise l’utilitaire d’installation setup.exe pour la mise-en-place d’une instance SQL Server.

Notons que depuis SQL Server 2012, il est désormais possible de surcharger toutes les valeurs du fichier de configuration par passage de paramètres. Cela permet d’éviter de devoir stocker des mots-de-passe sensibles dans le fichier de configuration.

Le lien suivant présente de manière plus exhaustive les différents éléments techniques d’une installation silencieuse :
https://msdn.microsoft.com/en-us/library/ms144259(v=sql.130).aspx.

Exemple de mise-en-œuvre…

… via l’utilisation d’un fichier de configuration

Cette méthode d’installation silencieuse consiste à générer un fichier de configuration à partir de la boîte de dialogue d’installation. Un tel fichier contient toutes les informations nécessaires à l’installation et configuration d’une instance SQL Server telles que le type d’instance (default ou named), le nom de l’instance (quand il existe), les comptes d’exécution, les composants (SSAS ? SSIS ? SSRS ? FTS ?…), la collation, le chemin d’accès des fichiers de SQL Server (systèmes, bases de données, sauvegardes, etc…), etc…

Pour ce faire, suivez toutes les instructions relative à l’installation de SQL Server 2016 vues ici via l’assistant d’installation, jusqu’à arriver à l’étape Prêt pour l’installation (ou Ready to install) :


Arrivé à cette étape, cliquez sur Cancel.

L’annulation faite, vous pouvez récupérer le fichier de configuration ConfigurationFile.ini dans le dossier Setup Bootstrap (comme on peut l’observer sur la figure ci-dessus) : %ProgramFiles%\Microsoft SQL Server\130\Setup Bootstrap\Log\<YYYYMMDD_HHMMSS>.

Si vous utilisez des comptes de service, il est possible de spécifier les paramètres /**SVCPASSWORD (où ** est un service, comme par exemple SQL) de mot-de-passe (non recommandé) et /IACCEPLICENSETERMS d’acceptation de la licence d’utilisation directement dans le fichier de configuration.

Pour lancer l’installation silencieuse, qu’elle soit en standalone
ou en failover cluster, il suffira d’utiliser le paramètre /CONFIGURATIONFILE de setup.exe et de spécifier, ensuite le bon fichier de configuration.

setup.exe /Q /PID= »<License_key> » /CONFIGURATIONFILE=ConfigurationFile.ini

L’utilisation du paramètre /Q permet d’indiquer à Windows que l’installation doit être silencieuse. Le paramètre /IACCEPTSQLSERVERLICENSETERMS d’indiquer que l’on accepte les termes de la licence d’utilisation de SQL Server.

Soulignons toutefois que les paramètres de mot-de-passe /**SVCPASSWORD (où ** est un service, comme par exemple SQL) sont inutiles si on utilise des compte systèmes de type LOCAL SYSTEM, NETWORK SERVICE (cas de /ISSVCPASSWORD pour SSIS, par exemple),…

En outre, la clé de licence peut également être spécifiée dans le fichier de configuration.

Notons que l’option /Q indique respectivement que l’installation sera silencieuse et sans interface utilisateur tandis que l’option /QS permet de lancer une installation avec affichage de sa progression, mais sans possibilité d’entrer d’informations ou de réponses (i.e., YES, NO,…).

Voici quelques conseils :

  • Pour des raisons de facilité, n’hésitez pas à copier ConfigurationFile.ini dans le dossier où se trouve setup.exe. Cela permettra de ne pas avoir à spécifier tout le chemin d’accès du fichier de configuration dans le paramètre /CONFIGURATIONFILE.
  • N’oubliez pas de spécifier la valeur de /PID qui correspond à la clé de licence d’utilisation. Sans cela, SQL Server est installé en version d’évaluation.

… sans l’utilisation d’un fichier de configuration

Il est tout à fait possible de déployer une instance SQL Server en mode silencieux, sans utilisation d’un fichier de configuration, bien que cette approche soit peu esthétique (ou simple). Pour ce faire, il suffit de taper la ligne de commande suivante (adaptée selon le contexte des besoins vu ici) et d’utiliser les mêmes paramètres (et éventuellement quelques paramètres supplémentaires) que ceux contenus dans le fichier de configuration :

  • Pour une installation en standalone :
setup.exe /Q /ACTION=Install /PID=xxxxx /FEATURES=SQL,AS,RS,IS,TOOLS,POLYBASE,SQL_SHARED_MR
/INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
/INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
/ASSVCACCOUNT="NT Service\MSOLAP$SQL Server"
/ASSVCSTARTUPTYPE="Automatic"
/ASCOLLATION="Latin1_General_CI_AS"
/ASDATADIR="D:\SQL Server\SSAS\SSAS Data"
/ASLOGDIR="D:\SQL Server\SSAS\SSAS Logs"
/ASBACKUPDIR="D:\SQL Server\SSAS\SSAS Backups"
/ASTEMPDIR="D:\SQL Server\SSAS\SSAS Temp"
/ASCONFIGDIR="C:\Program Files\Microsoft SQL Server\MSAS13.SQL Server\OLAP\Config"
/ASPROVIDERMSOLAP="1"
/ASSYSADMINACCOUNTS="Mac-ROG\Mac"
/ASSERVERMODE="MULTIDIMENSIONAL"
/SQLSVCACCOUNT="NT Service\SQL Server$SQL Server"
/SQLSYSADMINACCOUNTS="Mac-ROG\Mac"
/SECURITYMODE="SQL"
/SQLBACKUPDIR="D:\SQL Server\SQL Server\SQL Backups\BAK"
/SQLUSERDBDIR="D:\SQL Server\SQL Server\SQL Data"
/SQLUSERDBLOGDIR="D:\SQL Server\SQL Server\SQL Logs"
/SQLTEMPDBDIR="D:\SQL Server\SQL TempDB"
/SQLTEMPDBLOGDIR="D:\SQL Server\SQL TempDB"
/ADDCURRENTUSERASSQLADMIN="False"
/RSSVCACCOUNT="NT Service\ReportServer$SQL Server"
/BROWSERSVCSTARTUPTYPE="Disabled"
/RSINSTALLMODE="FilesOnlyMode" 
/RSSVCSTARTUPTYPE="Automatic"
/ISSVCACCOUNT="NT Service\MsDtsServer130"
/ISSVCSTARTUPTYPE="Automatic"
/FTSVCACCOUNT="NT Service\SQL ServerFDLauncher$SQL Server"
/PBENGSVCACCOUNT="NT Service\SQL Server$SQL Server"
/PBENGSVCSTARTUPTYPE="Automatic"
/PBSCALEOUT="False"
/PBPORTRANGE=16450-16460
/IACCEPTSQLSERVERLICENSETERMS
/IACCEPTROPENLICENSETERMS

L’exemple de script ci-dessus installe tous les services de SQL Server (SQL, SSAS, SSIS, SSRS). Si, éventuellement, vous utilisez des comptes de service Active Directory, vous pouvez y spécifier leur mot-de-passe (par exemple, pour respectivement le moteur SQL, SSAS et SSRS : /SQLSVPASSWORD, /ASSVPASSWORD et /RSSVPASSWORD), sinon pas de mot-de-passe (comme dans notre cas).

  • Pour une installation en failover cluster :

Voir section Failover Cluster Parameters du BOL : http://msdn.microsoft.com/en-us/library/ms144259(v=sql.130).aspx qui traite de la préparation et installation d’un cluster en ligne de commandes, et de l’ajout de nœuds.

 

  • Pour un upgrade :

D’une version à l’autre :

setup.exe /Q /ACTION=Upgrade

D’une édition à l’autre :

setup.exe /Q /ACTION=EditionUpgrade /INSTANCENAME=SQL ServerSERVER 
/PID=<clé de la nouvelle edition>

En résumé…

Le tableau ci-dessous présente quelques paramètres importants pour tout type d’installation silencieuse :

Paramètre Valeur(s)
/PID indique la clé de licence de MSSQL. Il est recommandé de ne pas l’écrire au sein du fichier de configuration INI. Requis s’il s’agit d’une édition autre qu’Evaluation et Express. Clé de licence d’utilisation.
/ACTION indique la nature du lancement. INSTALL, UNINSTALL, UPGRADE, INSTALLFAILOVERCLUSTER,
EDITIONUPGRADE, ADDNODE, REMOVENODE, UNINSTALLFAILOVERCLUSTER,
REPAIR, PREPAREIMAGE (pour la préparation d’une installation),
*COMPLETEIMAGE (pour l’installation de l’instance preparée),
PREPAREFAILOVERCLUSTER (pour la préparation d’un cluster de basculement), COMPLETEFAILOVERCLUSTER (pour la complétion d’un cluster de basculement)…
/IACCEPTSQLSERVERLICENSETERMS indique si l’on accepte les termes de la licence d’utilisation de MSSQL. Est requis si l’option de mise sous silence /Q ou /QS est spécifiée.
/FEATURES indique les composants à installer. Si plusieurs composants, les séparer par une virgule. SQLENGINE: moteur OLTP.
REPLICATION: composants de replication.
FULLTEXT: composants Full-Text Search (FTS).
SQL: SQLENGINE+REPLICATION+FULLTEXT+DQ.
AS: Analysis Services.

RS: Reporting Services.

IS: integration Services.

DQ: Data Quality Server.

BC: Composants de compatibilité.

BOL: Books OnLine (documents d’aide en ligne).

CONN: Outils de connectivité.

DREPLAY_CTLR: Contrôleur Distributed Replay.

DREPLAY_CLT: Client Distributed Replay.

SNAC_SDK: SDK pour SQL Server Native Client.

LocalDB: Installation d’une base SQL Server Express LocalDB. Voir ici.

 

SDK: Software Developer Kit.

TOOLS: BC+DREPLAY_CTLR+DREPLAY_CLT+BOL+CONN+

SNAC_SDK+SDK+LocalDB.

/**SVCACCOUNT indique le type de compte d’exécution. AGT = Agent, AS = Analysis Services, SQL = SQL Server, IS = Integration Services, RS = Reporting Services, BROWSER= SQL Browser (exemple : d’utilisation /SQLSVCACCOUNT).
/**SVCPASSWORD indique le mot-de-passe du compte d’exécution (hors comptes systèmes LOCAL SYSTEM, NETWORK SERVICE,…). Il est recommandé de ne pas donner sa valeur dans le fichier de configuration INI. AGT = Agent, AS = Analysis Services, SQL = SQL Server, IS = Integration Services, RS = Reporting Services, BROWSER= SQL Browser (exemple d’utilisation : /SQLSVCPASSWORD).
/**SVCSTARTUPTYPE indique le mode de démarrage d’un service. AGT = Agent, AS = Analysis Services, SQL = SQL Server, IS = Integration Services, RS = Reporting Services, BROWSER = SQL Browser (exemple d’utilisation : /SQLSVCSTARTUPTYPE).
/SECURITYMODE indique le mode d’authentification à MSSQL. Si le paramètre est omis, l’instance sera en mode d’authentification Windows. SQL.
/SAPWD indique le mot-de-passe du compte sa. Il est recommandé de ne pas donner sa valeur dans le fichier de configuration INI. Mot-de-passe du compte sa.
/PBENGSVCACCOUNT indique le compte d’exécution de PolyBase. Si le compte n’est pas un compte système, un mot de passe sera nécessaire via l’usage de /PBDMSSVCPASSWORD.
/PBENGSVCSTARTUPTYPE indique le mode de lancement de PolyBase. Automatic, Manual, Disabled.
/PBSCALEOUT indique le mode d’installation de PolyBase : standalone ou scale-out group. True, False.
/PBPORTRANGE indique la plage de ports réservés à PolyBase. Par défaut, 16450-16460.

Notons que :

  • /BROWSERSVCSTARTUPTYPE est optionnel si l’on ne compte pas utiliser le SQL Browser (car désactivé par défaut).
  • /PID correspond au numéro de clé de licence. S’il n’est pas spécifié, SQL Server sera installé en version d’évaluation.
  • /INSTANCENAME peut être utilisé pour le nommage de l’instance à installer.
  • Il est possible d’utiliser /INSTALLPROGRESS pour suivre la progression de l’installation.
  • L’utilisation d’un fichier de configuration est à privilégier pour des raisons de facilité.
  • SQL Server Management Studio (SSMS) et SQL Server Data Tools (SSDT) sont désormais indépendants, et installables séparément.

Plus de détails ici :
http://technet.microsoft.com/en-us/library/ms144259(v=sql.130).aspx#Install
.

Attention, tout de même, au fait de ne pas effectuer de retour chariot dans les lignes de commandes. Dans certains de nos exemples, les scripts ont été présentés de façon à ce qu’ils puissent être lisibles dans ce billet.

Pour aller plus loin…

Vous pouvez garder un œil ici si vous souhaitez consulter des billets relatifs à l’installation et configuration de SQL Server 2016.

Laisser un commentaire