wiki:Tests

Version 66 (modified by /C=FR/O=CNRS/OU=UMR8607/CN=Laurent Garnier/emailAddress=garnier@…, 10 years ago) ( diff )

--

Installation du serveur web PSPA: pspa.lal.in2p3.fr

La machine hébergeant serveur PSPA se trouve pour des raisons de commodités, sur une machine administrée par stratus-lab avec le serveur de jobs jenkins, mais pourrait très bien se lancer de votre propre machine ou bien sur un autre serveur en salle machine.

Plusieurs étapes sont nécéssaires en fonction de ce que l'on veux faire :

  • 1. [InitialisationServeurPSPA Création depuis zéro, installation des librairies nécéssaires]
  • 2. [ServeurPSPAPreConfigure Utilisation d'une machine pré-configurée pour accueillir PSPA]
  • 3. [RelancerServeurPSPA Relancer la machine hébergeant le serveur PSPA]

Dans le cas 1. il va falloir :

  • Installer stratus-lab ci besoin (étape 1 ci dessous)
  • Créer une nouvelle machine et y installer les packages nécessaires (étape 2 ci dessous)
  • Sauver cette machine sur le marketplace de stratus-lab en vue d'avoir une machine pré-configurée pour PSPA (cas 2 ci-dessus)

Dans le cas 2. il va falloir :

  • Installer stratus-lab ci besoin (étape 1 ci dessous)
  • Créer et lancer la machine pré-configurée PSPA (voir cas 1)
  • Configurer le serveur de jobs jenkins

1.Installer StratusLab

Tout est écrit ici (depuis le 8/7/14)

2.Créer une machine virtuelle pour héberger le serveur

Creation d'une image disque "PSPA" à partir d'une machine existante :

stratus-create-image --author-email=garnier@lal.in2p3.fr \
                                 --author="Garnier Laurent" \
                                 --comment="CentOS V6.5 / PSPA Wep App." \
                                 --no-shutdown  \
                                 --image-version 1.0 \
                                 --title="CentOS V6.5 / PSPA Wep App"  \
                                KT8gOU8gve_k3UFL7p5Els57My2


 :::::::::::::::::::::::::::::
 :: Starting image creation ::
 :::::::::::::::::::::::::::::
 :: Checking that base image exists
 :: Retrieving image manifest
 :: Starting base image
  [WARNING] Image availability check is disabled.

 :::::::::::::::::::::::::
 :: Starting machine(s) ::
 :::::::::::::::::::::::::
 :: Starting 1 machine
 :: Machine 1 (vm ID: 4908)
	Public ip: 134.158.75.200
 :: Done!
 :: Waiting for machine to boot
............................
 :: Waiting for machine network to start
....
 :: Check if we can connect to the machine
 :: Executing user prerecipe
 :: Installing user packages
 :: Executing user recipe
 :: Executing user scripts

 ::::::::::::::::::::::::::::::::::::::::
 :: Finished building image increment. ::
 ::::::::::::::::::::::::::::::::::::::::

 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :: Please check garnier@lal.in2p3.fr for new image ID and instruction. ::
 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 :: Machine ready for use

	Machine IP: 134.158.75.200	Remember to stop the machine when finished

Installation des paquets essentiels à PSPA

ssh -Y root@134.158.75.200
yum update yum
yum update -y

# Jenkins (from https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions)
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install jenkins -y

# Compiler and others
yum install hg gcc-c++ boost-devel wt-devel make gcc-gfortran gdb subversion cmake \
                 xerces-c-devel Coin2 expat-devel  doxygen pango-devel GraphicsMagick-devel openssl-devel fcgi-devel httpd \
                 qt qt-devel \
                 openmotif-devel libX11-devel xorg-x11-server-Xvfb xorg-x11-xauth libXxf86dga xorg-x11-server-Xorg xorg-x11-xinit xterm \
                 zlib hg  daemonize

# Wt (from )
rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm --import https://fedoraproject.org/static/0608B895.txt
rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms
yum update; yum upgrade -y
#
# Wt and Dependencies (source: http://redmine.webtoolkit.eu/boards/1/topics/6178)
yum install wt wt-devel wt-dbo wt-dbo-postgres wt-examples \
                 GraphicsMagick GraphicsMagick-devel \
                 jasper-libs fcgi lcms-libs libICE libSM libwmf-lite urw-fonts 

# Haru :
curl https://codeload.github.com/libharu/libharu/legacy.tar.gz/master -olibhpdf.tar.gz
tar -xzf libhpdf.tar.gz 
mkdir libharu-libharu-build
cd libharu-libharu-build/
cmake ../libharu-libharu-ec89be4/
make -j
sudo make install

# CMT 
 curl http://www.cmtsite.net/v1r25/CMTv1r25Linux-i686.tar.gz -o CMTv1r25Linux-i686.tar.gz
tar -xvf CMTv1r25Linux-i686.tar.gz
rm CMTv1r25Linux-i686.tar.gz
mv CMT/ /usr/local/.
ln -sf v1r25/ /usr/local/CMT/current
cd /usr/local/CMT/current/mgr/
./INSTALL 

# Changement de cmake
rm /usr/bin/cmake
ln -sf /usr/bin/cmake28 /usr/bin/cmake

# Installation de UAP
cd /usr/local/
svn checkout svn://svn.code.sf.net/p/accelerator-ml/code/ accelerator-ml-code
cd accelerator-ml-code/uap/trunk/
export UAP_FORTRAN_COMPILER=GFORTRAN
gmake

# Installation de Java (pour Jenkins)
yum install java-1.6.0-openjdk

# Lancement de jenkins
sudo service jenkins start

3.Mise à disposition de cette machine dans la market place

stratus-shutdown-instance 4908

4.Lancement de la machine pré-configurée PSPA

Creation d'un disque pour les données:

 stratus-create-volume --size=6 --tag="Serveur PSPA"
  DISK 088dd96c-d97a-4f39-9788-ee00572114dc

L'ID de la machine PSAP est "Fdku_AK8qDH73Y93vpn0jpZOzYf" (trouvée via https://marketplace.stratuslab.eu)

Lancer la machine avec ce disque persistant :

 stratus-run-instance  --type=c1.xlarge --persistent-disk=088dd96c-d97a-4f39-9788-ee00572114dc KgZJLfwFgRi0zHCi2DL5QJUqNSY

 :::::::::::::::::::::::::
 :: Starting machine(s) ::
 :::::::::::::::::::::::::
 :: Starting 1 machine
 :: Machine 1 (vm ID: 1486)
        Public ip: 134.158.75.148
 :: Done!

Vérifier :

stratus-describe-instance                                                           
id   state     vcpu memory    cpu% host/ip                  name
1942 Running   4    2124480   3    vm-169.lal.stratuslab.eu one-1942

5.Configurer le serveur de jobs Jenkins

Copier l'ancienne config de Jenkins :

  • sur l'ancienne config
     tar -czvf jobs.tgz jobs
     scp jobs.tgz root@134.158.75.148:jobs.tgz
    
  • Puis sur la machine virtuelle :
     cd "jenkins_home"/jobs
     cd /var/lib/jenkins
    

Killer le serveur jenkins existant :

 ps -ax | grep jenk
 kill …..

Le relancer :

 service jenkins restart

Vérifier que tout est bon : http://134.158.75.148:8080

5.Vérifier serveur de jobs Jenkins et lancer la construction de PSPA

Sur le serveur Jenkins http://134.158.75.148:8080, vérifier et ci-besoin lancer les tous les jobs à la main

Lancement des pages Web (apache)

service httpd start

Les pages web se trouvent ici sur le serveur (stratus lab): /var/www/html/

Relancer la machine virtuelle

Si vous n'avez pas stratus-lab, l'installer stratusLab Refaire les 2 exports :

export PATH=$PATH:<install location>/bin
export PYTHONPATH=$PYTHONPATH:<install location>/lib/stratuslab/python
Dans mon cas :
export PATH=$PATH:/Users/garnier/Work/stratuslab-cli-user-pkg-2/bin;
export PYTHONPATH=$PYTHONPATH:/Users/garnier/Work/stratuslab-cli-user-pkg-2/lib/stratuslab/python 

Tuer l'ancienne machine :

stratus-describe-instance  
id   state     vcpu memory    cpu% host/ip                  name
1940 Failed    1    0         0    vm-166.lal.stratuslab.eu one-1940
1942 Unknown   4    2124480   3    vm-169.lal.stratuslab.eu one-1942
2118 Running   4    2124800   18   vm-148.lal.stratuslab.eu one-2118

stratus-kill-instance 2118

La relancer (l'adresse pspa.lal.in2p3.fr est mappée sur 134.158.75.148)

 stratus-run-instance --type=c1.xlarge \
                                 --persistent-disk=088dd96c-d97a-4f39-9788-ee00572114dc KgZJLfwFgRi0zHCi2DL5QJUqNSY \
                                 --address 134.158.75.148

Se logger sur la machine, puis lancement des pages Web (apache)

ssh root@....
service httpd start

Relancer Jenkins

Après être logé et Jenkins relancé :

[root@onevm-108 ~]# service jenkins restart
Shutting down Jenkins                                      [  OK  ]
Starting Jenkins                                           [  OK  ]

Accédez à la page web de configuration de la sécurité de Jenkins : http://onevm-196.lal.in2p3.fr:8080/configureSecurity/

  • Cocher dans un premier temps :
  • "Activer la sécurité",
  • "Tout le monde a accès à toutes les fonctionnalités",
  • "Base de données des utilisateurs de Jenkins",
  • "Se protéger contre les exploits de type Cross Site Request Forgery",
  • "Default Crumb Issuer",
  • "Activer la compatibilité proxy"
  • Ajouter des plugins :
    • Post build task
    • Mercurial plugin

Création du job Projet PSPA-Software =

Compilation des softwares

Le script lancé se trouve ici PSPA/Softwares/build-PSPA-Softwares.sh

Les fichiers de configuration pour ce job se trouvent ici PSPA/Softwares/config-PSPA-Softwares.xml

Pour remettre en place ce job :

  • Créer un job du même nom sur Jenkins
  • Se logger sur la machine du cloud
  • Déposer ce fichier à cet emplacement /var/lib/jenkins/jobs/PSPA-Softwares/.

Création du job Projet PSPA_Develop =

Compilation et lancement du serveur web sur la branch "develop"

Le script lancé se trouve ici PSPA/PSPA/build-PSPA.sh

Les fichiers de configuration pour ce job se trouvent ici PSPA/PSPA/config-PSPA_Develop.xml

Pour remettre en place ce job :

  • Créer un job du même nom sur Jenkins
  • Se logger sur la machine du cloud
  • Déposer ce fichier à cet emplacement /var/lib/jenkins/jobs/PSPA_Develop/.

Création du job PSPA-Check_Develop =

Test et lancement du serveur Web si il est planté

Le script lancé se trouve ici PSPA/PSPA/check-PSPA_Develop.sh

Les fichiers de configuration pour ce job se trouvent ici PSPA/PSPA/config-PSPA-Check_Develop.xml

Pour remettre en place ce job :

  • Créer un job du même nom sur Jenkins
  • Se logger sur la machine du cloud
  • Déposer ce fichier à cet emplacement /var/lib/jenkins/jobs/PSPA_Develop/.
Note: See TracWiki for help on using the wiki.