ESUPSGC

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Bloc de code
languagebash
themeRDark
apt install openjdk-21-jdk-headless maven

Et enfin le paquet tomcat10, avec l'utilitaire tomcat10-instance-create permettant de facilitier la mise en place de plusieurs instances sur le même serveur : 

Bloc de code
languagebash
themeRDark
apt install tomcat10 tomcat10-user

Installation des instances Tomcat

Création de l'utilisateur esup:

Bloc de code
languagebash
themeRDark
groupadd esup
useradd -g esup -m esup

Installer les On propose d'installer les 2 applications esup-sgc et esup-nfc-tag sur deux instances de Tomcat. L'une sera utilisée pour ESUP-SGC, l'autre pour ESUP-NFC-TAG.

Plusieurs choix sont possibles : 

...

Dans la suite de cette documentation, on choisit l'option de l'installation s'appuyant sur le système de paquets pour profiter des mises à jour facilitées par votre distribution (apt sous debian) - c'est d'ailleurs cette option qui a été mise en place dans la VM ESUP-SGC de démonstration.

On installe le paquet tomcat10, avec l'utilitaire tomcat10-instance-create issu de tomcat10-user permettant de facilitier la mise en place de plusieurs instances sur le même serveur : 

Bloc de code
languagebash
themeRDark
tomcat10-instance-create -p 8380 -c 8305 /opt/tomcat-esup-sgc
tomcat10-instance-create -p 8280 -c 8205 /opt/tomcat-esup-nfc-tag

On modifie ensuite les fichiers server.xml pour activer l'AJP, tomcat10-instance-create ne permettant pas cette option directement.

...

apt install tomcat10 tomcat10-user

Dans l'optique d'installer les 2 tomcat pour esup-sgc et esup-nfc-tag de la même manière, on stoppe et désactive le tomcat proposé par défaut via le paquet tomcat10.

Bloc de code
languagebash
themeRDark
systemctl stop tomcat10.service
systemctl disable tomcat10.service

En tant qu'utilisateur esup précédemment créé, on créé les 2 instances des tomcat ainsi :

Bloc de code
languagebash
themeRDark
tomcat10-instance-create -p 8280 -c 8205 /opt/tomcat-esup-sgc
tomcat10-instance-create -p 8380 -c 8305 /opt/tomcat-esup-nfc-tag

On modifie ensuite les fichiers server.xml pour activer l'AJP, tomcat10-instance-create ne permettant pas cette option directement.

Pour l'instance d'Esup-SGC, éditer /opt/tomcat-esup-sgc/conf/server.xml /conf/server.xml afin de configurer le port 8205 et un connecteur AJP sur le port 8209.

...

Bloc de code
languagexml
themeRDark
<Server port="8205" shutdown="SHUTDOWN">
<!-- (...) -->
<Connector port="8209" protocol="AJP/1.3" address="127.0.0.1" redirectPort="8443" asyncTimeout="1200000" tomcatAuthentication="false" scheme="https" secure="true" URIEncoding="UTF-8" secretRequired="false"/>

...

Bloc de code
languagexml
themeRDark
<Server port="8305" shutdown="SHUTDOWN">
<!-- (...) -->
<Connector port="8309" protocol="AJP/1.3" address="127.0.0.1" redirectPort="8443" asyncTimeout="1200000" tomcatAuthentication="false" scheme="https" secure="true" URIEncoding="UTF-8" secretRequired="false"/>

...

Ces deux instances seront démarrées via Systemd. On peut donc créer et activer ces deux services:L'installation via les paquets debian nous propose par défaut une configuration sécurisée où l'instance de tomcat est lancé par un utilisateur banalisé tomcat à qui on octroie des droits de lecture/écriture sur certains répertoires. Les librairies tomcat sont partagées et issues du sytème (et donc mis à jour au travers d'un apt update/upgrade) alors que les configurations, logs, fichiers temporaires et répertoire des applications web (webapps) sont propres à chaque instance.
Aussi le fichier systemd  à mettre en place pour chacune des 2 instances n'est pas triviale, mais il suffit de partir de celui proposé pour l'instance du tomcat par défaut (que l'on a par ailleurs désactivé plus haut) pour les obtenir :

Bloc de code
languagebash
themeRDark
cp /usr/lib/systemd/system/tomcat10.service /etc/systemd/system/tomcat-esup-sgc.service
cp /usr/lib/systemd/system/tomcat10.service /etc/systemd/system/tomcat-esup-nfc-tag.service

Pour Esup-SGC (TODO : à revoir) :

Bloc de code
languagebash
themeRDark
cat > /etc/systemd/system/tomcat-esup-sgc.service <<EOF
#
# Systemd unit file for Apache Tomcat
#

[Unit]
Description=Apache Tomcat ESUP-SGC Server
Documentation=https://tomcat.apache.org/tomcat-10.0-doc/index.html
After=network.target
RequiresMountsFor=/var/log/tomcat10 /var/lib/tomcat10 /opt/tomcat-esup-sgc

[Service]

# Configuration
Environment="CATALINA_HOME=/usr/share/tomcat10"
Environment="CATALINA_BASE=/opt/tomcat-esup-sgc"
Environment="CATALINA_TMPDIR=/opt/tomcat-esup-sgc/temp"
Environment="JAVA_OPTS=-Djava.awt.headless=true"

# Lifecycle
Type=simple
ExecStart=/bin/sh /usr/libexec/tomcat10/tomcat-start.sh
SuccessExitStatus=143
Restart=on-abort

# Logging
SyslogIdentifier=tomcat-esup-sgc

# Security
User=tomcat
Group=tomcat
PrivateTmp=yes
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
CacheDirectory=tomcat-esup-sgc
CacheDirectoryMode=750
ProtectSystem=strict
ReadWritePaths=/opt/tomcat-esup-sgc/conf/
ReadWritePaths=/opt/tomcat-esup-sgc/work/
ReadWritePaths=/opt/tomcat-esup-sgc/webapps/
ReadWritePaths=/opt/tomcat-esup-sgc/logs/

[Install]
WantedBy=multi-user.target


Ne pas oublier de donner les droits à tomcat sur /opt/tomcat-esup-sgc et d'activer le service.

Bloc de code
languageshell
chown -R tomcat:tomcat /opt/tomcat-esup-sgc/
systemctl enable tomcat-esup-sgc.service


Même procédure pour Esup-NFC-TAGPour Esup-SGC (TODO : à revoir) :

Bloc de code
languagebash
themeRDark
cat > /etc/systemd/system/tomcat-esup-sgcnfc-tag.service <<EOF
#
# Systemd unit file for tomcatApache Tomcat
#

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target Esu Nfc Tag Server
Documentation=https://tomcat.apache.org/tomcat-10.0-doc/index.html
After=network.target
RequiresMountsFor=/var/log/tomcat10 /var/lib/tomcat10 /opt/tomcat-esup-nfc-tag

[Service]

Type=forking
EnvironmentFile=/opt/esup-env# Configuration
Environment="CATALINA_HOME=/usr/share/tomcat10"
Environment="CATALINA_PIDBASE=/opt/tomcat-esup-sgc/temp/tomcat.pid-nfc-tag"
Environment="CATALINA_HOMETMPDIR=/opt/tomcat-esup-sgc
ExecStart=/opt/tomcat-esup-sgc/bin/startup.sh
ExecStopnfc-tag/temp"
Environment="JAVA_OPTS=-Djava.awt.headless=true"

# Lifecycle
Type=simple
ExecStart=/bin/kill -15 $MAINPID
User=esup
Group=esup
[Install]
WantedBy=multi-user.target
EOF
 
systemctl enable tomcat-esup-sgc.service

...

Bloc de code
languagebash
themeRDark
cat > /etc/systemd/system/sh /usr/libexec/tomcat10/tomcat-start.sh
SuccessExitStatus=143
Restart=on-abort

# Logging
SyslogIdentifier=tomcat-esup-nfc-tag.service <<EOF

# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/opt/esup-env
Environment=CATALINA_PIDSecurity
User=tomcat
Group=tomcat
PrivateTmp=yes
AmbientCapabilities=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
CacheDirectory=tomcat-esup-nfc-tag
CacheDirectoryMode=750
ProtectSystem=strict
ReadWritePaths=/opt/tomcat-esup-nfc-tag/conf/
ReadWritePaths=/opt/tomcat-esup-nfc-tag/work/
ReadWritePaths=/opt/tomcat-esup-nfc-tag/webapps/
ReadWritePaths=/opt/tomcat-esup-nfc-tag/temp/tomcat.pid
Environment=CATALINA_HOME=logs/

[Install]
WantedBy=multi-user.target

Ne pas oublier de donner les droits à tomcat sur /opt/tomcat-esup-sgc et d'activer le service.

Bloc de code
languageshell
chown -R tomcat:tomcat -nfc-tag
ExecStart=/opt/tomcat-esup-nfc-tag/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=esup
Group=esup
[Install]
WantedBy=multi-user.target
EOF
 
systemctl enable tomcat-esup-nfc-tag.service

...

Bloc de code
languagebash
themeRDark
a2enmod rewrite
a2enmod ssl
a2enmod proxy_ajp
a2enmod proxy_http
a2enmod shib
a2enmod headers

...

Pour avoir un système de gestion de cartes fonctionnel, l'installation minimale consiste à installer :

...

consiste à installer :

  • un serveur tomcat avec l'application web esup-nfc-tag-server sgc Installation ESUP-NFC-TAG-SERVER

...

...

Pour enrôler et éventuellement encoder vos cartes vous avez également besoin d'un client esup-sgc-client : voir la documentation [archivé]

Installation materielle

...

  • -SERVER
  • un serveur tomcat avec l'application web esup

...

L'ordre d'installation n'a pas d'importance. Toutefois, les deux applications étant dépendentes, la documentation d'installation d'ESUP-SGC comporte des configurations d'ESUP-NFC-TAG-SERVER

Pour enrôler et éventuellement encoder vos cartes vous avez également besoin d'un client esup-sgc-client : voir

Image RemovedImage Removed

Pour automatiser l'encodage des cartes il est possible d'utiliser une imprimante Zebra ZXP3. voir : Tuto robot encodeur basé sur une Zebra ZXP3

Pour plus d'informations sur les différentes possibilités d'édition, voir la page ESUP-SGC-Client et édition des cartes

...