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