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.

...

  • Linux : nous recommandons l'usage d'un debian/trixie (debian 13)
  • Java : nous recommandons l'usage d'openjdk 

    • pour la partie serveur les versions 17 à 25 (généralement présentes dans les distributions) conviennent, 

    • pour la partie cliente vous pouvez utiliser openjdk et openjfx en version 17 ou supérieur également.

  • Maven (dernière version 3.x) : le mieux est de l'installer via le système de paquets de votre linux

  • Postgresql : le mieux est de l'installer via le système de paquets de votre linux.

  • Tomcat 10 ou jetty 10 12 : à installer via le système de paquets également

  • Apache + libapache2-mod-shib2 (par paquets)

  • Git

...

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

Le paquet tomcat10 a ajouté au passage un utilisateur tomcat qui lancera nos instances de manière sécurisée avec des provilèges limitées.

Pour que les commandes bash lancées par esup-sgc fonctionne (commande chromium notamment) il faut que l'utilisateur tomcat est son home directory d'opérationnel : créez le et affectez le à l'utilisateur tomcaet si nécessaire.En tant qu'utilisateur esup précédemment créé, on créé les 2 instances des tomcat ainsi :

Bloc de code
languagebash
themeRDark
shell
echo ~tomcat
-> /var/lib/tomcat

mkdir /var/lib/tomcat
chown tomcat /var/lib/tomcat

On créé ensuite les 2 instances des tomcat ainsi :

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

...

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/
ReadWritePaths=/opt/tomcat-esup-sgc/temp/

[Install]
WantedBy=multi-user.target

...

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

[Unit]
Description=Apache Tomcat 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]

# Configuration
Environment="CATALINA_HOME=/usr/share/tomcat10"
Environment="CATALINA_BASE=/opt/tomcat-esup-nfc-tag"
Environment="CATALINA_TMPDIR=/opt/tomcat-esup-nfc-tag/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-nfc-tag

# Security
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/logs/

[Install]
WantedBy=multi-userReadWritePaths=/opt/tomcat-esup-nfc-tag/temp/

[Install]
WantedBy=multi-user.target

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

...

Il reste donc à les intégrer à l'IDP, soit directement, soit en passant par la fédération d'identité.

Logs

Suivant votre installation et paramétrage, vous retrouvez les logs dans /opt/tomcat-esup-sgc/logs/ et /opt/tomcat-esup-nfc-tag/logs/

En installant les tomcat comme décrits ici, et les lançant avec systemd, vous pourrez également consulter ces logs via journalct : 

Bloc de code
languageshell
journalctl -xeu tomcat-esup-sgc.service --follow

Rotation des logs

Il est possible de mettre en place une rotation journalière des logs. La plupart des distributions fournissent logrotate. Il est donc possible de créer un fichier de config /etc/logrotate.d/esup-sgc avec, par exemple, le contenu suivant:

Bloc de code
themeRDark
/opt/tomcat-esup-sgc/logs/*log
/opt/tomcat-esup-sgc/logs/catalina.out {
        copytruncate
        daily
        missingok
        rotate 30
        compress
        delaycompress
}
/opt/tomcat-esup-nfc-tag/logs/*log
/opt/tomcat-esup-nfc-tag/logs/catalina.out {
        copytruncate
        daily
        missingok
        rotate 30
        compress
        delaycompress
}

...