-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathINSTALL.fr
347 lines (245 loc) · 13.3 KB
/
INSTALL.fr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
Construction et installation
============================
Construction
------------
IoTa utilise Apache Maven pour l’automatisation de la production
(http://maven.apache.org).
Un scrit utilitaire pour la construction est fourni : make-all.sh.
La compilation de chaque module est réalisé à l’aide de cette commande :
mvn compile
Maven téléchargera tous les fichiers jar nécessaires et les installera dans un
dépôt local (habituellement ~/.m2/repository).
L’installation des bibliothèques IoTa dans le dépôt local pour une utilisation
future (comme cela est nécessaire pour plusieurs modules IoTa) est réalisée
par la commande suivante :
mvn install
Notez que cette commande compile aussi le module si nécessaire.
Certains modules sont fournis avec des tests unitaires et certains de ces
tests nécessitent que des applications soient fonctionnelles (p.ex. les tests
de la bibliothèque IoTa-DiscoveryWS-Client veulent accéder à un serveur
IoTa-DiscoveryWS). Pour sauter ces tests, utilisez cette commande pour la
compilation ou l’installation :
mvn -DskipTests install
Vous pouvez installer manuellement des fichiers jar préalablement téléchargés
avec une commande de ce type :
mvn install:install-file \
-Dfile=sunxacml-2.0-SNAPSHOT.jar \
-DgroupId=net.sf.sunxacml \
-DartifactId=sunxacml \
-Dversion=2.0-SNAPSHOT \
-Dpackaging=jar
Notez que cela sera nécessaire pour la bibliothèque sunxacml puisque celle-ci
ne se trouve sur aucun dépôt Maven connu. Le fichier jar peut être téléchargé
depuis la page SourceForge du projet : http://sunxacml.sf.net.
Voici un lien direct : http://sourceforge.net/projects/sunxacml/files/maven/snapshots/net/sf/sunxacml/sunxacml/2.0-SNAPSHOT/sunxacml-2.0-SNAPSHOT.jar/download
Installation
------------
(Toutes les valeurs entre chevrons `<nom>` sont à substituer.)
**Le programme IoTa-Installer peut vous aider à installer et configurer tous
les serveurs et bases de données.**
Toutes les applications et applications webs ont un fichier `log4j.properties`
pour configurer les journaux (fichier, format, niveau de log, etc.).
### Applications
Récupérez et extrayez le tarball de l’application
`<application>-<version>-bin-with-dependency.tar.gz`.
Modifiez ou créez les fichiers de configuration (voir le fichier `LISEZMOI` de
l’application pour une liste de ces fichiers et chaque fichier pour des
commentaires).
Un fichier dans le répertoire courant remplace la version par défaut qui est
intégrée au fichier jar.
Vous pouvez extraire la version par défaut commentée de ces fichiers depuis le
fichier jar :
jar xf <application>-<version>.jar application.properties
ou
unzip <application>-<version>.jar application.properties
Utilisez le script fourni pour lancer l’application.
### Conteneur de servlets et SSL/TLS
Un conteneur de servlets doit être installé.
Pour le moment, le IoTa-Installer ne sait gérer qu’Apache Tomcat (versions 6
ou 7). Le IoTa-Installer peut vous aider à en installer un et à le configurer.
Pour utiliser SSL/TLS comme moyen d’authentification mutuelle entre les
applications web de IoTa et leurs clients, un `connector` SSL/TLS doit être
configuré.
Pour Apache Tomcat 7, si vous n’utilisez pas le IoTa-Installer, vous devez
ajouter un élément `connector` similaire à l’exemple suivant dans le fichier
`${CATALINA_HOME}/conf/server.xml` :
<Connector protocol="HTTP/1.1"
port="8443"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
keystoreFile="${catalina.home}/conf/ssl/keystore.jks"
keystorePass="changeit"
keyAlias="si_plus_d’une_clef_dans_le_keystore"
keyPass="changeit"
truststoreFile="${catalina.home}/conf/ssl/truststore.jks"
truststorePass="changeit"
crlFile="${catalina.home}/conf/ssl/revocations_list.pem"
clientAuth="true"
sslProtocol="TLS"/>
Ou, si la bibliothèque Apache Portable Runtime (APR) est installée sur et
utilisée par le système cible :
<Connector protocol="HTTP/1.1"
port="8443"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
SSLCertificateFile="${catalina.home}/conf/ssl/server.crt"
SSLCertificateKeyFile="${catalina.home}/conf/ssl/server.pem"
SSLCACertificatePath="${catalina.home}/conf/ssl/clients/"
SSLCARevocationPath="${catalina.home}/conf/ssl/revocations/"
SSLVerifyClient="require"
SSLProtocol="TLSv1"/>
Ajouter les certificats des clients à la liste des certificats de confiance
(truststore) de Tomcat, avec une commande du type:
keytool -importcert -storetype "jks" -keystore "truststore.jks" -alias "key" -file "client.cert"
Les applications OMeGa, ETa et EpcisPHi, pour gérer les identités en TLS, requièrent d'ajouter
au fichier `$CATALINA_HOME/conf/tomcat-users.xml` des rôles:
* pour ETa: <role rolename="eta_user"/>
* pour OMeGa: <role rolename="omega_user"/>
* pour EpcisPHi: <role rolename="ephi_user"/>
Les noms peuvent être différents selon la configuration des applications dans
`<webapp-dir>/WEB-INF/web.xml`.
Chaque utilisateur souhaitant interroger les services d'ETa, d'OMeGa ou
l'interface web d'EpcisPHi doit être identifié dans
`$CATALINA_HOME/conf/tomcat-users.xml` et un ou plusieurs rôles doivent
lui être attribués.
De même, chaque application utilisant ces services doit être connue.
L'utilisateur (ou application) est reconnu par le Distinguished Name (DN)
du certificat utilisé pour se connecter au service. Les rôles de l'utilisateur
(ETa et/ou OMeGa et/ou EpcisPHi) sont déterminés par l'attribut "roles" et
correspondent aux "rolename" ci-dessus.
Pour que l'utilisateur dont le DN du certificat est "CN=toto" puissent
utiliser les services d'ETA, d'OMeGa et d'EpcisPHi ajoutez au fichier
`$CATALINA_HOME/conf/tomcat-users.xml`:
<user username="CN=toto" password="" roles="eta_user,omega_user,ephi_user"/>
Pour se connecter à l'interface web d'Epcis-PHi en tant que "superadmin",
qui gère les comptes utilisateurs, il est nécessaire d'utiliser un certificat
(généré via IoTa-Installer ou keytool) dont le DN (par défaut "UID=superadmin")
correspond à celui qui identifie "superadmin" dans l'annuaire LDAP.
Cet utilisateur doit être ajouté au fichier précédent:
<user username="UID=superadmin" password="" roles="ephi_user"/>
### Applications webs
Récupérez le fichier war de l’application web `<application>-<version>.war`.
Déployez-le dans votre conteneur de servlets (voir la documentation du
conteneur pour plus d’information). Pour Apache Tomcat, cela peut être fait de
plusieurs manières :
1. déjarez manuellement le fichier war dans `$CATALINA_HOME/webapps`
2. copiez le fichier war dans `$CATALINA_HOME/webapps` et laissez Tomcat le
déployer (soit à son propchain redémarrage, soit à chaud si son option
autodeploy est active)
3. utilisez l’application web de gestion (http://localhost:8080/manager)
4. utilisez les outils de déploiement deploy-tools
5. utilisez le greffon Tomcat de Maven
Éditez les fichiers de configuration dans `<webapp-dir>/WEB-INF/classes/`
(voir le `LISEZMOI` de l’application web pour une liste de ces fichiers et
chaque fichier pour les commentaires).
Rechargez l’application web ou relancez le conteneur de servlet.
### Applications Web avec bases de données
1. La base de données
Créez la base de données pour l’application :
CREATE DATABASE <app_db>;
Créez un utilisateur spécifique et accordez-lui les droits d’accès à la
base :
GRANT SELECT, INSERT, UPDATE, DELETE ON <app_db>.*
TO <app_db_user>@localhost IDENTIFIED BY <app_db_password>;
Créez les tables :
use <app_db>;
source <app>_schema.sql;
Le fichier `<app>_schema.sql` de chaque application se trouve dans
`IoTa-Installer/resources` et dans `<app>/src/main/resources/sql`.
2. Installez l’application web comme expliqué plus haut.
À ce point, l’application web n’arrivera probablement pas à démarrer
correctement.
3. Le fichier context
Modifiez le fichier `$CATALINA_HOME/webapps/<webapp>/META-INF/context.xml`
pour qu’il corresponde aux valeurs pour votre base de données (nom, login
et mot de passe).
Parfois, il est nécessaire d’avoir une copie de ce fichier en
`$CATALINA_HOME/conf/localhost/<webapp>.xml`.
Rechargez l’application web ou relancez le conteneur de servlet.
N’oubliez pas d’installer le fichier jar du connecteur JDBC. (Pour Apache
Tomcat et MySQL, copiez `mysql-connector-java.jar` dans `$CATALINA_HOME/lib`.)
### ONS
Certaines applications on besoin d’un service de nommage d’objet (ONS, Object
Naming Service). Des enregistrements NAPTR sont utilisés pour trouver l’URL du
service de découverte (Discovery Service) pour un code EPC donnée.
Voici un fichier de zone typique pour le produit
`urn:epc:id:sgtin:1234567.89012` :
;;
$TTL 1d
;; la zone, l’Id du fabricant
$ORIGIN 7.6.5.4.3.2.1.sgtin.id.ons-peer.com.
@ IN SOA localhost info.example.com ( ; [email protected]
2012010101 ; numéro de version du fichier
3h ; rafraîchissement
1h ; réessai
1d ; expiration
1 ; TTL cache négatif
)
;; le nom de ce serveur
IN NS ons.example.com.
; NAPTR pour les produits
; produit exemple
; order pref flags service regex
2.1.0.9.8 IN NAPTR 0 0 "u" "epc+html" "!^.*$!http://www.example.com/!" .
IN NAPTR 1 0 "u" "epc+epcis" "!^.*$!http://epcis.example.com/epcis/!" .
IN NAPTR 2 0 "u" "epc+ided_epcis" "!^.*$!http://epcis.example.com/eta/!" .
IN NAPTR 3 0 "u" "epc+ds" "!^.*$!http://ds.example.com/ds/services/ESDS_Service!" .
IN NAPTR 4 0 "u" "epc+ds" "!^.*$!http://ds.example.com/dseta/ds/!" .
IN NAPTR 5 0 "u" "epc+ided_ds" "!^.*$!http://ds.example.com/dseta/ided_ds/!" .
; en premier, la page web HTML pour des informations sur le produit
; ensuite, le web service EPCIS-repository associé à cet EPC
; ensuite, le web service EPCIS-repository identifié (ETa) associé à cet EPC
; ensuite, le web service Discovery (Wings) associé à cet EPC
; ensuite, le web service Discovery associé à cet EPC
; finallement, le web service Discovery identifié associé à cet EPC
; l’ordre est libre
Sur les systèmes utilisant une distribution Debian ou dérivée, il suffit
d’installer le paquet `bind9`, de créer un ou plusieurs fichiers de zone sur
le modèle précédent et d’activer ces zones, c’est-à-dire d’ajouter ce genre de
clause dans `named.conf.local` :
zone "7.6.5.4.3.2.1.sgtin.id.ons-peer.com" {
type master;
file "/etc/bind/db.ons.peer.com";
};
Rappelons que pour éviter d’avoir un serveur relais récursif, il faut ajouter
ces options (dans la clause `options` de `named.conf.options`) :
allow-transfer { none; };
allow-recursion { none; };
recursion no;
### LDAP
Certaines applications (YPSilon) ont besoin d’un serveur LDAP.
À partir d’un serveur LDAP fonctionnel, le script `YPSilon/ldap.sh` ou le module
LDAP de l’installateur permet d’ajouter un schéma, un groupe et les deux
utilisateurs superadmin et anonymous.
Sur les distributions Debian et dérivées, il suffit d’installer les paquets
`slapd` et `ldap-utils`. Il est nécessaire de lancer `dpkg-reconfigure slapd`
pour compléter la configuration.
Pour un ajouter un index sur des attributs (comme le DN du certificat
utilisateur utilisé quand ce DN n'est pas compatible avec l'arbre LDAP,
"aliasdn" par défaut), vous pouvez utiliser la commande ldapmodify avec les
propriétés suivantes:
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: aliasdn eq
où olcDatabase={1}hdb correspond à la base utilisée.
### ActiveMQ
Certaines applications (ETa-Callback*) ont besoin d’un courtir JMS ActiveMQ.
Sur les distributions Debian et dérivées, il suffit d’installer le paquet
`activemq`.
### Problèmes de mémoire
Du fait d’un usage intensif de l’introspection (p.ex. par Hibernate et CXF),
et si vous voulez installer toutes les applications web sur le même serveur,
la mémoire « PermGen » de la JVM doit être augmentée. Pour Apache Tomcat, cela
peut être fait via la variable d’environnement JAVA_OPTS. Dans les shells
POSIX, il suffit d’une ligne de commande similaire à celle-ci:
export JAVA_OPTS='-Xms2048m -Xmx4096m -XX:MaxPermSize=512m'
Cette variable d’environnement doit être positionnée avant le lancement de
Apache Tomcat, donc avant le lancement de l’installateur IoTa (celui-ci
lançant Apache Tomcat)
Ceci n’est nécessaire que si vous installez toutes (ou presque toutes) les
applications web dans un même conteneur de servlet.