[SQL Server] Installation silencieuse de SQL Server 2012

Dans ce billet, nous allons brièvement aborder le cas d’une installation silencieuse de SQL Server 2012.

Qu’est-ce qu’une installation silencieuse ?

Une installation silencieuse est une installation de MSSQL en ligne de commandes. Cette approche est très utile dans le cas où plusieurs instances MSSQL 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 MSSQL.

Notons que depuis MSSQL 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érentes éléments techniques d’une installation silencieuse :
http://msdn.microsoft.com/en-us/library/ms144259(v=sql.110).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 MSSQL 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 MSSQL (systèmes, bases de données, sauvegardes, etc…), etc…

Pour ce faire, suivez toutes les instructions relative à l’installation de MSSQL 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\110\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 MSSQL.

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, MSSQL est installé en version d’évaluation.

…sans l’utilisation d’un fichier de configuration

Il est tout à fait possible de déployer une instance MSSQL 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
/INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"
/INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"
/ASSVCACCOUNT="NT Service\MSOLAP$MSSQLSERVER"
/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\MSAS11.MSSQLSERVER\OLAP\Config"
/ASPROVIDERMSOLAP="1"
/ASSYSADMINACCOUNTS="Mac-ROG\Mac"
/ASSERVERMODE="MULTIDIMENSIONAL"
/SQLSVCACCOUNT="NT Service\MSSQL$MSSQLSERVER"
/SQLSYSADMINACCOUNTS="Mac-ROG\Mac"
/SECURITYMODE="SQL"
/SQLBACKUPDIR="D:\SQL Server\MSSQL\SQL Backups\BAK"
/SQLUSERDBDIR="D:\SQL Server\MSSQL\SQL Data"
/SQLUSERDBLOGDIR="D:\SQL Server\MSSQL\SQL Logs"
/SQLTEMPDBDIR="D:\SQL Server\MSSQL"
/SQLTEMPDBLOGDIR="D:\SQL Server\MSSQL"
/ADDCURRENTUSERASSQLADMIN="False"
/RSSVCACCOUNT="NT Service\ReportServer$MSSQLSERVER"
/BROWSERSVCSTARTUPTYPE="Disabled"
/RSINSTALLMODE="FilesOnlyMode" 
/RSSVCSTARTUPTYPE="Automatic"
/ISSVCACCOUNT="NT Service\MsDtsServer110"
/ISSVCSTARTUPTYPE="Automatic"
/FTSVCACCOUNT="NT Service\MSSQLFDLauncher$MSSQLSERVER"
/IACCEPTSQLSERVERLICENSETERMS

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.110).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=MSSQLSERVER 
/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).

BIDS: Business Intelligence Development Studio.

CONN: Outils de connectivité.

SSMS: SQL Server Management Studio.

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.

ADV_SSMS: SSMS avancé (pour SQL, RS, AS et IS) + SQL Server Profiler

+ Tuning Advisor + Utility Mgt.

SDK: Software Developer Kit.

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

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.
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é, MSSQL 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é.

Plus de détails ici : http://technet.microsoft.com/en-us/library/ms144259.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 2012.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s