Skip to content

Instantly share code, notes, and snippets.

@jgribonvald
Last active March 26, 2024 12:47
Show Gist options
  • Save jgribonvald/7ca25ce8eb24ba7d48e7b766daea0c40 to your computer and use it in GitHub Desktop.
Save jgribonvald/7ca25ce8eb24ba7d48e7b766daea0c40 to your computer and use it in GitHub Desktop.
Installation de kapc 1.3.5

Installation et démarrage avec Karuta + KAPC 1.3.5

Installation des services

Pré-requis:

  1. Accès à un serveur Linux où installer Karuta
  2. paquet git et java 11 installé temurin-11-jdk par exemple
  3. 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
  4. 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.

  1. Adresse DNS pour service karuta + configuration frontal (Apache/HAProxy/Nginx) et éventuellement avoir configuré le proxy du service. cf exemple
  2. Configuration du serveur CAS afin d'autoriser le service (avec le nom DNS et + selon règles interne)
  3. Paramètres SMTP afin de configurer l'envoie de mails à partir de karuta

Déroulé:

  1. 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 version
      • git checkout -b v1.0.5 v1.0.5 # pour basculer sur une versiion en particulier
    • vérification via git status
  2. 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 -
  3. 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
  4. 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 du karuta.appliNames # optionnel
  5. 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 un cat /proc/${PID}/cmdline

  6. 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
  7. Configuration du frontal

  8. Déploiement et lancement

    • ./gradlew tomcatInstall install le tomcat et fait appel à la tâche tomcatConfig pour déployer les dossiers etc/karuta/karuta-backend_config/ et etc/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'environnement JPDA_ADDRESS=${IP}:${PORT}
      • pour arrêter le service./gradlew tomcatStop
      • Une fois démarrer

    Astuce: ./gradlew tomcatConfig peut être utile pour redéployer les dossiers etc/karuta/karuta-backend_config/ et etc/karuta/karuta-fileserver_config/ si des changements de paramètres ont eu lieu après la commande du tomcatInstall

    Astuce: il est possible de customiser les logs en recopiant le fichier logback.xml des sources déployées sous overlays/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 au startup.sh du tomcat.

  9. Import des ZIP (nécessaire) disponibles ici

    1. Importer le zip "1-karuta-XXXXX"
    2. Importer le zip "2-karuta-configuration-kapc-XXXXX"
    3. Importer le zip "3-kapc-XXXXX"
    4. 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)
    5. Puis respecter la marche à suivre dans « Formulaire KAPC+ » ou bien «QUICKSTART»
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment