Déploiement d'une application sur une batterie de serveurs Web/Synchronisation de tous les ordinateurs d'une batterie de serveurs Web
Cet exemple montre comment écrire un script de ligne de commande pour effectuer les tâches suivantes dans le scénario de batterie de serveurs Web :
Déployez une application à partir d'un package fourni par un développeur sur plusieurs ordinateurs d'une batterie de serveurs Web.
Le déploiement d'un nouveau package d'application ou la mise à niveau d'une application sur plusieurs ordinateurs peut être une tâche fastidieuse. Un script permettant d'envoyer le package et d'effectuer le déploiement sur des ordinateurs distants simplifie cette tâche.
Synchronisez le contenu et la configuration de tous les ordinateurs d'une batterie de serveurs Web sur un ordinateur modèle unique.
L'application de plusieurs modifications à une batterie de serveurs Web exige qu'elles soient toutes appliquées à tous les ordinateurs exactement de la même manière. Si toutes les modifications nécessaires sont reprises dans un script, cette tâche est aisée. Autrement, se pose le problème de savoir comment enregistrer et reproduire tous les changements sur tous les ordinateurs de la batterie de serveurs Web. Une autre solution consiste à appliquer tous les changements à un seul ordinateur, puis à les répliquer dans la batterie de serveurs Web.
Cet exemple montre comment utiliser l'outil de déploiement Web (MSDeploy) pour déployer un package d'application ou répliquer le contenu et la configuration d'un seul serveur sur tous les ordinateurs de la batterie de serveurs Web. Cet exemple est adapté à tous les packages d'application MSDeploy. Il est recommandé d'utiliser l'Exemple d'application courante d'AppFabric, qui a été créée pour une utilisation avec des exemples Microsoft AppFabric 1.1 pour Windows Server. Pour trouver ce package d'application, accédez au dossier <exemples>\Samples\Management\MultiMachineSyncAndDeploy\Code\CalculatorService.zip file, où <exemples> représente le chemin d'accès aux exemples AppFabric. Vous pouvez aisément modifier le scripts en fonction de besoins spécifiques, par exemple, pour renommer l'application déployée ou pour ne synchroniser qu'un seul site.
Notes
Les exemples sont fournis à titre éducatif uniquement. Ils ne sont pas destinés à être utilisés dans un environnement de production et n'ont pas été testés à cet usage. Microsoft ne fournit aucune assistance technique pour ces exemples.
Conditions préalables
Cet exemple utilise au moins deux ordinateurs présentant la configuration suivante :
Le service d'agent distant de l'outil de déploiement Web (également appelé Service de l'agent de déploiement) doit être installé et en cours d'exécution sur tous les ordinateurs. Par défaut, AppFabric installe l'outil de déploiement Web, mais son service d'agent distant ne fait pas partie de l'installation par défaut. Pour ajouter le Service d'agent distant à votre installation :
ouvrez le panneau de configuration Programmes et fonctionnalités, sélectionnez Outil de déploiement Web, puis cliquez sur Modifier.
Lorsque vous y êtes invité, cliquez sur Suivant, puis, dans l'écran suivant, cliquez sur Modifier.
Une fois la liste des fonctionnalités affichée, assurez vous que Service d'agent distant est associé à la mention Sera installé sur le disque dur local, puis exécutez l'Assistant Installation.
Une fois l'exécution de l'Assistant terminée, démarrez le service en tapant
net start msdepsvc
dans une fenêtre de commande. Si vous voulez que le service démarre automatiquement à chaque démarrage de Windows, tapezsc config msdepsvc start=auto
dans une fenêtre de commande.
Pour en savoir plus sur l'installation et la configuration de l'outil de déploiement Web, ou pour l'installer sur un ordinateur sur lequel AppFabric n'est pas installé, consultez la rubrique http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/ (en anglais).
Tous les ordinateurs qui seront modifiés durant la synchronisation doivent autoriser l'accès aux Services World Wide Web (HTTP) via leur pare-feu.
Tous les ordinateurs de la batterie de serveurs Web doivent faire partie d'un domaine, et le compte que vous utilisez pour synchroniser la batterie de serveurs doit disposer de privilèges administratifs sur tous les ordinateurs.
Dans le cadre de l'utilisation d'un fournisseur personnalisé, il peut parfois s'avérer utile de déterminer si celui-ci est reconnu par le service d'agent distant. Deux méthodes permettent de déterminer les fournisseurs disponibles.
Utilisation d'IIS. À partir du Gestionnaire des services Internet, cliquez avec le bouton droit sur une application, sélectionnez Déployer, puis Exporter une application. Dans la boîte de dialogue Exporter une application, cliquez sur Gérer les composants. Dans la colonne Fournisseurs, cliquez sur la dernière ligne vide, puis sur la flèche vers le bas. La liste des fournisseurs disponibles s'affiche, notamment les fournisseurs personnalisés reconnus par le service d'agent distant.
Utilisation de la ligne de commande. Entrez MSDEPLOY.EXE dans une invite de commandes de la ligne de commande de l'outil Web Deploy. Les informations affichées incluent notamment les fournisseurs personnalisés disponibles. Pour plus d'informations sur l'installation de l'outil Web Deploy, consultez la rubrique Installation de l'outil de déploiement Web.
Vous pouvez également modifier l'exemple de script pour être exécuté dans un environnement hors domaine. Pour en savoir plus sur les options d'authentification de l'outil Web Deploy, consultez la section authType de la rubrique https://technet.microsoft.com/en-us/library/dd569001(WS.10).aspx.
Emplacement et fichiers de l'exemple
Tous les fichiers nécessaires à l'exécution de cet exemple se trouvent dans le répertoire <samples>\Samples\Management\MultiMachineSyncAndDeploy\Code:
machines.txt
sync.cmd
syncOne.cmd
deployOne.cmd
Configuration et exécution de l'exemple
Tâche 1 : déployer un package.
Copiez tous les fichiers du répertoire <samples>\Samples\Management\SyncConfigFromModelMachine\Code vers l'ordinateur d'administration.
Modifiez le fichier machines.txt de façon à ce qu'il contienne les noms de tous les autres ordinateurs de la batterie de serveurs que vous voulez modifier en un seul lot. Vous devez insérer un nom d'ordinateur par ligne.
Exécutez la commande
sync.cmd -fromPackage <package file path>
.Examinez les fichiers journaux pour vous assurer qu'ils ne contiennent pas d'erreur. Chaque ordinateur a son propre fichier journal nommé sync-MACHINE.log, où MACHINE est remplacé par son nom.
Tâche 2 : synchroniser sur un ordinateur modèle.
Une fois que tous les ordinateurs de la batterie de serveurs répondent aux exigences précédentes, vous pouvez commencer à modifier la configuration de l'application ou du site sur l'un deux. Nous appellerons ce dernier « ordinateur modèle ».
Une fois la configuration terminée, copiez tous les fichiers du répertoire <samples>\Samples\Management\SyncConfigFromModelMachine\Code sur l'ordinateur modèle.
Modifiez le fichier machines.txt de façon à ce qu'il contienne les noms de tous les autres ordinateurs de la batterie de serveurs que vous voulez modifier en un seul lot. Vous devez insérer un nom d'ordinateur par ligne.
Exécutez la commande
sync.cmd -fromLocalServer
, puis entrez Y pour confirmer.Examinez les fichiers journaux pour vous assurer qu'ils ne contiennent pas d'erreur. Chaque ordinateur a son propre fichier journal nommé sync-MACHINE.log, où MACHINE est remplacé par son nom.
Description de l'exemple
Le script sync.cmd commence par valider les arguments de ligne de commande fournis par l'utilisateur :
if "%1"=="" goto print_syntax
if "%1"=="-fromLocalServer" goto sync_server
if "%1"=="-fromPackage" goto sync_package
goto print_syntax
En fonction de l'argument, le script appelle le script deployOne.cmd ou syncOne.cmd une seule fois pour chaque ordinateur spécifié dans le fichier machines.txt. Pour ce faire, il utilise les commandes for et start pour appeler le script suivant, de façon à ce que la tâche soit effectuée simultanément sur les ordinateurs cibles.
for /f %%i in ('type machines.txt') do (start deployOne.cmd %%i %2 %3 )
Ou
for /f %%i in ('type machines.txt') do ( start syncOne.cmd %%i %1)
SyncOne.cmd/DeployOne.cmd est un script qui utilise l'interface de ligne de commande de Web Deploy, en particulier une commande nommée msdeploy.exe, pour synchroniser un serveur Web IIS distant avec le package ou le serveur Web IIS tout entier sur l'ordinateur local.
msdeploy.exe -verb:sync -source:package=%2 -dest:auto,computername=%1 %3
Ou
msdeploy.exe -verb:sync -source:webServer -dest:webServer,computername=%1 %2
Le premier paramètre est le nom d'ordinateur transmis à partir de sync.cmd et le chemin d'accès du fichier de package est requis par le script deployOne.cmd comme second paramètre. Le dernier paramètre, facultatif, est tout paramètre que vous voulez transmettre à msdeploy. Cela est utile si vous voulez transmettre un paramètre supplémentaire à Web Deploy sans devoir modifier aucun script. Un tel paramètre supplémentaire pourrait être -whatif :
sync.cmd -whatif
Lorsque Web Deploy s'exécute avec le paramètre -whatif, il contrôle toutes les erreurs qui pourraient se produire durant l'exécution de la commande spécifiée, mais sans l'exécuter réellement. Il est recommandé d'exécuter la commande sync sur un environnement de production avec le paramètre -whatif pour voir si des erreurs peuvent se produire. Cette mesure de précaution peut éviter une fermeture dans un état incohérent.
Suppression de l'exemple
Pour supprimer cet exemple, effacez tous ses fichiers de l'ordinateur admin/model.
Autres ressources
Pour plus d’informations sur l'outil de déploiement Web, consultez la rubrique http://learn.iis.net/page.aspx/346/web-deployment-tool/ (en anglais).
Pour plus d'informations sur l'utilisation de Web Deploy pour synchroniser deux serveurs exécutant IIS 7.0, consultez la rubrique http://learn.iis.net/page.aspx/446/synchronize-iis-70/.
Pour plus d’informations sur l'installation et la configuration de l'outil de déploiement Web, consultez la rubrique http://learn.iis.net/page.aspx/421/installing-the-web-deployment-tool/.
2012-03-05