Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

21
Installation d’une ferme IIS redondante en mode Core (v4.0) Tutorial conçu et rédigé par Michel de CREVOISIER – Janvier 2014 SOURCES Ferme IIS: http://technet.microsoft.com/en-us/library/jj129543.aspx Configuration de la ferme: http://technet.microsoft.com/en-us/library/jj129390.aspx

description

Mise en place d'une ferme de serveurs Web sous IIS 8.0 avec un système de répartition de charge NLB et une configuration partagée

Transcript of Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Page 1: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Installation d’une ferme IIS

redondante en mode Core (v4.0)

Tutorial conçu et rédigé par Michel de CREVOISIER – Janvier 2014

SOURCES Ferme IIS:

http://technet.microsoft.com/en-us/library/jj129543.aspx Configuration de la ferme:

http://technet.microsoft.com/en-us/library/jj129390.aspx

Page 2: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

INDEX SOURCES .............................................................................................................................................................. 1

INDEX ................................................................................................................................................................... 2

Préambule ........................................................................................................................................................... 3

1. Préparation du serveur de fichiers ............................................................................................................. 4

1.1 Création des utilisateurs ...................................................................................................................... 4

1.2 Création des dossiers partagés ............................................................................................................ 4

1.3 Affectation des droits .......................................................................................................................... 4

2. Configuration des serveurs Web ................................................................................................................ 5

2.1 Ajout des fonctionnalités IIS ................................................................................................................ 5

2.2 Activation de la console de gestion distante IIS .................................................................................. 7

2.3 Création d’un site Web ........................................................................................................................ 7

2.4 Déplacement du site web .................................................................................................................... 8

2.5 Configuration IIS partagée ................................................................................................................... 9

3. Activation du « load-balancing » .............................................................................................................. 12

4. Passage en mode « Core » ........................................................................................................................ 12

4.1 Intérêts .............................................................................................................................................. 12

4.2 Activation du mode « Core » ............................................................................................................. 12

5. Console IIS distante .................................................................................................................................. 13

5.1 Configuration des serveurs Web ....................................................................................................... 13

5.2 Connexion aux serveurs Web ............................................................................................................ 15

6. Application Request Routing (ARR) .......................................................................................................... 17

6.1 Installation ......................................................................................................................................... 17

6.2 Création d’une ferme ........................................................................................................................ 18

7. Erreurs ....................................................................................................................................................... 20

7.1 503 Service unavailable ..................................................................................................................... 20

7.2 Current identity does not have write access […] ............................................................................... 20

7.3 Server manager : WebServer.Events.xml .......................................................................................... 21

7.4 Cannot write configuration file […] ................................................................................................... 21

Page 3: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Préambule

L’objectif de ce tutoriel est de mettre en place une ferme de serveurs web hautement disponibles. Pour cela nous utiliserons un système de configuration IIS partagée ainsi qu’un système de répartition de charge NLB afin d’équilibrer les requêtes. Pour terminer nous activerons le monde Core sur la ferme afin d’optimiser et sécuriser au maximum les serveurs.

Pour ce tuto, j’utiliserai 4 serveurs membres du même domaine :

SRV-AD: serveur Active Directory et DNS (installation non détaillée)

SRV-WEB01 : serveur web (installation détaillée)

SRV-WEB02 : serveur web (installation détaillée)

SRV-FS : serveur de fichier (installation non détaillée)

Le schéma ci-dessous présente l’architecture cible :

IIS futurs

Websites

IIS futurs

Websites

Shared configuration

NLB with virtual IP(Network Load Balancing)

File server for

IIS files

Page 4: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

1. Préparation du serveur de fichiers

1.1 Création des utilisateurs Depuis la console Active Directory, créez deux utilisateurs du domaine nommés :

IIS-Websites : pour l’accès au dossier partagé contenant vos sites

IIS-ConfigShare : pour l’accès au dossier contenant la configuration partagée d’IIS

1.2 Création des dossiers partagés Sur votre serveur de fichiers, créez deux dossiers partagés :

Content : contiendra les dossiers propres à vos sites web

Config : contiendra la configuration partagée d’IIS

1.3 Affectation des droits Affectez ensuite les droits suivants sur les dossiers créés :

Content : o Administrators : lecture/écriture o IIS-Website : lecture

Config : o Administrators : lecture/écriture o IIS-ConfigShare : lecture/écriture

Page 5: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

2. Configuration des serveurs Web

2.1 Ajout des fonctionnalités IIS Pour commencer, il vous faut ajouter le rôle IIS sur chacun de vos futurs serveurs Web. Vous disposez pour cela de 3 possibilités listées à la suite. A toutes fins utiles, vous trouverez ici la liste des services associés au rôle IIS 7.5.

2.1.1 Installation locale (GUI) La première solution passe une approche traditionnelle. Autrement dit, il vous sera nécessaire de répéter cette tâche sur chacun des serveurs de la ferme. Pour cela :

Connectez-vous sur votre serveur (localement ou à distance)

Lancer le Server Manager > Manage > Add roles and fetaures wizard

Et ajoutez la fonctionnalité Web Server IIS avec les modules souhaités :

2.1.2 Installation « push » (GUI)

Cette seconde solution tire profit des nouveautés apportées par la console Server Manager de Server 2012. En effet, au lieu de vous connecter sur chaque serveur, vous aller pouvoir lancer directement l’assistant depuis la console de votre serveur principal. Toutefois, cela ne vous dispensera pas de répéter la tâche pour chaque serveur. Pour cela :

Page 6: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Ajoutez les futurs serveurs web dans l’aparté All Servers

Lancer le Server Manager > Manage > Add roles and fetaures wizard

Sélectionnez le serveur de votre choix :

Et ajoutez la fonctionnalité Web Server IIS avec les modules souhaités

2.1.3 Installation « push » (PowerShell) Cette troisième solution est probablement la plus adaptée et la plus rapide dans le cadre de déploiements massifs de serveurs. Pour commencer, il vous faut instancier une variable avec le nom des serveurs sur lesquels vous souhaitez déployer ses fonctionnalités. Il suffit ensuite d’exécuter une commande PowerShell « globale » pour installer d’un coup les fonctionnalités souhaitées. Pour cela, ouvrez une console PowerShell et exécutez les commandes suivantes : $Session=New-PsSession –ComputerName <name1>, <name2>, <name3> Invoke-Command –Session $Session –ScriptBlock {Import-Module ServerManager} Invoke-Command –Session $Session –ScriptBlock {Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security, Web-Mgmt-Service, Web-Basic-Auth, Web-Windows-Auth } Vous pouvez également préciser un chemin différent pour les sources : -Source D:\sources\sxs

Page 7: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Vérifiez que les rôles ont bien été déployés :

2.2 Activation de la console de gestion distante IIS

Avant de poursuivre avec la configuration des serveurs Web, je vous recommande d’activer la console IIS remote management. Celle-ci vous permettra de configurer et « manager » plusieurs serveurs IIS

depuis une seule et unique console. Pour cela référez-vous au point 5.

2.3 Création d’un site Web

2.3.1 Ajout d’une entrée DNS Ajoutez une entrée DNS de type A correspondant au nom de votre site web : Add-DnsServerResourceRecordA -Zonename "<zone DNS>" -Name "<Name>" -IPv4Address "<IP>"

2.3.2 Création du site Créez ensuite votre site web (source) : Import-Module webadministration New-Item IIS:\Sites\<name> -bindings @{protocol="http";bindingInformation=":<port>:TestSite"} -physicalPath <c:\test> Note : aucun « application pool » sera créé (celui par défaut sera utilisé). Par ailleurs vous n’aurez

pas la possibilité de préciser les droits de connexion au dossier partagé tel qu’expliqué au point 2.4.1.

2.3.3 Règle pare-feu Pour terminer, créez une règle autorisant le trafic web sur le port indiqué au point précédent : New-NetFirewallRule -DisplayName "<Name>" -Direction Inbound -LocalPort <port> -Protocol TCP -Action Allow

Page 8: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

2.4 Déplacement du site web

2.4.1 Changement de répertoire La première étape consiste à modifier l’emplacement de votre site en le faisant pointer vers le dossier

partagé créé au point 1.2. Depuis la console IIS :

Clic droit sur votre site > Manage website > Advanced settings

Modifiez la valeur Physical path en le faisant pointer vers le dossier partagé situé sur votre serveur de fichier : \\SRV-FILE\<share>

Modifiez ensuite la valeur Physical path credentials en renseignant le compte utilisateur IIS-

Website créé au point 1.1:

Validez le tout et « recyclez » l’application pool

2.4.2 Approbation du dossier partagé Il vous faut maintenant approuver le partage réseau contenant votre site. Pour cela exécutez les commandes DOS suivantes sur VOS serveurs IIS : C:\Windows\Microsoft.NET\Framework64\v4.0.30319\caspol.exe -m -ag 1. -url file://\\<file server>\<share>\<folder>\* FullTrust C:\Windows\Microsoft.NET\Framework\v4.0.30319\caspol.exe -m -ag 1. -url file://\\<file server>\<share>\<folder>\* FullTrust

Page 9: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Où :

Fileserver : nom du serveur de fichier

Share : nom du dossier partagé contenant vos sites web

Folder : dossier contenant votre site Vérifiez ensuite que votre zone a bien été prise en compte : caspol -lg

2.4.3 Autorisations .NET pour le compte IIS

Si vous utilisez les composants .NET v2 et v4 pour votre site, veuillez rajouter le compte d’accès au

dossier partagé pour le site IIS en question (point 1.1) sur les dossiers « Framework » suivants :

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Aspnet_regiis.exe -ga server\IIS-website C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Aspnet_regiis.exe -ga server\ IIS-website C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet_regiis.exe -ga server\IIS-website C:\Windows\Microsoft.NET\Framework\v4.0.30319\Aspnet_regiis.exe -ga server\ IIS-website

Dans le cas contraire, l’erreur du point 7.2 apparaîtra.

2.5 Configuration IIS partagée

2.5.1 Export de la configuration Pour que d’autres serveurs puissent être intégrés à la ferme, il vous faut activer le mode de configuration partagée. Pour cela :

Sur la console IIS de votre serveur, cliquez sur Shared configuration

Page 10: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Cliquez à droite sur Export configuration :

o Indiquez l’emplacement du dossier partagé créé à cet égard au point 1.2

o Indiquez l’utilisateur IIS-ConfigShare en cliquant sur Connect As o Indiquez une clef de chiffrement pour la configuration

2.5.2 Activation de la configuration partagée

Il vous faut maintenant activer la configuration partagée. Pour cela :

Cliquez sur Enable shared configuration et renseignez les informations demandées :

o Physical path : emplacement du dossier partagé de configuration créé au point 1.2

o User name : indiquez l’utilisateur IIS-ConfigShare o Password : son mot de passe associé

Page 11: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

La clef de cryptage créée au point 2.5.1 vous sera alors demandée. Validez pour terminer :

2.5.3 Intégration d’un nouveau serveur

Maintenant que votre configuration Web est partagée de façon sécurisée, il vous est possible

d’intégrer d’autres serveurs web. Pour cela, répétez le point 2.5.2 et :

Redémarrez le service IIS depuis la console

Fermez et ouvrez la console IIS On notera que toutes les éléments propres à la configuration du serveur sont pris en compte, dont :

Les Applications Pool

Les sites web

Les modes d’authentification activés ou désactivés

Les binds (IP, nom, port, certificats …) Note : en revanche, les états des sites ne sont pas synchronisés. Heureusement car autrement cette configuration n’aurait aucun intérêt.

2.5.4 Vérifications des accès Vous pouvez vérifier que les identifiants saisis sont corrects de la façon suivante :

Sélectionnez votre site dans l’arborescence située à gauche de la console IIS

Dans l’aparté à droite, cliquez sur Basic settings > Test settings

Page 12: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

3. Activation du « load-balancing » Maintenant que vos serveurs web sont opérationnels, ajoutez-les au sein d’un cluster NLB afin de rendre hautement disponibles les sites hébergés. Pour cela je vous recommande la lecture de mon tuto concernant la mise en place d’un cluster NLB. Notez toutefois quel l’IP émulée par le NLB devra correspondre à l’entrée DNS pointant vers le nom

de votre site (point 2.3.1).

4. Passage en mode « Core »

4.1 Intérêts Le mode Core permet de désactiver l’interface graphique du serveur de façon à minimiser sa surface d’attaque. Par ailleurs, cela contribue grandement à la sécurité tout en réduisant les opérations de maintenance ainsi que les ressources consommées. Sous Server 2008 R2, ce choix devait s’effectuer lors de l’installation de Windows. Mais avec Windows Server 2012, il est facilement possible de changer de mode ; l’idée générale étant de configurer son serveur en mode GUI pour ensuite le basculer en mode Core lorsque la configuration serait prête. A titre d’information, sachez qu’un Windows Server 2012 (virtuel) consomme après son installation et avec les dernières mises à jour, 400 Mb sur 1 Gb d’installé. En mode Core, la mémoire RAM occupée est réduite d’environ 45%.

4.2 Activation du mode « Core »

Import-Module ServerManager Uninstall-WindowsFeature Server-Gui-Shell,Server-Gui-Mgmt-Infra -Restart

Page 13: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

5. Console IIS distante Pour rappel, l’activation de cette console permet l’administration distante d’IIS. Notez toutefois que sa configuration est uniquement accessible depuis la console IIS locale.

5.1 Configuration des serveurs Web

5.1.1 Ajout de la fonctionnalité (PowerShell) Ouvrez une console PowerShell sur votre serveur « pilote » et exécutez la commande suivante, en précisant bien le nom des serveurs pour lesquels vous souhaiter activer cette fonctionnalité : $Session=New-PsSession –ComputerName <name1>, <name2>, <name3> Invoke-Command –Session $Session –ScriptBlock {Import-Module ServerManager} Invoke-Command –Session $Session –ScriptBlock {Add-WindowsFeature Web-Mgmt-Service}

5.1.2 Ajout de la fonctionnalité (GUI) Vous pouvez également ajouter cette fonctionnalité graphiquement sur vos serveurs. Pour cela :

Connectez-vous sur votre serveur (localement ou à distance)

Lancer le Server Manager > Manage > Add roles and fetaures wizard

Sélectionnez la fonctionnalité Web Server (IIS)

Et ajoutez le Management Service

5.1.3 Activation du service (GUI)

Il vous faut maintenant configurer le service. Pour cela, connectez-vous manuellement sur chaque serveur est effectuez les configurations suivantes :

Lancez la console Internet Information Services (IIS) Manager

Cliquez sur Management Service

Page 14: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Cliquez sur Enable remote connections et renseignez les informations demandées : o IP address: indiquez l’IP qui sera en écoute pour ce service o Port : choisissez un port de votre choix (par défaut 8172) o SSL certificate : vous pouvez utiliser le certificat par défaut ou en ajouter un o IP address restrictions : passez le champ à Deny et ajoutez l’adresse IP de votre

serveur pilote

Une fois votre configuration terminée, cliquez sur Apply dans le menu à droite pour valider

votre configuration, puis sur Start pour démarrer le service :

Page 15: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

5.1.4 Création d’une règle de pare-feu Si vous optez pour la configuration par défaut (déconseillé), la règle suivante sera automatiquement activée pour autoriser les communications TCP sur le port 8172 :

Pour créer une règle de pare-feu afin d’autoriser les connexions entrantes sur un port différent de celui utilisé nativement, exécutez la commande suivante : $Session=New-PsSession –ComputerName <name1>,<name2> Invoke-Command –Session $Session –ScriptBlock {New-NetFirewallRule -DisplayName “IIS management” -Direction Inbound –Protocol TCP –LocalPort <port> -Action allow –Profile Private,Domain}

5.1.5 Démarrage automatique du service Passez ensuite le mode de démarrage du service en automatique (manuel par défaut) en exécutant la commande DOS suivante : $Session=New-PsSession –ComputerName <name1>,<name2> Invoke-Command –Session $Session –ScriptBlock {set-service wmsvc -startuptype automatic}

5.2 Connexion aux serveurs Web

5.2.1 Ajout de la console IIS Maintenant que tous les serveurs Web de votre ferme ont le service activé et configuré, il vous faut installer la console IIS sur le serveur qui pilotera votre ferme. Pour cela, exécutez la commande PowerShell suivante : Add-WindowsFeature Web-Mgmt-Tools,Web-Mgmt-Console

5.2.2 Ajout d’un serveur web Ajoutez pour terminer les serveurs web que vous souhaitez piloter. Pour cela :

Ouvrez la console IIS Manager et cliquez sur Connect to a server

Page 16: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Renseignez les informations demandées : o Server name : <nom serveur> :<port>

o User name : <domaine>\<user>

Acceptez l’alerte de certificat

Indiquez un nom pour cette connexion

Répétez ensuite cette action pour tous vos serveurs Web

Page 17: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

6. Application Request Routing (ARR)

6.1 Installation L’Application Request Routing (ARR) vous permet d’implémenter des fonctionnalités avancées de haute-disponibilité et de répartition de charge sur vos serveurs IIS (source).

Attention ! ARR ne supporte pas la configuration partagée activée au point 2.5

6.1.1 Installation automatique Téléchargez le « Web installer » à partir du lien suivant. Lancez-le afin qu’il installe automatiquement les logiciels requis :

Si tout est bon :

Page 18: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

6.1.2 Installation manuelle Pour installer ARR en mode en hors-ligne, vous devrez installer dans l’ordre les composants suivants (source) :

Web Farm Framework (v1): téléchargement ici

External Cache (v1): téléchargement ici

URL rewrite (v2): téléchargement ici

ARR (v2.5): téléchargement ici

6.1.3 Nouveautés Les services suivants sont rajoutés par l’ARR :

Application Requet Routing Cache

URL Rewrite

Web Plateform Installer L’aparté Server Farm est également disponible :

6.2 Création d’une ferme

Clic droit > Create server farm

Page 19: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Indiquez le nom des serveurs web membre de la ferme :

Dirigez-vous ensuite vers la ferme créée et remarquez les nouvelles options disponibles :

Page 20: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

7. Erreurs

7.1 503 Service unavailable Le problème suivant se pose dès lors que vous utilisez une configuration partagée. En effet, lorsque le serveur de fichier hébergeant la configuration IIS n’est plus joignable, le système va essayer de la recharger à partir d’une configuration locale. A ce stade :

des erreurs W3SVC seront enregistrées

une erreur 503 Service Unavailable sera présente sur votre site

Solution : exécutez un IISreset sur chacun de vos serveurs pour relancer vos sites. Il existe quelques solutions parant à cette problématique :

Mise en place d’un partage DFS

Mise en place d’un partage SMB v3 hautement disponible

Configurer les « Offlines files » (sources)

7.2 Current identity does not have write access […]

Page 21: Installation d’une ferme IIS redondante en mode Core (tuto de A à Z)

Cette erreur se produit si votre site web fait appel aux composants .NET tout en utilisant un dossier

partagé (point 2.4). Pour corriger ce problème, suivez les indications du point 2.4.3.

7.3 Server manager : WebServer.Events.xml

Pour corriger cette erreur, supprimer la clef EventQuery située dans la ruche suivante : HKLM\Software\Microsoft\ServerManager\ServicingStorage\ServerComponentCache\Web-Server

7.4 Cannot write configuration file […]

Si vous pilotez vos serveurs IIS à partir d’une console distante (point 5) tout en utilisant une

configuration partagée (point 2.5), l’erreur ci-dessous se produira si par exemple vous souhaitez

arrêter/démarrer votre serveur :

Cette erreur est provoquée en raison de l’absence de droits sur le dossier partagé de la configuration d’IIS. En effet, lorsque vous gérer à distance vos serveurs IIS sur configuration partagée, ce n’est pas votre compte qui est utilisé, sinon le compte de service exécutant le « Web Management Service »

(point 5).

Solution : ajouter le compte « Local Service » en lecture/écriture sur le dossier partagé de la configuration partagée IIS. Vous pouvez également modifier le compte de service « Web Management Service » avec un compte de service et ajoutant ce compte sur ce dossier partagé

N’hésitez pas à m’envoyer vos commentaires ou retours à l’adresse suivante : m.decrevoisier A-R-0-B-A-5 outlook . com

Soyez-en d’ores et déjà remercié