Comment : installer un package de déploiement à l'aide du fichier deploy.cmd
Lorsque vous créez un package de déploiement Web dans Visual Studio, ce dernier crée un fichier .cmd que vous pouvez utiliser pour installer le package. Ce fichier .cmd contient les commandes Web Deploy réelles qui installent le package. Le fichier .cmd permet de simplifier la syntaxe de l'installation de la ligne de commande. En effet, les commandes Web Deploy peuvent être longues et complexes.
Avant de démarrer le fichier .cmd, vous devez vous assurer que le serveur de destination est installé correctement. Si le serveur de destination est un serveur distant, vous devez vous assurer que la connexion à ce serveur convient et que vous disposez des autorisations appropriées sur le serveur distant. Lorsque vous démarrez le fichier .cmd, vous pouvez lui passer des options, qu'il passera ensuite à Web Deploy.
Cette rubrique explique la syntaxe que vous utilisez pour appeler le fichier .cmd. Elle fournit une vue d'ensemble des conditions préalables à l'appel du fichier .cmd et fournit des liens vers d'autres ressources proposant des informations d'installation détaillées.
Choix d'une méthode d'installation
Cette section fournit une vue d'ensemble des options pour l'installation du package localement ou à distance, suivie des procédures de configuration du serveur pour chaque option. Les procédures de configuration du serveur pour le déploiement distant visent à fournir une vue d'ensemble pour vous permettre de déterminer la méthode la mieux adaptée à votre scénario. Chaque procédure est associée à une rubrique du site Web TechNet Microsoft IIS, où vous trouverez des instructions détaillées.
Si vous procédez au déploiement sur votre ordinateur de développement (à des fins de test, par exemple), vous devez seulement lire la procédure décrivant la configuration d'un ordinateur pour un déploiement local in-process.
Si vous procédez au déploiement vers une société d'hébergement tiers ou vers des serveurs de destination administrés par une autre personne, la société d'hébergement ou les administrateurs du serveur spécifieront la méthode qu'ils souhaitent que vous utilisiez. Dans ce cas, vous pouvez ignorer la vue d'ensemble des options. Lisez plutôt la partie de la procédure qui indique la configuration minimale requise de l'ordinateur de développement pour la méthode que vous utilisez.
Les méthodes d'installation disponibles sont les suivantes :
Installation du package in-process sur le serveur local (celui sur lequel vous exécutez le fichier .cmd).
Vous devez disposer des droits d'administration sur le serveur local. C'est la méthode généralement utilisée par les développeurs pour effectuer un déploiement sur l'ordinateur de développement afin d'effectuer un test local à l'aide d'IIS.
Installation sur un serveur distant à l'aide du service de gestion Web (WMSvc) et du gestionnaire de déploiement Web.
Les sociétés d'hébergement tiers installent en général leurs serveurs pour cette méthode de déploiement afin que les clients puissent déployer des applications eux-mêmes. Toutefois, la société d'hébergement n'est pas tenue d'accorder au client des droits d'administration sur les serveurs. Cette méthode est également souvent utilisée dans les environnements d'entreprise, lorsque le service informatique ne souhaite pas accorder de droits d'administration aux développeurs sur les serveurs de test ou sur les serveurs de production.
Cette méthode requiert IIS 7. Une personne qui dispose des droits d'administration sur le serveur de destination utilise le Gestionnaire des services IIS pour installer un compte que vous pouvez utiliser pour le déploiement. Vous utilisez les informations d'identification pour ce compte lors du déploiement. Cette méthode offre l'avantage de ne pas nécessiter de droits d'administration sur le serveur de destination lorsque vous déployez. Par contre, vous ne pouvez généralement pas effectuer de tâches de déploiement qui requièrent des droits d'administration, comme la configuration des paramètres IIS.
Installation sur un serveur distant à l'aide du Service de l'agent de déploiement Web (MsDepSvc). Ce dernier est également connu sous le nom de Service distant de déploiement Web ou simplement d'Agent distant.
Vous devez disposer des droits d'administration sur le serveur distant. Cette méthode offre l'avantage de ne pas imposer de limites à votre action lors du déploiement, étant donné que vous êtes un administrateur sur le serveur de destination. Vous ne pouvez pas utiliser cette méthode si la personne qui effectue le déploiement ne doit pas être un administrateur sur le serveur de destination.
Installation sur un serveur distant à l'aide du paramètre de fournisseur Web Deploy tempAgent.
Comme pour l'agent distant, vous devez disposer des droits d'administration sur le serveur de destination. L'avantage de cette méthode par rapport à l'agent distant est que Web Deploy ne doit pas être installé sur l'ordinateur sur lequel vous exécutez le fichier de commandes ni sur l'ordinateur de destination. Vous pouvez exécuter Web Deploy à partir d'un dossier partagé situé sur un serveur sur lequel Web Deploy est installé. Par conséquent, vous pouvez déployer vers plusieurs serveurs sans devoir installer Web Deploy au préalable sur chaque serveur. Cela vous évite également de devoir mettre à jour chaque serveur lorsque de nouvelles versions de Web Deploy sont diffusées, ou de devoir vous assurer que la même version de Web Deploy est installée sur l'ordinateur de destination et l'ordinateur source. Comparé à l'agent distant, le paramètre de fournisseur tempAgent requiert une installation supplémentaire sur les serveurs de destination. Toutefois, si plusieurs serveurs doivent être gérés, cette méthode se traduit généralement par une gestion plus facile au fil du temps.
Pour plus d'informations sur le choix de l'option adaptée à votre scénario, consultez Using Web Deploy Remotely sur le site Web Microsoft TechNet.
Le reste de cette section contient des procédures qui offrent une vue d'ensemble de la configuration de serveurs pour chaque méthode d'installation du package.
Configuration d'un serveur pour le déploiement local
La procédure suivante décrit comment installer un serveur pour une installation de package local in-process.
Pour installer un serveur pour un déploiement local in-process
Assurez-vous que les logiciels suivants sont installés sur le serveur :
IIS 5.1, IIS 6 ou IIS 7.
.NET Framework 2.0 SP1 ou une version ultérieure, si l'application Web que vous installez l'exige.
Web Deploy (la même version que celle utilisée pour créer le package).
Pour plus d'informations sur l'installation d'IIS, de .NET Framework et de Web Deploy à l'aide de Web Platform Installer, consultez Programme d'installation de la plate-forme Web Microsoft 2.0 sur le site Web Microsoft.
Configuration de serveurs pour le service de gestion Web
La procédure suivante présente une vue d'ensemble de l'installation des ordinateurs source et de destination, afin que vous puissiez installer des packages de déploiement à l'aide du service de gestion Web (WMSvc) et du gestionnaire de Déploiement Web. Pour plus d'informations et pour obtenir des instructions détaillées, consultez Configuring the Web Deployment Handler sur le site Web Microsoft TechNet ou Configure the Web Deployment Handler sur le site Web IIS.net.
Pour installer des serveurs qui utiliseront le service de gestion Web pour le déploiement
Assurez-vous que le logiciel suivant est installé sur l'ordinateur sur lequel vous exécutez le fichier deploy.cmd :
- Web Deploy (la même version que celle utilisée pour créer le package).
Assurez-vous que les logiciels suivants sont installés sur le serveur de destination :
IIS 7.
.NET Framework 2.0 SP1 ou une version ultérieure, si l'application Web que vous installez l'exige.
Web Deploy (la même version que celle utilisée pour créer le package).
Pour plus d'informations sur l'installation d'IIS, de .NET Framework et de Web Deploy à l'aide de Web Platform Installer, consultez Programme d'installation de la plate-forme Web Microsoft 2.0 sur le site Web Microsoft.
Sur le serveur de destination, configurez le service de gestion Web (WMSvc) en procédant comme suit :
Ajoutez le service de rôle Service de gestion.
Activez les connexions distantes.
Créez un compte d'utilisateur qui sera utilisé pour l'installation du package.
Ajoutez des règles de délégation pour le compte d'utilisateur.
Sur l'ordinateur de destination, assurez-vous que la version du .NET Framework requise pour le package est définie pour le pool d'applications du site Web IIS sur lequel le package est installé. (Si le package indique un nom d'application Web, mais aucun nom de site Web, le package sera installé dans le site Web par défaut.)
Configuration de serveurs pour le Service distant de déploiement Web
La procédure suivante présente une vue d'ensemble de l'installation des ordinateurs source et de destination, afin que vous puissiez installer des packages à distance à l'aide du Service de l'agent de déploiement Web (MSDepSvc). Pour plus d'informations, consultez Web Deploy Remote Service sur le site Web Microsoft TechNet.
Pour installer des serveurs qui utiliseront le Service de l'agent de déploiement Web pour le déploiement
Assurez-vous que le logiciel suivant est installé sur le serveur sur lequel vous exécutez le fichier deploy.cmd :
- Web Deploy (la même version que celle utilisée pour créer le package).
Assurez-vous que les logiciels suivants sont installés sur le serveur de destination :
IIS 5.1, IIS 6 ou IIS 7.
.NET Framework 2.0 SP1 ou une version ultérieure, si l'application Web que vous installez l'exige.
Web Deploy (la même version que celle utilisée pour créer le package).
Pour plus d'informations sur l'utilisation de Web Platform Installer pour installer IIS, le .NET Framework et le , consultez Programme d'installation de la plate-forme Web Microsoft 2.0 sur le site Web Microsoft.
Sur le serveur de destination, assurez-vous que le service MSDepSvc est configuré et lancé.
Sur le serveur de destination, configurez le pare-feu pour autoriser le trafic HTTP via le port 80.
Sur l'ordinateur de destination, assurez-vous que la version du .NET Framework requise pour le package est définie pour le pool d'applications du site Web IIS sur lequel le package est installé. (Si le package indique un nom d'application Web, mais aucun nom de site Web, le package sera installé dans le site Web par défaut.)
Configuration de serveurs pour le paramètre de fournisseur tempAgent
La procédure suivante présente une vue d'ensemble de l'installation de l'ordinateur source et de l'ordinateur de destination pour procéder à l'installation distante à l'aide du paramètre de fournisseur Web Deploy tempAgent. Pour plus d'informations, consultez Web Deploy On Demand sur le site Web Microsoft TechNet.
Pour installer des serveurs qui utiliseront le paramètre de fournisseur tempAgent de Web Deploy pour le déploiement
Assurez-vous que les logiciels suivants sont installés sur l'ordinateur source :
Service de l'agent de déploiement Web (MSDepSvc)
Notes
Par défaut, le Service de l'agent de déploiement Web n'est pas installé dans le cadre de Visual Studio.Pour l'installer, exécutez l'installation de l'outil de déploiement Web et sélectionnez le service de l'agent distant.
Assurez-vous que les logiciels suivants sont installés sur le serveur de destination :
IIS 5.1, IIS 6 ou IIS 7.
.NET Framework 2.0 SP1 ou une version ultérieure, si l'application Web que vous installez l'exige.
Pour plus d'informations sur l'installation d'IIS et de .NET Framework à l'aide de Web Platform Installer, consultez Programme d'installation de la plate-forme Web Microsoft 2.0 sur le site Web Microsoft.
Sur le serveur de destination, configurez le pare-feu pour autoriser les éléments suivants :
Trafic HTTP via le port 80.
Trafic WMI.
Sur le serveur de destination, assurez-vous que le service Windows Management Instrumentation (WMI) s'exécute.
Assurez-vous que le serveur de destination contient un dossier partagé dans lequel les fichiers programme Web Deploy temporaires peuvent être copiés.
Sur le serveur de destination, assurez-vous que le Service de l'agent de déploiement Web (MSDepSvc) n'est pas installé. Si le service est installé, il interférera avec le processus de déploiement.
Assurez-vous que les informations d'identification que vous utilisez lorsque vous exécutez le fichier de commandes de déploiement proviennent d'un compte d'utilisateur d'un administrateur local sur le serveur distant.
Sur l'ordinateur de destination, assurez-vous que la version du .NET Framework requise pour le package est définie pour le pool d'applications du site Web IIS sur lequel le package est installé. (Si le package indique un nom d'application Web, mais aucun nom de site Web, le package sera installé dans le site Web par défaut.)
Exécution du fichier de commande
Nous vous recommandons de commencer par exécuter Web Deploy en mode test pour vérifier que le déploiement fonctionne comme prévu. De cette manière, si un comportement inattendu se produit, vous pouvez apporter des modifications avant de procéder au déploiement réel. La procédure suivante décrit l'exécution du fichier de commandes dans des scénarios classiques.
Pour déployer à l'aide du fichier de commandes
Assurez-vous que le package (ProjectName.zip), le fichier ProjectName.SetParameters.xml et le fichier ProjectName.deploy.cmd sont tous dans le même dossier.
Si vous utilisez le paramètre de fournisseur tempAgent, ce dossier peut être situé sur un ordinateur distant. Sinon, il doit être sur l'ordinateur sur lequel vous projetez d'exécuter le fichier de commandes.
Si vous souhaitez personnaliser les valeurs de certains des paramètres inclus dans le fichier SetParameters.xml, modifiez le fichier pour modifier les valeurs.
Vous pouvez, par exemple, utiliser le même package pour l'installer tout d'abord sur un serveur intermédiaire, puis sur un serveur de production. Dans ce cas, la valeur de la chaîne de connexion à une base de données devra peut-être être différente pour chacune de ces installations.
Exécutez le fichier de commandes, en spécifiant l'indicateur t (mode test) et les indicateurs facultatifs appropriés à votre scénario.
Voici quelques scénarios classiques, accompagnés des indicateurs facultatifs qui leur correspondent.
Notes
Pour consulter la liste des indicateurs facultatifs pris en charge, entrez le nom du fichier .cmd à une invite de commandes, sans entrer d'indicateur après le nom.Si vous ouvrez le fichier .cmd, vous pouvez consulter des indicateurs supplémentaires.Les indicateurs qui ne s'affichent pas dans le texte d'aide et qui ne sont pas décrits dans cette rubrique ne sont pas pris en charge et ne doivent donc pas être utilisés.
Notes
Si des caractères non présents dans la page de codes active sont utilisés dans le nom du serveur de destination, le nom d'utilisateur ou le mot de passe, le fichier .cmd peut échouer.
Pour le service de gestion Web (WMSvc), incluez l'indicateur m et spécifiez l'URL de service comme MSDeploy.axd, à l'aide de la syntaxe suivante :
NomProjet.deploy.cmd /t /m:https://NomServeurDestination:8172/MSDeploy.axd
Pour spécifier un nom d'utilisateur et un mot de passe, incluez les indicateurs u et p. Ajoutez l'indicateur a pour spécifier l'authentification de base. L'exemple suivant montre comment utiliser ces indicateurs.
NomProjet.deploy.cmd /t /m:NomServeurDestination /u:Utilisateur /p:MotDePasse /a:basic
Pour autoriser des certificats non fiables, ajoutez -AllowUntrusted=True, comme indiqué dans l'exemple suivant :
NomProjet.deploy.cmd /t /m:NomServeurDestination /u:Utilisateur /p:MotDePasse /a:basic -AllowUntrusted=True
Pour le Service de l'agent de déploiement Web (MSDepSvc), incluez l'indicateur m et spécifiez le nom du serveur de destination ou une URL de service comme MSDeployAgentService, à l'aide de la syntaxe suivante :
NomProjet.deploy.cmd /t /m:NomServeurDestination
NomProjet.deploy.cmd /t /m:http://NomServeurDestination/MSDeployAgentService
Pour spécifier un nom d'utilisateur et un mot de passe, incluez les indicateurs u et p. (N'ajoutez pas l'indicateur a comme vous le faites pour WMSvc.)
Pour le paramètre de fournisseur tempAgent, incluez l'indicateur g et un indicateur m pour spécifier un nom d'ordinateur, à l'aide de la syntaxe suivante :
NomProjet.deploy.cmd /t /m:NomServeurDestination /g:true
Pour spécifier un nom d'utilisateur et un mot de passe, incluez les indicateurs u et p. (N'ajoutez pas l'indicateur a comme vous le faites pour WMSvc.)
Pour ignorer le fournisseur de base de données, incluez une commande Web Deploy skip pour le fournisseur SQL Server, à l'aide de la syntaxe suivante :
NomProjet.deploy.cmd /t "-skip:objectName=dbFullSql"
Vous pouvez effectuer cette opération si vous effectuez un déploiement vers une batterie de serveurs Web et que vous souhaitez déployer la base de données une seule fois.
Pour ignorer la mise à jour Web.config, incluez une commande Web Deploy skip pour un fichier. Vous pouvez effectuer cette opération pour éviter de remplacer des paramètres du fichier Web.config configurés manuellement sur le serveur de destination.
L'exemple suivant indique comment ignorer tous les fichiers Web.config de l'application.
NomProjet.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\[\w\s]+web\.config$"
L'exemple suivant indique comment ignorer uniquement le fichier Web.config de l'application.
NomProjet.deploy.cmd /t "-skip:objectName= filePath,absolutePath=\\ApplicationFolder\\web\.config$"
Examinez le journal généré par le déploiement en mode test, apportez les modifications nécessaires et exécutez à nouveau le fichier de commandes à l'aide de l'indicateur t.
Répétez l'étape précédente jusqu'à ce que le journal reflète exactement les modifications de déploiement souhaitées.
Exécutez le fichier de commandes, à l'aide de l'indicateur y (« oui », ou mode de mise à jour) au lieu de l'indicateur t, et à l'aide des indicateurs facultatifs que vous avez sélectionnés.
Web Deploy exécute le déploiement et affiche un journal de sa fonction.
La procédure précédente fournit des exemples de syntaxe pour des scénarios classiques et indique comment utiliser les indicateurs définis dans le fichier .cmd. Pour d'autres scénarios, vous pouvez passer n'importe quelle commande Web Deploy à Web Deploy. Vous n'êtes pas limité aux indicateurs définis dans le fichier .cmd. Si vous spécifiez une commande qui comprend un signe égal (=), l'indicateur doit être entouré de guillemets, comme indiqué dans les exemples précédents.
Vous pouvez également spécifier des commandes Web Deploy en définissant la variable d'environnement __MsDeployAdditionalFlags.
Pour plus d'informations sur d'autres commandes Web Deploy disponibles, consultez Web Deploy Command Line Reference.
Voir aussi
Concepts
Organigramme des informations relatives au déploiement ASP.NET