Synchroniser IIS
par Faith A
Ce guide rapide vous guide tout au long du processus d’utilisation de l’outil de déploiement Web pour synchroniser un site web sur un ordinateur source IIS vers un ordinateur de destination IIS. Pour ce faire, vous pouvez envoyer (« push ») des données vers une destination distante, ou extraire des données à partir d’une source distante. Ce guide présente les deux méthodes, ainsi qu’une option permettant d’utiliser un fichier de package afin que vous n’ayez pas à installer le service Web Deployment Agent (MsDepSvc ou « service d’agent distant »).
Quelles sont les façons de synchroniser à l’aide de l’outil de déploiement web ?
- Push (synchroniser à partir d’une source locale vers une destination distante)
- Extraction (synchroniser à partir d’une source distante vers une destination locale)
- Synchronisation indépendante (lancer une synchronisation à partir d’un ordinateur où la destination et la source sont distantes)
- Synchronisation locale manuelle (créer un fichier de package de la source et le copier vers la destination, puis l’exécuter localement)
Prérequis
Ce guide nécessite les prérequis suivants :
- .NET Framework 2.0 SP1 ou version ultérieure
- Outil de déploiement web 1.1
Remarque : Si vous n’avez pas encore installé l’outil de déploiement web, consultez Installation et configuration de Web Deploy.
Partie 1 - Afficher les dépendances de votre site
Obtenez les dépendances du site web en exécutant la commande suivante :
msdeploy -verb:getDependencies -source:apphostconfig="Default Web Site"
Passez en revue la sortie des dépendances et recherchez les mappages de script ou les composants installés utilisés par le site. Par exemple, si l’authentification Windows est utilisée par le site web, vous verrez <le nom de dépendance « WindowsAuthentication » />.
Si votre site hérite de mappages de script, ceux-ci ne sont pas répertoriés dans les dépendances et vous devez également passer en revue les mappages de script pour votre site manuellement.
Générez une liste des composants nécessaires sur la destination.
Pour obtenir des instructions détaillées sur l’analyse de la sortie de getDependencies, consultez Affichage des dépendances du site web.
Partie 2 - Configurer la cible (destination)
Passez en revue la liste des dépendances et installez-les sur le serveur de destination. Par exemple, supposons que vous utilisez les éléments suivants pour votre site web :
- ASP.NET
- Authentification Windows
- Authentification anonyme
En fonction de l’analyse de vos dépendances, vous devez installer ces composants sur le serveur de destination avant d’effectuer la synchronisation.
Partie 3 – Synchroniser votre site avec la cible
Effectuez toujours une sauvegarde des serveurs sources et de destination. Même si vous n’effectuez que des simples tests, cela vous permet de restaurer facilement l’état de votre serveur. Exécutez la commande suivante pour sauvegarder un serveur version IIS 7 ou ultérieure :
%windir%\system32\inetsrv\appcmd add backup "PreMsDeploy"
Installez le service d’agent distant sur la source ou la destination selon que vous souhaitez « extraire » les données depuis une source distante ou « envoyer » les données vers une destination distante.
Démarrez le service sur l’ordinateur.
net start msdepsvc
Exécutez la commande suivante pour valider ce qui se passerait si la synchronisation était exécutée. L’indicateur -whatif n’affiche pas toutes les modifications ; il affiche uniquement une vue optimiste de ce qui peut changer si tout réussit (par exemple, il ne détecte pas les erreurs qui vous empêchent d’écrire vers la destination.)
Envoi (push) vers une destination distante, en cours d’exécution sur l’ordinateur source (l’argument computerName identifie l’ordinateur de destination distant).
msdeploy -verb:sync -source:apphostconfig="Default Web Site" -dest:apphostconfig="Default Web Site",computername=Server1 -whatif > msdeploysync.log
Extraction à partir d’une source distante, en cours d’exécution sur l’ordinateur de destination (l’argument computerName identifie l’ordinateur source distant).
msdeploy -verb:sync -source:apphostconfig="Default Web Site",computername=Server1 -dest:apphostconfig="Default Web Site" -whatif > msdeploysync.log
Après avoir vérifié la sortie, exécutez à nouveau la même commande sans l’indicateur -whatif :
Envoi (push) vers la destination distante, en cours d’exécution sur l’ordinateur source
msdeploy -verb:sync -source:apphostconfig="Default Web Site" -dest:apphostconfig="Default Web Site",computername=Server1 > msdeploysync.log
Extraction à partir d’une source distante, en cours d’exécution sur une machine de destination
msdeploy -verb:sync -source:apphostconfig="Default Web Site",computername=Server1 -dest:apphostconfig="Default Web Site" > msdeploysync.log
{Facultatif - Synchroniser votre site avec la cible à l’aide d’un fichier de package}
Si vous ne souhaitez pas utiliser le service distant, vous pouvez utiliser un package (fichier compressé).
Exécutez la commande suivante sur le serveur source pour créer un package du site web pour la synchronisation :
msdeploy -verb:sync -source:apphostconfig="Default Web Site" -dest:package=c:\site1.zip
Copiez le fichier de package sur le serveur de destination.
Exécutez la commande suivante sur le serveur de destination pour vérifier ce qui se passerait si la synchronisation était exécutée :
msdeploy -verb:sync -source:package=c:\site1.zip -dest:apphostconfig="Default Web Site" -whatif > msdeploysync.log
Après avoir vérifié la sortie, exécutez à nouveau la même commande sans l’indicateur -whatif :
msdeploy -verb:sync -source:package=c:\site1.zip -dest:apphostconfig="Default Web Site" > msdeploysync.log
Vous avez terminé la synchronisation de votre site. Pour effectuer une vérification, testez la navigation sur le site web sur le serveur de destination. Pour obtenir de l’aide sur la résolution des problèmes, consultez Résolution des problèmes liés à Web Deploy.
Résumé
Vous avez maintenant synchronisé un site web depuis un serveur IIS source vers un serveur IIS de destination, y compris l’affichage des dépendances, la configuration du serveur IIS de destination et l’exécution de la synchronisation.