- Accès à un serveur Linux où installer Karuta
- paquet git et java 11 installé temurin-11-jdk par exemple
- Compte (login + mdp) et accès BDD configurés à partir du serveur Karuta (mariadb ou mysql antérieur à la version 8 car problématique)
create database karuta;
grant all privileges on karuta.* to 'karutaTest'@'127.0.0.1' identified by 'XXXXXX';
# par exemple- vérifier l'accès depuis le serveur Karuta
mysql -h 127.0.0.1 -u karutaTest -p
# par exemple
- Tuning de la conf du mariaDb, sous debian 11 créer le fichier
/etc/mysql/mariadb.conf.d/51-custom.cnf
[mariadb]
tmp_memory_table_size=2G
max_heap_table_size=2G
Cela permet de corriger l'erreur Error: 1114-HY000: The table 't_node_cache' is full
et un freeze de l'interface durant quelques instants.
- Adresse DNS pour service karuta + configuration frontal (Apache/HAProxy/Nginx) et éventuellement avoir configuré le proxy du service. cf exemple
- Configuration du serveur CAS afin d'autoriser le service (avec le nom DNS et + selon règles interne)
- Paramètres SMTP afin de configurer l'envoie de mails à partir de karuta
-
Récupération des sources
git clone https://github.com/avenirs-esr/karuta-deployer.git
cd karuta-deployer
- se baser sur une / la dernière version ou rester sur la branche main. exemple:
git tag -l
# pour lister les versiongit checkout -b v1.0.5 v1.0.5
# pour basculer sur une versiion en particulier
- vérification via
git status
-
Initialisation de la BDD
cd etc/database/
- connexion
mysql -h 127.0.0.1 -u karutaTest -p karuta
\. karuta-backend-func.sql
\. karuta-backend.sql
\. report-helper.sql
show tables;
# pour vérifier la création de l'ensemble des tables- Ajout des comptes admin
INSERT INTO credential (login,is_admin,display_firstname,display_lastname,email,password) VALUES ('CAS_USER_ID', 1,'PRENOM', 'NOM', 'EMAIL', UNHEX(SHA1('MDP_A_CHANGER')));
exit
cd -
-
Configuration des chemins de déploiement
cp build.properties.sample build.properties
- éditer
build.properties
# spécifier les chemins de déploiement - par défaut déploiement dans un répertoire sous/opt/${user}
appartenant à l'utilisateur en écriture- décommenter
project.home
pour spécifier le répertoire créé au préalable, où se trouveront les configs et des datas (de préférence un montage netapp pour faire du load-balancing) - peut-être géré par variable d'environnement karuta.appliNames
utile si on déploie plusieurs instances et des uri différentes de celle par défaut
- décommenter
-
Configuration des contextes applicatifs, dans
etc/tomcat/conf/server.xml
- configuration du pool JNDI BDD en décommentant la ressource et en configurant le user/mdp/url
- ajouter les
context
nécessaires en fonction dukaruta.appliNames
# optionnel
-
Configuration complémentaire de tomcat
-
éditer
etc/tomcat/conf/tomcat-users.xml
pour changer le mdp du user manager -
tuner la jvm via
etc/tomcat/bin/setenv.sh
cf préconisations du projet sur github- Variables d'environnement pour tomcat ainsi que pour set certains chemins de configuration pour Karuta
CATALINA_HOME=/opt/${USER}/tomcat CATALINA_BASE=/opt/${USER}/tomcat CATALINA_TMPDIR=$CATALINA_BASE/temp CATALINA_PID=/opt/${USER}/tomcat/karuta.pid CATALINA_OPTS="$CATALINA_OPTS -server -XX:+UseG1GC -XX:+PrintFlagsFinal" #CATALINA_OPTS="$CATALINA_OPTS -Xmx6G" CATALINA_OPTS="$CATALINA_OPTS -Djava.net.preferIPv4Stack=true -Dnetworkaddress.cache.ttl=3600" CATALINA_OPTS="$CATALINA_OPTS -Djava.awt.headless=true -Dcom.sun.management.jmxremote -Dhttps.protocols=TLSv1.2,TLSv1.3" CATALINA_OPTS="$CATALINA_OPTS -Dhttp.agent=Java-Karuta" CATALINA_OPTS="$CATALINA_OPTS -Dserver.webapps=/opt/${USER}/webapps -Dserver.home=/opt/${USER}/tomcat" CATALINA_OPTS="$CATALINA_OPTS -Dkaruta.home=/opt/${USER}/config" # doit être identique à project.home dans build.properties CATALINA_OPTS="$CATALINA_OPTS -Dkaruta.report-folder=/opt/${USER}/reports" # facultatif cf https://github.com/karutaproject/karuta-backend_legacy#back-end
-
Une fois le tomcat start vérifier la commande via
jps
(pour récupérer le process id) et faire uncat /proc/${PID}/cmdline
-
-
Paramétrage des applications karuta
- éditer
etc/karuta/karuta-backend_config/configKaruta.properties
* enable_password_reset=N # car configuration avec CAS uniquement sinon attention pb de sécurité * activate_login=N # car configuration avec CAS uniquement sinon attention pb de sécurité * mail_login=no-reply@univ.fr # adresse mail d'authentification sur le serveur smtp - sinon renseigner une adresse no-replyet commenter le paramètre suivant * mail_sender=no-reply@univ.fr # adresse mail vue par les utilisateurs lors d'envoie de mails de notification par exemple - peut-être commenté si identique à mail_login * smtp.server=smtp.univ.fr * smtp.port=25 # port par défaut non sécurisé - sinon 585 * smtp.useauth=false # installation du smtp par défaut pour l'envoie de mail de façon non authentifiée * smtp.starttls=false * sys_email=admin.mail@univ.fr # adresse mail de l'administrateur applicatif * error_log=error.log * JDBC.external.resourceName=jdbc/karutaBackend # il est préférable d'utiliser un pool JNDI défini dans la configuration du tomcat - cela sécurise la plateforme et apporte la possibilité d'un monitoring en jmx * casUrlValidation=https://mon.univ.fr/cas # où casUrlsValidation pour un mapping avec plusieurs CAS mais nécessite le déploiement de plusieurs frontend - me contacter pour les détails de ce cas
- éditer
etc/karuta-config/_init.js
- var cas_url = "https://mon.univ.fr/cas";
- éditer
-
Configuration du frontal
- cf cas exemple dans le README.md
-
Déploiement et lancement
./gradlew tomcatInstall
install le tomcat et fait appel à la tâchetomcatConfig
pour déployer les dossiersetc/karuta/karuta-backend_config/
etetc/karuta/karuta-fileserver_config/
./gradlew tomcatDeploy --refresh-dependencies
./gradlew deployKarutaConfig
./gradlew tomcatStart
- ajout l'argument
-Pwith-jpda
pour activer le débug distant en exportant éventuellement la variable d'environnementJPDA_ADDRESS=${IP}:${PORT}
- pour arrêter le service
./gradlew tomcatStop
- Une fois démarrer
- Vérifier les logs
tail -f /opt/${USER}/tomcat/logs/backend.log
- Puis aller sur https://mon-univ.fr/karuta
- Vérifier les logs
- ajout l'argument
Astuce:
./gradlew tomcatConfig
peut être utile pour redéployer les dossiersetc/karuta/karuta-backend_config/
etetc/karuta/karuta-fileserver_config/
si des changements de paramètres ont eu lieu après la commande dutomcatInstall
Astuce: il est possible de customiser les logs en recopiant le fichier
logback.xml
des sources déployées sousoverlays/karuta-backend/src/main/resources/
puis l'adapter.Note:
./gradlew tomcatStart
est optionnel mais utile pour un premier test de lancement, on peut très bien gérer via un service systemd ou en faisant appel austartup.sh
du tomcat. -
Import des ZIP (nécessaire) disponibles ici
- Importer le zip "1-karuta-XXXXX"
- Importer le zip "2-karuta-configuration-kapc-XXXXX"
- Importer le zip "3-kapc-XXXXX"
- Importer le zip "4-referentiels-competences-BUT-kapc-1.3-XXXXX.zip" en prenant soin de suivre les recommandations (attention selon votre fonctionnement en option)
- Puis respecter la marche à suivre dans « Formulaire KAPC+ » ou bien «QUICKSTART»