Vous êtes sur la page 1sur 14

Mise en production d'une application Web ASP .

NET

Table des matières


Description...........................................................................................................................................2
Récupération du projet du dépôt CVS..................................................................................................3
Compilation du projet...........................................................................................................................4
Enregistrement de l'application............................................................................................................5
Ajout d'une entrée dans la base de données.....................................................................................5
Configuration du serveur web..............................................................................................................8
Machine Virtuelle LXLYODEV31 .................................................................................................8
Configuration du frontal.......................................................................................................................9
Sur la machine de développement LXLYODEV30 (BETA)...........................................................9
Mise à jour d'une application .............................................................................................................10
Annexes..............................................................................................................................................11
Informations utiles.........................................................................................................................11
Fichiers de projet ...........................................................................................................................11
Démarrage et Arrêt des services mono..........................................................................................12
Fichier journal................................................................................................................................12

DSI
Page 1/14
Description

Ce document a pour but de décrire la mise en production d'une application web ASP .NET sur le
serveur de développement BETA (10.69.207.44). Il sera notamment décrit les étapes suivantes :
• Rapatriement des sources du dépôt CVS sur le serveur BETA ;
• Compilation du projet et ajout dans la base de données ;
• Configuration du serveur web apache + machine virtuelle VMware lxlyodev31
(10.69.207.53) ;

Les projets installés sur le serveur BETA, sont soit réalisés avec Visual Studio 2003, soit
MonoDevelop 1.1. Les librairies utilisées sont présentes sur le serveur BETA, dans le répertoire
"/data/intranet/Libraries".

Pour démarrer ou stopper une application, une application web nommée « Gestionnaire de
services ASP.NET » a été réalisé. Elle demandera de se synchroniser à une base de données
PostgreSQL (version 8.4.7) qui liste l'ensemble des applications présentes sur le serveur BETA, en
indiquant un ensemble d'informations dessus.

À titre d'exemple, nous considérerons, par la suite, que le projet qui doit être installé sur le serveur
BETA est nommé « TestASPNET11 ». Il s'agit d'une application web qui repose sur la version 1.1
du framework .NET.

CVS Requêtes du client


Sur 10.69.100.181
(dépôt des sources)
Serveur BETA
Serveur BETA
lxlyodev30
lxlyodev30
(10.69.207.44)
(10.69.207.44) CLIENT

VM Reverse
(10.69.207.53) Proxy

BDD sur 10.69.207.2


(PostgreSQL 8.4)

Figure 1 – Schéma fonctionnel de la plateforme de déploiement.

DSI
Page 2/14
Récupération du projet du dépôt CVS

Les applications sont installées sur le serveur BETA (10.69.207.44) dans le répertoire
/data/intranet/.
Les librairies qui seront utilisées par chacune des applications se trouvent dans le répertoire
/data/intranet/Librairies. Si il est nécessaire de récupérer l'une d'entre elles pour un projet en
particulier, il faudra alors créer un lien symbolique de la librairie manquante dans le répertoire bin
du projet.

Tout d'abord, on commence par se connecter au serveur BETA et on se positionne dans le


répertoire /data/intranet :

$ ssh 10.69.200.44 -l intranet


$ cd /data/intranet

On déclare une variable d'environnement CVSROOT qui va permettre la connexion au dépôt des
sources :

$ export CVSROOT=":pserver:intranet@10.69.100.181:/usr/local/cvsroot"

Ensuite, on rapatrie les sources du projet en donnant en paramètres le nom qu'il porte dans le
dépôt CVS.

$ cvs co TestASPNET11

Il est possible d'ajouter l'option '-d' à la ligne de commande pour spécifier un nom différent de
répertoire que celui utilisé pour le projet. Cela se révélera utile dans la cas où le projet à rapatrier
se trouve déjà dans un autre répertoire.

Ex : TestASPNET11 se trouve dans un répertoire Test.

$cvs -d TestASPNET11 Test/TestaSPNET11

Cette commande permet de récupérer les sources dans un répertoire Testaspnet11 et ne crée par
un répertoire Test dans lequel il va créer un autre répertoire TestASPNET11 qui contiendra les
sources du projet.

DSI
Page 3/14
Compilation du projet

Pour créer l'exécutable, il faut ouvrir un terminal, se positionner sur /data/intranet/TestASPNET11


grâce à la commande cd (cf. Récupération du projet du dépôt CVS) et taper la commande :

• pour MonoDevelop 1.1 et Visual Studio 2003 :

$ mono /data/mono/Prj2Make.exe ;

• pour MonoDevelop 2.0 et Visual Studio 2005 et supérieur :

$ xbuild ;

Ces deux commandes vont permettre de créer un fichier Makefile qui va permettre de compiler le
projet avec la commande make :

$ make

Remarque : librairies manquantes.


À la compilation, il se peut que des librairies soient manquantes pour la création du binaire. Il faut
alors les ajouter dans le répertoire bin du projet. L'ensemble des librairies se trouvent dans le
répertoire /data/intranet/Librairies. L'opération va consister à créer un lien symbolique dans le
répertoire bin de chacune des librairies manquantes. Puis, de compiler à nouveau l'application
avec la commande make.

Ex : AjaxPro.dll not resolved.


$ ln -s /data/intranet/Librairies/AjaxPro.dll ./bin/AjaxPro.dll

Enfin, Il est possible de tester l'application avec le serveur xsp comme suit :
• .NET 1.1 :
◦ xsp1 –port 8088 –applications /TestASPNET11:/data/intranet/TestAspNET11
• .NET 2.0 et supérieur :
◦ xsp2 –port 8088 –applications /TestASPNET11:/data/intranet/TestAspNET11

Le port 8088 est à titre d'exemple et peut être modifier.


Ne pas oublier d'adapter le fichier web.config de chaque projet si par exemple, il contient un
chemin relatif vers un répertoire qui ne correspond pas à l'environnement sur lequel il est installé.

DSI
Page 4/14
Enregistrement de l'application

Ajout d'une enregistrement dans la base de données


Il faut tout d'abord ouvrir un navigateur web et se connecter à l'adresse suivante :
• http://10.69.100.181/phppgadmin

On choisit le serveur LXLYODEV30 dans la barre de gauche avec comme identifiant et mot de
passe postgres. Ensuite, la base de données aspstate, le schéma public et la table serveurs.
Choisir Parcourir pour avoir un aperçu des entrées dans la table. Pour ajouter une nouvelle entrée
qui va correspondre à notre application TestAspNET11, choisir insérer et renseigner les champs
comme suit :

Colonne Description Types Valeur

realname Nom qui décrit l'application text Application des test

virtualpath Chemin dans l'url text /TestAspNET11

realpath Chemin absolue sur la machine text /data/intranet/TestAspNET11

port Numéro de port integer null

state État (démarré ou non) boolean true

tcip Indique si mono_server communique avec boolean false


Apache depuis une autre machine en
TCP/IP.

socket Nom de la socket text testaspnet11

id Généré par la base de données (entier) integer -

net2 Indique si le projet a été réalisé avec boolean false


.NET 2.0

Tableau 1 – Enregistrement dans la base de données de l'application TestASPNET11.

Les valeurs indiquées sont à titre d'exemple.


Faire attention à ne pas oublier de renseigner le champ socket !!!

Terminer en cliquant sur insérer. Il apparaît dans la liste.

DSI
Page 5/14
Ensuite, il faut se rendre sur le gestionnaire des services ASP.NET à l'adresse :
• http://lxlyodev30:8080/.

En voici un aperçu de la page affichée par défaut :

Figure 2 – Aperçu du Gestionnaire de services APS.NET.

C'est une application web réalisé en ASP.NET et C#. Il a pour principale utilité de pouvoir arrêter
ou démarrer une application installée sur le serveur BETA, simplement à partir d'un navigateur
web. Elle fournit un ensemble de renseignements sur l'état de fonctionnement d'une application ou
encore le chemin absolue vers les sources du projet.

http://lxlyodev30:808
0

BDD sur 10.69.100.181 Synchronisation


(PostgreSQL 8.4.7)
Gestionnaire des services
ASP.NET
(interface web)

Figure 3 – Schéma fonctionnelle du Gestionnaire des services web.

DSI
Page 6/14
Tout d'abord, il faut se connecter à BetaIntranet en cliquant sur Connexion après avoir renseigner
le champ Nœud :

Figure 4 – Aperçu de la page d'accueil du Gestionnaire des services ASP.NET.

Cliquer sur Synchronisation BD, l'application est cette-fois si ajoutée à la liste :

Figure 5 – Aperçu du bouton de synchronisation à la base de données.

Remarque : boutons de l'interface web.


On peut remarquer que sur la barre des boutons, il existe aussi :
• un bouton déconnexion pour stopper la session ;
• un bouton "rafraîchir" pour mettre à jour l'affichage du tableau ;
• un bouton "Démarrer Tout" pour démarrer toutes les applications ;
• un bouton "Arrêter Tout" pour arrêter toutes les application ;

DSI
Page 7/14
Pour démarrer l'application, l'arrêter ou encore la redémarrer, il suffit de cliquer sur les boutons
situé dans la première colonne :

Figure 6 – Aperçu d'application en état de marche.

Pour chaque application qui correspond à une ligne du tableau, on pourra lire :
• id : identifiant de l'application dans la base de données ;
• PID : le numéro de pid attribué au processus par le système d'exploitation ;
• Nom réel : un nom qui va permettre de traduire ce que fait l'application ;
• Répertorie Virtuel : répertoire virtuel qui pointe vers un répertoire du disque dur ;
• Répertoire Physique : chemin absolue vers la racine du projet ;
• .NET 2+ : indique si le projet est réalisé avec le framework .NET 2.0 et supérieur ;
• État : permet de connaître l'état de fonctionnement de l'application.

Les boutons qui permettent de contrôler le fonctionnement de l'application :


• bouton en forme de croix rouge : arrêter l'application ;
• double flèche bleu : redémarrer l'application ;
• flèche verte : démarrer l'application.

Une application peut prendre trois état :


• Démarré Ok: l'application a été démarrée et est disponible ;
• Arrêté Nok : l'application a été stoppée et n'est plus disponible ;

Pour chaque état des codes couleurs permettre de mettre visuellemnt en évidence l'arrêt ou non
d'une application. La ligne passera ainsi dans une couleur rouge pour induqer que l'applicatrion
n'est plus en état de fonctionnement :

Figure 7 – Aperçu de l'arrêt d'une application

Pour démarrer l'application, il suffit d'appuyer sur le bouton en forme de flèche verte.

DSI
Page 8/14
Configuration du serveur web

Machine Virtuelle LXLYODEV31


Ouvrir un terminal et se connecter à la machine lxlyodev31 avec fiducial comme mot de passe :

$ ssh intranet@10.69.207.53

une fois la connexion établie, il faut modifier se rendre dans le répertoire conf.d et ouvrir le fichier
intranet.conf :

$ cd /etc/httpd/conf.d/
$ vi intranet.conf

Pour enregistrer et quitter vi, il faut appuyer sur le bouton Echap ou ESC, puis taper la ligne
suivante :
:wq

Puis ajouter un nouveau bloc dans l'élément VirtualHost en appuyant sur la touche i pour entrer
dans le mode insertion :
MonoUnixSocket testaspnet11 /tmp/testaspnet11 # définit la socket en
# donnant son nom et le
# chemin absolu du fichier
MonoRunXSP testaspnet11 false # indique à Apache de ne pas s'occuper du
# démarrage et de l'arrêt du service
# mono_server

Alias /TestAspNET11 /data/intranet/TestAspNET11


<Location /TestAspNET11>
MonoSetServerAlias testaspnet11 # alias sur TestASPNET11
DirectoryIndex Default.aspx # fichier affiché par défaut
# liste les extensions des fichiers qui seront traitées par
# mono_server
AddHandler mono .aspx .ashx .asmx .ascx .config .axd .cs .dll
Order allow,deny
Allow from all
</Location>

DSI
Page 9/14
On termine par la commande :
$ /etc/init.d/httpd reload

DSI
Page 10/14
Configuration du frontal

Sur la machine de développement LXLYODEV30 (BETA)


Ouvrir un terminal et se connecter à la machine lxlyodev30 avec fiducial comme mot de passe :
$ ssh intranet@lxlyodev30

Une fois la connexion établie, il faut se rendre dans le répertoire sites-available d'Apache et ouvrir
le fichier default :
$ cd /etc/apache2/sites-available
$ vi default

Puis ajouter une nouvelle directive ProxyPass :


ProxyPass /TestASPNET11 balncer://clusterbeta/TestASPNET11

On quitte l'éditeur vi en n'oubliant pas d'enregistrer la modification :


• Appuyer sur le bouton Echap ou ESC ;
• Taper la commande suivante :
:wq

On termine par la commande :

$ /etc/init.d/apache2 reload

L'application TestANET11 est maintenant disponible en démonstration. Pour accéder à celle-ci,


ouvrir un navigateur web et inscrire dans la barre d'adresses :
• http://lxlyodev30/TestASPNET11

DSI
Page 11/14
Mise à jour d'une application

Le déroulement d'une mise à jour pour une application :


• s'assurer que les modifications faites par le développeur ont bien étés commiter sur le
dépôt des sources ;
• Arrêter le processus mono_server :
◦ se connecter avec Betaintranet à l'adresse http://lxlyodev30:8080/ sur le gestionnaire
de services ASP.NET ;
◦ cliquer sur le nom de l'application TestAspNET11 dans notre cas ;
◦ aller an bas de la page et cliquer sur Arrêter ;

Figure 7 – Aperçu du bouton arrêter.

• Mettre à jour les sources avec la commande :


◦ cvs up -d
• recompiler le projet (cf. Compilation du projet) ;
• retourner sur le gestionnaire de services ASP.NET pour redémarrer l'application :
◦ cliquer sur le nom de l'application ;
◦ aller en bas de la page puis cliquer sur Démarrer.

Figure 8 – Aperçu du bouton arrêter.


L'application est mis à jour. Ces étapes sont à réaliser chaque fois qu'une mise à jour de
l'application TestAspNET11 est nécessaire.

DSI
Page 12/14
Annexes

Informations utiles
• serveur BETA :
◦ nom d'hôte lxlyodev30 ;
◦ IP : 10.69.207.44 ;
◦ système d'exploitation : Ubuntu 10.04.02 LTS LUCID
• machine virtuelle VMware :
◦ nom de d'hôte lxlyodev31 ;
◦ IP : 10.69.207.53 ;
◦ système d'exploitation : CentOS release 5.5 FINAL.

Fichiers de projet
Pour le framework .NET 1.1, les sources sont compilées avec l'outil mcs alors que pour les
versions 2.0 et supérieur du framework, l'outil est gmcj.

Extensions de fichiers
Framework .NET IDE
Solution Projet

1.1 MonoDevelopp 1.1 .mds .mdp


compilateur : mcs Visual Studio 2003 .sln .csproj

>=2.0 MonoDevelopp 2
compilateur : gmcj .sln .csproj
Visual Studio 2005 et
supérieur

Les conséquences sont que lors de la compilation du projet, l'outil est le même xbuild pour
MonoDevelopp 2.0 et Visual Studio 2005. En atteste les fichiers projets et solutions qui reposent
sur le même format MSBUILD. Alors que pour les versions du framework inférieur à 2.0, l'outil
utilisé est un binaire fourni par le projet Mono, qui permet de construire un fichier Makefile utilisé
pour compiler l'application.

DSI
Page 13/14
Démarrage et Arrêt des services mono
Un script de démarrage et d'arrêt des services mono, nommé ServersLauncher a été créé dans le
répertoire /etc/init.d/ de la machine virtuelle (10.69.207.53). Il a été créé pour rendre indépendant
le lancement et les arrêts des services mono, du serveur web Apache.

Fichier journal
Un fichier log permet de journalisé l'ensemble des actions réalisé par le serveur pour pouvoir être
informer sur l'état de fonctionnement du serveur Mono. Son emplacement est indiqué dans le
fichier intranet.conf qui se trouve dans /etc/httpd/conf.d/ sur la machine 10.69.207.53.

DSI
Page 14/14