10 | | Dans le cas 1. il va falloir : |
11 | | |
12 | | * Installer stratus-lab ci besoin (étape 1 ci dessous) |
13 | | * Créer une nouvelle machine et y installer les packages nécessaires (étape 2 ci dessous) |
14 | | * Sauver cette machine sur le marketplace de stratus-lab en vue d'avoir une machine pré-configurée pour PSPA (cas 2 ci-dessus) |
15 | | |
16 | | Dans le cas 2. il va falloir : |
17 | | |
18 | | * Installer stratus-lab ci besoin (étape 1 ci dessous) |
19 | | * Créer et lancer la machine pré-configurée PSPA (voir cas 1) |
20 | | * Configurer le serveur de jobs '''jenkins''' |
21 | | |
22 | | == 1.Installer StratusLab == |
23 | | Tout est écrit [http://stratuslab.readthedocs.org/en/latest/admin-tutorial/index.html ici] (''depuis le 8/7/14'') |
24 | | |
25 | | == 2.Créer une machine virtuelle pour héberger le serveur == |
26 | | Creation d'une image disque "PSPA" à partir d'une machine existante : |
27 | | |
28 | | {{{ |
29 | | stratus-create-image --author-email=garnier@lal.in2p3.fr \ |
30 | | --author="Garnier Laurent" \ |
31 | | --comment="CentOS V6.5 / PSPA Wep App." \ |
32 | | --no-shutdown \ |
33 | | --image-version 1.0 \ |
34 | | --title="CentOS V6.5 / PSPA Wep App" \ |
35 | | KT8gOU8gve_k3UFL7p5Els57My2 |
36 | | |
37 | | |
38 | | ::::::::::::::::::::::::::::: |
39 | | :: Starting image creation :: |
40 | | ::::::::::::::::::::::::::::: |
41 | | :: Checking that base image exists |
42 | | :: Retrieving image manifest |
43 | | :: Starting base image |
44 | | [WARNING] Image availability check is disabled. |
45 | | |
46 | | ::::::::::::::::::::::::: |
47 | | :: Starting machine(s) :: |
48 | | ::::::::::::::::::::::::: |
49 | | :: Starting 1 machine |
50 | | :: Machine 1 (vm ID: 4908) |
51 | | Public ip: 134.158.75.200 |
52 | | :: Done! |
53 | | :: Waiting for machine to boot |
54 | | ............................ |
55 | | :: Waiting for machine network to start |
56 | | .... |
57 | | :: Check if we can connect to the machine |
58 | | :: Executing user prerecipe |
59 | | :: Installing user packages |
60 | | :: Executing user recipe |
61 | | :: Executing user scripts |
62 | | |
63 | | :::::::::::::::::::::::::::::::::::::::: |
64 | | :: Finished building image increment. :: |
65 | | :::::::::::::::::::::::::::::::::::::::: |
66 | | |
67 | | ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
68 | | :: Please check garnier@lal.in2p3.fr for new image ID and instruction. :: |
69 | | ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: |
70 | | :: Machine ready for use |
71 | | |
72 | | Machine IP: 134.158.75.200 Remember to stop the machine when finished |
73 | | }}} |
74 | | Installation des paquets essentiels à PSPA |
75 | | |
76 | | {{{ |
77 | | ssh -Y root@134.158.75.200 |
78 | | yum update yum |
79 | | yum update -y |
80 | | |
81 | | # Jenkins (from https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions) |
82 | | sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo |
83 | | sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key |
84 | | yum install jenkins -y |
85 | | |
86 | | # Compiler and others |
87 | | yum install hg gcc-c++ boost-devel wt-devel make gcc-gfortran gdb subversion cmake \ |
88 | | xerces-c-devel Coin2 expat-devel doxygen pango-devel GraphicsMagick-devel openssl-devel fcgi-devel httpd \ |
89 | | qt qt-devel \ |
90 | | openmotif-devel libX11-devel xorg-x11-server-Xvfb xorg-x11-xauth libXxf86dga xorg-x11-server-Xorg xorg-x11-xinit xterm \ |
91 | | zlib hg daemonize |
92 | | |
93 | | # Wt (from ) |
94 | | rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm |
95 | | rpm --import https://fedoraproject.org/static/0608B895.txt |
96 | | rpm --import http://packages.atrpms.net/RPM-GPG-KEY.atrpms |
97 | | yum update; yum upgrade -y |
98 | | # |
99 | | # Wt and Dependencies (source: http://redmine.webtoolkit.eu/boards/1/topics/6178) |
100 | | yum install wt wt-devel wt-dbo wt-dbo-postgres wt-examples \ |
101 | | GraphicsMagick GraphicsMagick-devel \ |
102 | | jasper-libs fcgi lcms-libs libICE libSM libwmf-lite urw-fonts |
103 | | |
104 | | # Haru : |
105 | | curl https://codeload.github.com/libharu/libharu/legacy.tar.gz/master -olibhpdf.tar.gz |
106 | | tar -xzf libhpdf.tar.gz |
107 | | mkdir libharu-libharu-build |
108 | | cd libharu-libharu-build/ |
109 | | cmake ../libharu-libharu-ec89be4/ |
110 | | make -j |
111 | | sudo make install |
112 | | |
113 | | # CMT |
114 | | curl http://www.cmtsite.net/v1r25/CMTv1r25Linux-i686.tar.gz -o CMTv1r25Linux-i686.tar.gz |
115 | | tar -xvf CMTv1r25Linux-i686.tar.gz |
116 | | rm CMTv1r25Linux-i686.tar.gz |
117 | | mv CMT/ /usr/local/. |
118 | | ln -sf v1r25/ /usr/local/CMT/current |
119 | | cd /usr/local/CMT/current/mgr/ |
120 | | ./INSTALL |
121 | | |
122 | | # Changement de cmake |
123 | | rm /usr/bin/cmake |
124 | | ln -sf /usr/bin/cmake28 /usr/bin/cmake |
125 | | |
126 | | # Installation de UAP |
127 | | cd /usr/local/ |
128 | | svn checkout svn://svn.code.sf.net/p/accelerator-ml/code/ accelerator-ml-code |
129 | | cd accelerator-ml-code/uap/trunk/ |
130 | | export UAP_FORTRAN_COMPILER=GFORTRAN |
131 | | gmake |
132 | | |
133 | | # Installation de Java (pour Jenkins) |
134 | | yum install java-1.6.0-openjdk |
135 | | |
136 | | # Lancement de jenkins |
137 | | sudo service jenkins start |
138 | | }}} |
139 | | == 3.Mise à disposition de cette machine dans la market place == |
140 | | {{{ |
141 | | stratus-shutdown-instance 4908 |
142 | | }}} |
143 | | * Attendre le mail |
144 | | * Récupérer le manifest attaché au mail |
145 | | * Changer la date (<dcterms:valid>....</dcterms:valid>) |
146 | | * stratus-sign-metadata |
147 | | * uploder le manifest sur le market place : https://marketplace.stratuslab.eu/marketplace/upload |
148 | | |
149 | | == 4.Lancement de la machine pré-configurée PSPA == |
150 | | Creation d'un disque pour les données: |
151 | | |
152 | | {{{ |
153 | | #!sh |
154 | | stratus-create-volume --size=6 --tag="Serveur PSPA" |
155 | | DISK 088dd96c-d97a-4f39-9788-ee00572114dc |
156 | | }}} |
157 | | L'ID de la machine PSAP est "Fdku_AK8qDH73Y93vpn0jpZOzYf" (trouvée via https://marketplace.stratuslab.eu) |
158 | | |
159 | | Lancer la machine avec ce disque persistant : |
160 | | |
161 | | {{{ |
162 | | #!sh |
163 | | stratus-run-instance --type=c1.xlarge --persistent-disk=088dd96c-d97a-4f39-9788-ee00572114dc KgZJLfwFgRi0zHCi2DL5QJUqNSY |
164 | | |
165 | | ::::::::::::::::::::::::: |
166 | | :: Starting machine(s) :: |
167 | | ::::::::::::::::::::::::: |
168 | | :: Starting 1 machine |
169 | | :: Machine 1 (vm ID: 1486) |
170 | | Public ip: 134.158.75.148 |
171 | | :: Done! |
172 | | }}} |
173 | | Vérifier : |
174 | | |
175 | | {{{ |
176 | | stratus-describe-instance |
177 | | id state vcpu memory cpu% host/ip name |
178 | | 1942 Running 4 2124480 3 vm-169.lal.stratuslab.eu one-1942 |
179 | | }}} |
180 | | == 5.Configurer le serveur de jobs Jenkins == |
181 | | Copier l'ancienne config de Jenkins : |
182 | | |
183 | | * sur l'ancienne config |
184 | | {{{ |
185 | | #!sh |
186 | | tar -czvf jobs.tgz jobs |
187 | | scp jobs.tgz root@134.158.75.148:jobs.tgz |
188 | | }}} |
189 | | |
190 | | * Puis sur la machine virtuelle : |
191 | | {{{ |
192 | | #!sh |
193 | | cd "jenkins_home"/jobs |
194 | | cd /var/lib/jenkins |
195 | | }}} |
196 | | |
197 | | Killer le serveur jenkins existant : |
198 | | |
199 | | {{{ |
200 | | #!sh |
201 | | ps -ax | grep jenk |
202 | | kill ….. |
203 | | }}} |
204 | | Le relancer : |
205 | | |
206 | | {{{ |
207 | | #!sh |
208 | | service jenkins restart |
209 | | }}} |
210 | | Vérifier que tout est bon : http://134.158.75.148:8080 |
211 | | |
212 | | == 5.Vérifier serveur de jobs Jenkins et lancer la construction de PSPA == |
213 | | Sur le serveur Jenkins http://134.158.75.148:8080, vérifier et ci-besoin lancer les tous les jobs à la main |
214 | | |
215 | | Lancement des pages Web (apache) |
216 | | |
217 | | {{{ |
218 | | service httpd start |
219 | | }}} |
220 | | Les pages web se trouvent ici sur le serveur (stratus lab): /var/www/html/ |
221 | | |
222 | | == Relancer la machine virtuelle == |
223 | | Si vous n'avez pas stratus-lab, l'installer [http://stratuslab.eu/try/2012/01/10/try-user-cli-installation.html stratusLab] Refaire les 2 exports : |
224 | | |
225 | | {{{ |
226 | | export PATH=$PATH:<install location>/bin |
227 | | export PYTHONPATH=$PYTHONPATH:<install location>/lib/stratuslab/python |
228 | | Dans mon cas : |
229 | | export PATH=$PATH:/Users/garnier/Work/stratuslab-cli-user-pkg-2/bin; |
230 | | export PYTHONPATH=$PYTHONPATH:/Users/garnier/Work/stratuslab-cli-user-pkg-2/lib/stratuslab/python |
231 | | |
232 | | }}} |
233 | | Tuer l'ancienne machine : |
234 | | |
235 | | {{{ |
236 | | #!sh |
237 | | stratus-describe-instance |
238 | | id state vcpu memory cpu% host/ip name |
239 | | 1940 Failed 1 0 0 vm-166.lal.stratuslab.eu one-1940 |
240 | | 1942 Unknown 4 2124480 3 vm-169.lal.stratuslab.eu one-1942 |
241 | | 2118 Running 4 2124800 18 vm-148.lal.stratuslab.eu one-2118 |
242 | | |
243 | | stratus-kill-instance 2118 |
244 | | }}} |
245 | | La relancer (l'adresse pspa.lal.in2p3.fr est mappée sur 134.158.75.148) |
246 | | |
247 | | {{{ |
248 | | #!sh |
249 | | stratus-run-instance --type=c1.xlarge \ |
250 | | --persistent-disk=088dd96c-d97a-4f39-9788-ee00572114dc KgZJLfwFgRi0zHCi2DL5QJUqNSY \ |
251 | | --address 134.158.75.148 |
252 | | }}} |
253 | | Se logger sur la machine, puis lancement des pages Web (apache) |
254 | | |
255 | | {{{ |
256 | | ssh root@.... |
257 | | service httpd start |
258 | | }}} |
259 | | == Relancer Jenkins == |
260 | | Après être logé et Jenkins relancé : |
261 | | |
262 | | {{{ |
263 | | [root@onevm-108 ~]# service jenkins restart |
264 | | Shutting down Jenkins [ OK ] |
265 | | Starting Jenkins [ OK ] |
266 | | }}} |
267 | | Accédez à la page web de configuration de la sécurité de Jenkins : http://onevm-196.lal.in2p3.fr:8080/configureSecurity/ |
268 | | |
269 | | * Cocher dans un premier temps : |
270 | | |
271 | | * "Activer la sécurité", |
272 | | * "Tout le monde a accès à toutes les fonctionnalités", |
273 | | * "Base de données des utilisateurs de Jenkins", |
274 | | * "Se protéger contre les exploits de type Cross Site Request Forgery", |
275 | | * "Default Crumb Issuer", |
276 | | * "Activer la compatibilité proxy" |
277 | | |
278 | | * Ajouter un nouvel utilisateur (vous) |
279 | | * Re http://onevm-200.lal.in2p3.fr:8080/configureSecurity/, et cocher : "Les utilisateurs connectés peuvent tout faire" |
280 | | |
281 | | * Ajouter des plugins : |
282 | | * Post build task |
283 | | * Mercurial plugin |
284 | | |
285 | | == Création du job Projet PSPA-Software = == |
286 | | '''Compilation des softwares''' [[BR]] |
287 | | |
288 | | Le script lancé se trouve ici PSPA/Softwares/build-PSPA-Softwares.sh [[BR]] |
289 | | |
290 | | Les fichiers de configuration pour ce job se trouvent ici PSPA/Softwares/config-PSPA-Softwares.xml [[BR]] |
291 | | |
292 | | Pour remettre en place ce job : |
293 | | |
294 | | * Créer un job du même nom sur Jenkins |
295 | | * Se logger sur la machine du cloud |
296 | | * Déposer ce fichier à cet emplacement /var/lib/jenkins/jobs/PSPA-Softwares/. |
297 | | |
298 | | == Création du job Projet PSPA_Develop = == |
299 | | '''Compilation et lancement du serveur web sur la branch "develop"''' [[BR]] |
300 | | |
301 | | Le script lancé se trouve ici PSPA/PSPA/build-PSPA.sh [[BR]] |
302 | | |
303 | | Les fichiers de configuration pour ce job se trouvent ici PSPA/PSPA/config-PSPA_Develop.xml [[BR]] |
304 | | |
305 | | Pour remettre en place ce job : |
306 | | |
307 | | * Créer un job du même nom sur Jenkins |
308 | | * Se logger sur la machine du cloud |
309 | | * Déposer ce fichier à cet emplacement /var/lib/jenkins/jobs/PSPA_Develop/. |
310 | | |
311 | | == Création du job PSPA-Check_Develop = == |
312 | | '''Test et lancement du serveur Web si il est planté''' [[BR]] |
313 | | |
314 | | Le script lancé se trouve ici PSPA/PSPA/check-PSPA_Develop.sh [[BR]] |
315 | | |
316 | | Les fichiers de configuration pour ce job se trouvent ici PSPA/PSPA/config-PSPA-Check_Develop.xml [[BR]] |
317 | | |
318 | | Pour remettre en place ce job : |
319 | | |
320 | | * Créer un job du même nom sur Jenkins |
321 | | * Se logger sur la machine du cloud |
322 | | * Déposer ce fichier à cet emplacement /var/lib/jenkins/jobs/PSPA_Develop/. |