[SQL Server] Installation silencieuse de SQL Server 2008 (R2)

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

Qu’est-ce qu’une installation silencieuse ?

Une installation silencieuse est une installation de MSSQ en ligne de commande. 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 2008 R2, 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.100).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 dans le billet [SQL Server] Installation de SQL Server 2008 (R2) en standalone, via l’assistant d’installation, jusqu’à arriver à l’étape Prêt pour l’installation (ou Ready to install) :


Arrivé à cette étape, cliquez sur Annuler.

L’annulation de cette étape d’installation créera 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\100\Setup Bootstrap\Log\<YYYYMMDD_HHMMSS>.

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
/SQLSVCPASSWORD= »m0nP4SS » /AGTSVCPASSWORD= »m0nP455″ /SAPWD= »m0nP455SA » /IACCEPTSQLSERVERLICENSETERMS

L’utilisation du paramètre /Q permet d’indiquer à Windows que l’installation doit être silencieuse. Les paramètres /SQLSVCPASSWORD, /AGTSVCPASSWORD, /SAPWD et /IACCEPTSQLSERVERLICENSETERMS permettent de respectivement spécifier le mot-de-passe du compte d’exécution de MSSQL, le mot-de-passe du compte d’exécution du SQL Agent, le mot-de-passe du compte sa (si le mode d’authentification mixte est utilisé) et d’indiquer que l’on accepte les termes de la licence d’utilisation de MSSQL.

Soulignons toutefois que /**SVCPASSWORD (où ** est un service, comme par exemple SQL) et tout paramètre de mot-de-passe est inutile si on utilise des compte systèmes de type LOCAL SYSTEM, NETWORK SERVICE (cas de /ISSVCPASSWORD pour SSIS, en ce qui nous concerne),…

Et par ailleurs, il est possible de spécifier les paramètres de mot-de-passe (non recommandé) et d’acceptation des de la licence d’utilisation directement dans le fichier de configuration, puis de lancer la ligne de commande suivante :


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

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 vus dans le billet [SQL Server] Installation de SQL Server 2008 (R2) en standalone) 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,BIDS,CONN,IS,BC,SSMS,
ADV_SSMS /INSTANCENAME=MSSQLSERVER /SQLSVCACCOUNT="DOMAIN\SQLService_DATASQL08" 
/SQLSVCPASSWORD="m0nP4SS" /AGTSVCACCOUNT="DOMAIN\SQLAgent_DATASQL08" 
/AGTSVCPASSWORD="m0nP455" /ISSVCACCOUNT="NT AUTHORITY\Network Service" 
/AGTSVCSTARTUPTYPE="Automatic" /SQLSVCSTARTUPTYPE="Automatic" 
/ISSVCSTARTUPTYPE="Automatic" /BROWSERSVCSTARTUPTYPE="Disabled" 
/SECURITYMODE=SQL /SAPWD="m0nP455SA" 
/INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server" 
/INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server" 
/SQMREPORTING=False /SQLTEMPDBDIR="T:\tempDB\Logs" 
/SQLTEMPDBLOGDIR="T:\tempDB\Logs" /SQLUSERDBDIR="D:\SQL Data" 
/SQLUSERDBLOGDIR="L:\SQL Logs" /SQLBACKUPDIR="S:\SQL Backups\BAK" 
/SQLCOLLATION="French_CI_AS" / /SQLSYSADMINACCOUNTS=DOMAIN\Administrator 
/IACCEPTSQLSERVERLICENSETERMS

L’exemple de script ci-dessus de ne prend pas en compte SQL Server Analysis Services (SSAS), ni de SQL Server Reporting Services (SSRS), mais néanmoins, vous pouvez rajouter les valeurs AS et RS pour /FEATURES et spécifier le compte d’exécution de SSAS (/ASSVACCOUNT) et de SSRS (/RSSVACCOUNT) et éventuellement leur mot-de-passe s’il s’agit de comptes de service AD (/ASSVPASSWORD et /RSSVPASSWORD).

En outre, des paramètres optionnels peuvent être rajoutés et modifiés pour SSAS : /ASDATADIR, /ASLOGDIR et /ASBACKUPDIR qui sont respectivement le répertoire par défaut des fichiers de données, de logs et de sauvegardes de SSAS.

  • Pour une installation en failover cluster :

Voir section Failover Cluster Parameters du BOL : http://msdn.microsoft.com/en-us/library/ms144259(v=sql.100).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.

AS: Analysis Services.

RS: Reporting Services.

IS: integration Services.

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.

ADV_SSMS: SSMS avancé (pour SQL, RS, AS et IS) + Profiler + Tuning Advisor + Utility Mgt.

SDK: Software Developer Kit.

TOOLS: BC+BOL+BIDS+CONN+ADV_SSMS+SDK.

/**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 :

  • Pour /FEATURES, la valeur
    SQL inclut SQL (le moteur OLTP), REPLICATION, FULLTEXT.
  • Toujours pour /FEATURES,
    TOOLS inclut BC (Backward Compatibility), BOL (Book OnLine), BIDS (Business Intelligence Development Studio), CONN (Composants de connectivité), SSMS, ADV_SSMS (toutes les fonctionnalités de SSMS: SQL Profiler, Database Engine Tuning Advisor, SSMS pour la suite BI,…). Dans notre, s’il n’a pas été utilisé dans notre exemple ci-dessus, c’est simplement pour ne pas avoir à installer BOL.
  • /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 blog.

Pour aller plus loin…

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

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