Aller au contenu principal

Solr

Suite à la faillite de la société e-imagineurs, nous avons récupérer l'infogérence des applications. Cependant, OVH ne nous a pas donné accès à l'intégralité des serveurs dont disposé e-magineurs. Il se trouve que des applications sous TYPO3 utilisent des moteurs de recherches SOLR, qui sont hebergés sur des serveurs dont nous avons pas les accès.

OVH a coupé certains de ces serveurs contenant les instances de Apache SOLR pour Typo3, les sites n'ont donc plus de moteur de recherche.

Plusieurs applications sont impactées, avec des versions d'Apache SOLR différentes.

L'idée est donc de monter un serveur, contenant des instances d'APACHE SOLR par version sur différents ports, montées via podman, afin que nous puissiont rediriger les applications vers ce serveur.

Serveur

Le serveur hebergeant les instances d'Apache SOLR est hebergé à cette IP : 162.19.115.11 (sur le compte OVH de HDS)

Il y a un filtrage par IP via ufw, autorisant à date que l'IP des bureaux de Clermont sur le port 22.

Solr

Nous montons des containers se basant sur le container suivant : https://hub.docker.com/r/typo3solr/ext-solr

Volumes partagés

Nous partageons 2 volumes de notre serveur vers les containers des instances Apache SOLR.

Attention, il est necessaire que le propriétaire du groupe soir le port :

sudo chown -R 8983:8983 /home/debian/typo_solr_VERSION/

Core

-v /home/debian/typo_solr_VERSION/cores:/opt/solr/server/solr/cores

Data

-v /home/debian/typo_solr_VERSION/data:/opt/solr/server/solr/data

Exemple de commande finale

sudo podman run -d -p 8983:8983 --name typo_solr_9 -v /home/debian/typo_solr_9/cores:/opt/solr/server/solr/cores -v /home/debian/typo_solr_9/data:/opt/solr/server/solr/data docker.io/typo3solr/ext-solr:9.0.3

Ajouter une version d'Apache SOLR

Ne pas utiliser un port existant, pour vérifier les ports déjà utilisé et voir les versons de SOLR deja existantes :

sudo podman ps

Il est necessaire de créer un nouveau container car la version n'existe pas :

sudo podman run -d -p PPPP:8983 --name typo_solr_x  -v /home/debian/typo_solr_VERSION/cores:/opt/solr/server/solr/cores -v /home/debian/typo_solr_VERSION/data:/opt/solr/server/solr/data docker.io/typo3solr/ext-solr:X.x.x

Générer le fichier de service pour ce nouveau container

sudo su
podman generate systemd --new --name typo_solr_VERSION > /etc/systemd/system/typo-solr-VERSION-container.service
systemctl daemon-reload
systemctl start typo-solr-VERSION-container.service
systemctl enable typo-solr-VERSION-container.service

Ajouter un index (core) sur une version d'Apache SOLR existante

Sur le serveur contenant les instances, à la racine du user debian :

cp -R sample_core_to_add typo_solr_VERSION/cores/NOM_DU_CORE_SOLR_SUR_L_APPLICATION
nano typo_solr_VERSION/cores/NOM_DU_CORE_SOLR_SUR_L_APPLICATION/core.properties

Remplacez les 2 endroits ecrits "sample_name", dans dataDir et name, mettre le nom du core (sans le prefix core_) Verifiez que le "configSet=" correspond à vorte version d'apache Solr

Une fois que c'est fait, déplacez le dossier :

mv NOM_DU_CORE_SOLR_SUR_L_APPLICATION typo_solr_VERSION/cores/
sudo podman reload typo_solr_VERSION

C'est fait, pour vérifier, vous pouvez aller sur l'URL suivante (PPPP étant le port de votre version):

http://162.19.115.11:PPPP/solr/#/

Sécurité

Pour voir les IPs autorisées, elles se trouvent en bas du fichier suivant :

sudo nano /etc/ufw/before.rules

Ajouter l'IP de votre serveur avec l'appli TYPO3 w.x.y.z afin de lui permettre d'acceder au port PPPP de notre serveur où l'instance Apache Solr tourne :


# Autoriser l'IP w.x.y.z à accéder au port PPPP du conteneur
-A ufw-before-forward -i ens3 -o podman0 -p tcp --dport PPPP -s w.x.y.z -j ACCEPT

Puis relancer ufw afin que la config soit prise en compte :

sudo ufw disable && sudo ufw enable