Partager via


Paramétrisation du déploiement web

par l’équipe Web Deploy

Introduction au paramétrage

Le développement d’applications web implique le plus souvent le déploiement de code dans différents environnements : développement, préproduction ou serveurs de production. Chaque environnement peut utiliser un ensemble différent de ressources, comme les informations de connexion de base de données, et Web Deploy est créé avec des fonctionnalités qui permettent de transformer des applications web au fur et à mesure qu’elles sont déployées dans différents environnements. Pour transformer une application pendant le déploiement, différentes parties des applications peuvent être « paramétrées » et, au moment du déploiement, Web Deploy prend l’entrée d’un utilisateur pour remplacer différentes informations au sein de l’application.

Différentes façons de déployer des applications : synchronisation dynamique et Visual Studio

L’outil Web Deploy peut être utilisé pour déployer une application de deux façons différentes. Une application web peut être synchronisée en direct, d’un serveur (peut-être le serveur de développement) vers un autre serveur (peut-être le serveur qui héberge l’application sur le web). Les applications web peuvent également être empaquetées dans un fichier .zip, à télécharger et à installer par un public plus large et plus général des développeurs. Il s’agit d’un modèle couramment utilisé par les applications de type « plateforme » (par exemple, Wordpress). Enfin, Web Deploy est utilisé en arrière-plan par Visual Studio lors du développement et du déploiement de projets d’application web (WAP). Dans ce cas, Visual Studio paramétre automatiquement la plupart des parties nécessaires des applications web, avec la possibilité de créer des paramètres personnalisés si nécessaire.

Création et paramétrage d’une application à déployer

Microsoft offre un moyen simple d’installer plus de 50 applications web populaires, telles que Wordpress, Saas, Basic et DotNetNuke. Ces applications peuvent être installées relativement rapidement et facilement. En arrière-plan, ces interfaces utilisateur utilisent l’outil Web Deploy pour installer l’application à partir d’un package .zip. Pour créer un package d’application afin qu’il puisse être installé à l’aide de l’un de ces outils, plusieurs étapes doivent être effectuées, y compris la paramétrage des parties de l’application.

Les étapes suivantes sont nécessaires pour transformer une application en package .zip qui peut être déployé :

  1. Créez une application.
  2. Créez un fichier « manifeste ». Ce fichier indique à l’outil Web Deploy les différentes actions requises pour installer l’application. Cela inclut des éléments tels que la copie de fichiers et la configuration d’une base de données.
  3. Créez un fichier de paramètres. Il s’agit du fichier « paramétrage » que Web Deploy utilise pour identifier les parties de l’application qui doivent être transformées au moment de l’installation en fonction de l’entrée utilisateur.
  4. Créez un fichier .zip qui contient l’application, le fichier manifeste et le fichier de paramètres.

Cet article présente chacune de ces étapes en détail.

Étape 1 : Créer une application

Actuellement, il n’existe aucun moyen simple de créer une application pour expérimenter le paramétrage de déploiement web, à l’exception du clonage à partir d’une application existante.

Vous disposez maintenant d’une application prête à être empaquetée et paramétrée afin que d’autres développeurs puissent le télécharger et l’installer. L’étape suivante consiste à configurer un fichier qui indique à Web Deploy les étapes requises pour installer l’application.

Étape 2 : Créer un fichier « manifeste »

L’outil Web Deploy peut effectuer plusieurs fonctions, notamment la copie de fichiers, les paramètres de configuration du serveur web et les bases de données. Chacune de ces fonctions est rendue possible par un fournisseur Web Deploy « ». Pour installer l’application que vous venez de créer, vous allez utiliser le fournisseur iisApp , qui permet de copier des fichiers et de créer l’application sur le serveur ; le fournisseur setAcl , qui définit les autorisations de fichier nécessaires ; et le fournisseur dbFullSql , qui configure la base de données. Pour indiquer à Web Deploy d’utiliser plusieurs fournisseurs lors de l’installation, vous devez créer un fichier Manifest.xml qui déclare ces trois fournisseurs de la manière suivante (vous pouvez copier un exemple à partir d’ici) :

Capture d’écran montrant l’icône du fichier manifest.xml.

<?xml version="1.0" encoding="utf-8" ?>
<msdeploy.iisApp>
  <iisApp path="Vacation Pictures" />
  <setAcl path="Vacation Pictures/App_Data" setAclAccess="Write, ReadAndExecute" />
  <dbFullSql path="CreateDBAndUser.sql" />
  <dbFullSql path="VacPicDBSchema.sql" />
</msdeploy.iisApp>

Examinons de plus près chacune de ces entrées.

Fournisseur IISApp

L’entrée iisApp pointe vers le dossier où se trouve le contenu de l’application. Par exemple:

<iisApp path="Vacation Pictures" />

La valeur du chemin d’accès serait différente si l’application avait un nom différent.

Fournisseur SetAcl

L’entrée setAcl indique à Web Deploy d’accorder des autorisations de lecture, d’écriture et d’exécution au répertoire « App_Data » lorsque l’application est installée. Par exemple:

<setAcl path="Vacation Pictures/App_Data" setAclAccess="Write, ReadAndExecute" />

Différentes applications peuvent nécessiter des autorisations spéciales sur d’autres dossiers. Dans ce cas, vous devez créer une entrée setAcl différente pour chaque paramètre d’autorisation requis.

Fournisseur DbFullSQL

Les entrées du fournisseur dbFullSQL pointent vers différents scripts SQL utilisés pour créer une base de données et un utilisateur (« CreateDBAndUser.sql ») et configurer les tables de base de données (« VacPicDBSchema.sql ») au moment de l’installation.

Le script CreateDBAndUser.sql est un script assez simple qui peut être copié ici :

Capture d’écran montrant l’icône CreateDBAndUser.sql.

Le VacPicDBSchema.sql est le script qui crée toutes les tables de la base de données utilisée par l’application. Ce fichier peut être créé à l’aide de l’outil en ligne de commande Web Deploy. À partir de la ligne de commande, accédez à l’emplacement où Web Deploy est installé (généralement %programfiles%\IIS\Microsoft Web Deploy <LatestVersion>) et entrez la commande suivante :

msdeploy -verb:sync -source:dbfullsql="data source=.\SQLExpress;initial catalog=PhotoGallery;user id=sa;password=*" -dest:dbfullsql="c:\VacPicDBSchema.sql"

Remplacez l’astérisque (*) par le mot de passe administrateur SQL approprié.

Au niveau de base, la commande ci-dessus utilise le fournisseur dbFullSql pour copier des données à partir d’une base de données à l’aide d’une chaîne de connexion de base de données (« -source :dbfullsql=... ») et la copie dans un fichier de script de base de données (« -dest :dbfullsql=... »)

Étape 3 - Créer un fichier de paramètres

Après avoir créé le fichier manifeste qui indique à Web Deploy comment installer l’application, vous devez créer un fichier de paramètres qui indique à Web Deploy comment transformer certains paramètres afin que l’application puisse être personnalisée pour fonctionner dans l’environnement de déploiement d’un utilisateur spécifique.

Les éléments de base qui seraient utiles à transformer sont les suivants :

  • Nom de l’application : si l’utilisateur final qui installe votre application souhaite modifier le nom de l’application, vous devez paramétrer le nom de l’application.
  • Nom de la base de données : un utilisateur peut avoir besoin de configurer votre application pour qu’elle s’exécute sur une base de données qui utilise un autre nom. Dans ce cas, vous devez paramétrer les informations de connexion de base de données.

Web Deploy lit les informations de paramétrage à partir d’un fichier XML. Dans ce cas, vous appellerez le fichier Parameters.xml. Pour cette démonstration, le fichier de paramètres peut être copié à partir d’ici et ressemble à ceci (sur le site web, ce fichier XML peut être développé dans une zone de code telle qu’elle est utilisée sur cette page) :

Capture d’écran montrant l’icône dot x m l des paramètres.

Ensuite, vous allez apprendre à paramétrer le nom de l’application et le nom de la base de données.

Paramétrage du nom de l’application

Le paramétrage Web Deploy peut être utilisé pour transformer différents types d’entrée. Normalement, cela implique de rechercher du texte dans un fichier XML ou un fichier texte et de le remplacer par un texte différent. Dans le cas du nom de l’application, la copie de fichiers et la création du site web sur l’ordinateur de destination sont gérées par un fournisseur Web Deploy. Par conséquent, pour paramétrer le nom de l’application, vous devez paramétrer le fournisseur que vous avez précédemment déclaré dans le fichier Manifest.xml.

Le fournisseur dans le fichier manifeste peut être considéré comme le fournisseur source , qui lit les informations du package d’application qu’un utilisateur télécharge. À son tour, lorsque l’application est installée, un fournisseur de destination est utilisé en arrière-plan pour copier le contenu et créer un site web sur l’ordinateur de l’utilisateur. Le fichier Manifest.xml contient les informations du fournisseur source . Ainsi, pour permettre à un utilisateur de modifier le nom de l’application ; vous devez paramétrer le fournisseur qui a été défini dans le fichier Manifest.xml.

Dans le fichier Parameters.xml lié ci-dessus, ce paramétrage est effectué avec la première entrée XML :

<parameter 
  name="Application Path" 
  description="Full site path where you would like to install your application (i.e., Default Web Site/PhotoGallery)" 
  tags="iisapp">
  <parameterValidation kind="AllowEmpty" />
  <parameterEntry kind="ProviderPath" scope="iisapp" match="Vacation Pictures" />
</parameter>

La balise XML importante à noter est parameterEntry. Cela indique à Web Deploy quelques éléments : un, que vous paramétrez un fournisseur dans le manifeste (kind="ProviderPath ») ; deux, que vous paramétrez un fournisseur iisApp (scope="iisapp ») ; enfin, que vous souhaitez uniquement remplacer les entrées dans le fichier manifeste qui ont la valeur « Vacation Pictures ».

La deuxième entrée dans le fichier de paramètres ('name="SetAclParameter1"'') permet simplement de s’assurer que le fournisseur setAcl dans notre fichier Manifest.xml utilise le même nom entré par l’utilisateur pour le fournisseur iisApp , qui est effectué avec la ligne 'defaultValue="{Chemin de l’application}/App_Data"'. La valeur entre crochets, {Chemin d’accès de l’application}, fait référence au nom du premier paramètre.

Paramétrage du nom de la base de données

Le reste des entrées du fichier Parameters.xml traite du paramétrage des informations de connexion de base de données. Les 2e et 6e entrées du fichier de paramètres recueillent des informations à partir de l’interface utilisateur lorsqu’un utilisateur installe l’application. Ces entrées invitent l’utilisateur pour le serveur de base de données qui hébergera la base de données de l’application (« Serveur de base de données »), le nom de la base de données à créer (« Nom de la base de données »), l’utilisateur de la base de données à associer à la base de données (« Nom d’utilisateur de la base de données ») et le mot de passe de cet utilisateur (« Mot de passe de base de données »). Pour créer la base de données et l’utilisateur, Web Deploy a également besoin de l’utilisateur administrateur de base de données (« Administrateur de base de données ») et du mot de passe (« Mot de passe administrateur de base de données »).

Enfin, toutes les informations entrées par l’utilisateur sont utilisées par Web Deploy pour exécuter réellement les scripts qui créent la base de données (CreateDBAndUser.sql) et configurent les tables (VacPicDBSchema.sql). Il s’agit des 7ème et 8ème entrées dans Parameters.xml:

<parameter 
  name="Create DB and DB User Connection String" 
  description="Automatically sets the connection string for the connection request."
  defaultValue="Server={Database Server};Database={Database Name};uid={Database Administrator};Pwd=*;" <!-- replace Pwd=* with Pwd={Database Administrator Password} -->
  tags="Hidden,SQLConnectionString,Validate">
  <parameterEntry type="ProviderPath" scope="dbfullsql" match="CreateDBAndUser.sql" />
</parameter>
<parameter 
  name="Populate DB Connection String" 
  description="Automatically sets the connection string for the connection request." 
  defaultValue="Server={Database Server};Database={Database Name};uid={Database Administrator};Pwd=*;" <!-- replace Pwd=* with Pwd={Database Administrator Password} -->
  tags="Hidden,SQLConnectionString,Validate">
  <parameterEntry type="ProviderPath" scope="dbfullsql" match="VacPicDBSchema.sql" />
</parameter>

Là encore, étant donné que Web Deploy utilise un fournisseur pour synchroniser les informations de base de données (comme déclaré dans le fichier Manifest.xml), ces deux entrées de paramètre sont « type="ProviderPath" ».

Notre application « Vacation Pictures » effectue également le suivi de la connexion de base de données dans le fichier Web.config. Ce paramétrage est géré par l’entrée finale dans Parameters.xml.

Étape 4 : Créer un fichier zip qui contient l’application, le fichier manifeste et le fichier de paramètres

Vous disposez maintenant des blocs de construction de base nécessaires pour déployer l’application. Vous pouvez donc maintenant empaqueter l’application dans le format de package approprié. Le package doit simplement contenir le fichier Parameters.xml, le fichier Manifest.xml et les scripts d’installation de base de données au niveau supérieur (racine) du package zip et le contenu de l’application dans un sous-dossier.

Dans le coin inférieur gauche de WebMatrix, cliquez sur l’onglet Site pour accéder au contenu du site.

Capture d’écran montrant la boîte de dialogue Matrice web mettant en évidence l’onglet Site.

La page du site a un lien vers l’emplacement où se trouve le contenu de l’application :

Capture d’écran montrant l’URL et le chemin d’accès du contenu de l’application.

Cliquez sur le lien pour accéder au contenu de l’application. Accédez à un autre niveau à partir de ce dossier et créez un dossier appelé « VacationPicsWPIInstaller ». Copiez le dossier de contenu de l’application, les fichiers Manifest.xml et Parameters.xml, ainsi que les scripts d’installation de la base de données dans le dossier nouvellement créé :

Capture d’écran montrant le dossier de contenu de l’application avec des fichiers et des scripts d’installation de base de données.

Avec tous les fichiers sélectionnés, cliquez avec le bouton droit sur> Envoyer vers> Dossier compressé (zippé) :

Capture d’écran montrant les fichiers sélectionnés par un clic droit, en surlignant les options Envoyer vers et Dossier compressé.

Ce fichier compressé peut être nommé n’importe quoi, mais pour fonctionner mieux avec la démonstration, nommez-le «VacationPicsWPIInstaller.zip».

Ce package contient désormais tout ce qui est nécessaire pour le déployer.