Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/10/2022, à 10:50

captain-plant

Pb changer répertoire configuration par défaut Jenkins avec Tomcat

Bonjour à tous

Résumé du problème : Erreur quand j'essaie de changer le répertoire de configuration par défaut de Jenkins que je cherche à installer comme servlet de Tomcat

Je fais actuellement un cours sur OpenClassRoom : https://openclassrooms.com/fr/courses/1 … et-jenkins. Je cherche à apprendre l'adminsys et les services sous linux.

- Mon serveur est sur une VM avec Ubuntu-server-22.04
- Mon hôte client est sous Lubuntu-22.04

Dans le chapitre sur Tomcat et Jenkins, il est question d'installer Jenkins comme servlet sur un serveur Tomcat. J'ai suivi scrupuleusement les instructions et j'ai un problème pour changer le répertoire de configuration par défaut de Jenkins comme il est conseillé de le faire.

Voici les étapes que j'ai suivies :

1. Tout d'abord, j'ai installé Tomcat seul sur le serveur et j'ai pu constater que la page par défaut s'est bien affichée sur le navigateur du client à l'adresse : http://www.example.com:8080/

2. J'ai téléchargé Jenkins en utilisant :

wget https://get.jenkins.io/war-stable/2.361.2/jenkins.war

3. J'ai déplacé le fichier `jenkins.war` dans le répertoire où l'on stocke les applications web de Tomcat `/var/lib/tomcat9/webapps` en utilisant :

sudo mv jenkins.war /var/lib/tomcat9/webapps

Maintenant, c'est là où ça se complique un peu : Le cours dit que Jenkins met sa configuration, ses logs et ses builds par défaut dans le répertoire  `/root/.jenkins/` et conseille de changer cela pour les mettre dans  `/var/lib/jenkins/`.

1. Pour faire cela, j'ai d'abord créé le répertoire :

sudo mkdir /var/lib/jenkins

2. J'ai changé les permissions pour que Tomcat puisse y accéder en utilisant :

sudo chown tomcat:tomcat /var/lib/jenkins

3. Je suis allé dans  `/etc/tomcat9/context.xml` . Et j'ai ajouté à l'intérieur des balises `<Context />` une balise `<Environment ... />` pour indiquer le nouveau répertoire pour Jenkins:

<Context>
    ...
    <Environment name=”JENKINS_HOME” value=”/var/lib/jenkins” type=”java.lang.String” />
</Context>

4. J'ai édité le fichier de service de Tomcat `/lib/systemd/system/tomcat9.service` pour éviter les problèmes de lecture et écriture pour Jenkins en ajoutant dans la sous-section `# Security` de la section `[Service]` :

ReadWritePaths=/var/lib/jenkins/

5. J'ai relancé le daemon systemd pour que cette dernière modification soit prise en compte :

sudo systemctl daemon-reload

6. J'ai redémarré le daemon tomcat9 pour prendre en compte la modification du fichier `context.xml` en passant la commande :

sudo systemctl restart tomcat9

7. Maintenant en allant depuis l'hôte client sur http://www.example.com:8080/jenkins pour accéder à l'installation de Jenkins, je vois le logo de Jenkins, son header et son footer, mais j'ai cette erreur :

 Error
Unable to create the home directory ‘/var/lib/tomcat/.jenkins’. This is most likely a permission problem.

To change the home directory, use JENKINS_HOME environment variable or set the JENKINS_HOME system property. See Container-specific documentation for more details of how to do this.

Donc apparemment, il a un soucis avec les permissions, mais je ne le trouve pas... Dans la vidéo de tutoriel du cours, le prof fait exactement ce que j'ai fait et tout marche parfaitement. J'ai pas mal cherché sur google, stackoverflow, etc. et je trouve des soucis qui semblent proches mais en fait la procédure de configuration et de mise en place de Jenkins n'est pas la même.

Ce qui est bizarre c'est que jenkins veut créer le home directory dans `/var/lib/tomcat/.jenkins` alors que j'ai spécifié de le créer dans `/var/lib/jenkins`. Donc on dirait que, peut-être, même si j'ai tout redémarré et rechargé, ce que j'ai changé dans le fichier `context.xml` n'a pas été pris en compte.

Merci d'avance pour l'aide s'il y a des connaisseurs smile

Dernière modification par captain-plant (Le 14/10/2022, à 10:58)

Hors ligne

#2 Le 14/10/2022, à 11:02

iznobe

Re : Pb changer répertoire configuration par défaut Jenkins avec Tomcat

Bonjour , je n' y connais rien mais que donne

ls -la /var/lib/tomcat/

Dernière modification par iznobe (Le 14/10/2022, à 11:02)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#3 Le 14/10/2022, à 11:36

captain-plant

Re : Pb changer répertoire configuration par défaut Jenkins avec Tomcat

En fait le répertoire `/var/lib/tomcat/` n'existe même pas de base, j'ai oublié de le préciser :

yann@server-vm:~$ sudo ls -lhrsta /var/lib/ | grep tomcat
4,0K drwxr-xr-x  2 tomcat tomcat 4,0K oct.  13 11:37 jenkins
4,0K drwxr-xr-x  5 root   root   4,0K oct.  14 11:33 tomcat9
yann@server-vm:~$ 

C'est le répertoire `/var/lib/tomcat9/` qui est créé par tomcat lors de l'installation. D'ailleurs le daemon s'appelle `tomcat9`. Mais l'utilisateur pour les droits s'appelle `tomcat`. Voici pour info ce qu'il y a dans ce répertoire

yann@server-vm:~$ sudo ls -lhrsta /var/lib/tomcat9
   0 lrwxrwxrwx  1 root   root     19 juil  20 21:05 work -> ../../cache/tomcat9
   0 lrwxrwxrwx  1 root   root     17 juil  20 21:05 logs -> ../../log/tomcat9   
4,0K drwxr-xr-x  2 tomcat tomcat 4,0K juil  20 21:05 lib
   0 lrwxrwxrwx  1 root   root     12 juil  20 21:05 conf -> /etc/tomcat9   
4,0K drwxrwxr-x  4 tomcat tomcat 4,0K oct.  13 11:19 webapps
4,0K drwxr-xr-x 50 root   root   4,0K oct.  13 11:37 ..
4,0K drwxr-xr-x  2 root   root   4,0K oct.  14 11:33 policy
4,0K drwxr-xr-x  5 root   root   4,0K oct.  14 11:33 .
yann@server-vm:~$

Dernière modification par captain-plant (Le 14/10/2022, à 11:37)

Hors ligne

#4 Le 14/10/2022, à 16:50

iznobe

Re : Pb changer répertoire configuration par défaut Jenkins avec Tomcat

euh , ouai , ok mais l ' erreur signalée est pourtant claire :

 Error
Unable to create the home directory ‘/var/lib/tomcat/.jenkins’

ca parle pas du repertoire tomcat9 hein ...

as tu edité ton 1er message ? il me semblait bien que tu parlais du repertoire /var/lib/tomcat/ dedans auparavant .

Bref , de toute façon , qu ' est ce que tu risques a creer ce repertoire ... une minute de perdu et une ligne de commande ( enfin 2 , pour ajuster les droits aussi ) .

sudo mkdir /var/lib/tomcat/
sudo chown tomcat: /var/lib/tomcat/

et re-essaie .

Dernière modification par iznobe (Le 14/10/2022, à 16:53)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#5 Le 14/10/2022, à 19:25

captain-plant

Re : Pb changer répertoire configuration par défaut Jenkins avec Tomcat

Oui ça ne parle pas du repertoire `/var/lib/tomcat9` ni du répertoire `/root/.jenkins/` qui est censé, d'après mon cours, être le répertoire par défaut de Jenkins...

J'ai édité mon message ce matin, mais je n'avais pas parlé de `/var/lib/tomcat/` avant.

Mais je ne comprends pas d'où sort le répertoire `/var/lib/tomcat/.jenkins` j'ai fait des `sudo grep -r /var/lib/tomcat/ [SEARCH_DIR]` dans tous les répertoires de ma machine pour chercher une mention de ce répertoire dans les fichiers de configuration de jenkins. Mais je n'ai rien trouvé.

C'est vrai je n'ai même pas pensé à faire ce que tu me dis. Du coup la configuration de jenkins ne sera pas à l'emplacement désiré, peut-être on s'en fou au final, mais ça sera peut-être dur à modifier par la suite... Mais c'est bizarre que la modification du fichier `/etc/tomcat9/context.xml` ne soit pas prise en compte. J'aimerais bien savoir ce qui bloque.

Dernière modification par captain-plant (Le 14/10/2022, à 19:48)

Hors ligne

#6 Le 15/10/2022, à 15:07

captain-plant

Re : Pb changer répertoire configuration par défaut Jenkins avec Tomcat

Ok donc j'ai suivi ton idée et ça fonctionne, Merci beaucoup. je détaille pour aider d'autres personnes si besoin :

Il faut aussi de nouveau modifier le fichier de service de tomcat : `/lib/systemd/system/tomcat9.service`. Dans ce fichier je rajoute une ligne à la suite de l'autre :

ReadWritePaths=/var/lib/tomcat/

Cette ligne va permettre d'éviter des problèmes de droits en lecture et écriture pour tomcat. Sans cette étape, j'ai essayé ça ne marche pas.

Ensuite, je crée le répertoire `/var/lib/tomcat`, j'attribue comme utilisateur et groupe propriétaire `tomcat`. Et enfin je redémarre tout :

yann@server-vm:~$ sudo mkdir /var/lib/tomcat/
yann@server-vm:~$ sudo chown tomcat: /var/lib/tomcat/
yann@server-vm:~$ sudo ls -lhrst /var/lib/ | grep tomcat
4,0K drwxr-xr-x  2 tomcat tomcat 4,0K oct.  13 11:37 jenkins
4,0K drwxr-xr-x  5 root   root   4,0K oct.  15 15:14 tomcat9
4,0K drwxr-xr-x  5 tomcat tomcat 4,0K oct.  15 15:15 tomcat
yann@server-vm:~$ sudo systemctl daemon-reload
yann@server-vm:~$ sudo systemctl restart tomcat9
yann@server-vm:~$

Et voilà ça fonctionne. Merci smile

Par contre l'utilisation de la variable d'environnement JENKINS_HOME pour modifier le répertoire home de Jenkins restera un mystère... Même sur le site officiel https://wiki.jenkins.io/JENKINS/Tomcat.html, ils font comme j'ai fait
Si quelqu'un a une idée je suis preneur ^^

Dernière modification par captain-plant (Le 15/10/2022, à 15:12)

Hors ligne