Résoudre le Problème d'Accessibilité des Processus PM2 Démarrés par Jenkins

Jenkins et PM2 forment un duo puissant pour l'intégration continue (CI) et le déploiement continu (CD) des applications Node.js. Jenkins orchestre les pipelines de CI/CD, tandis que PM2 assure une gestion efficace des processus de ces applications. Toutefois, une configuration inadéquate peut entraîner des problèmes d'accès aux processus PM2 démarrés par Jenkins. Cet article propose une solution éprouvée à ce problème fréquent, visant à faciliter la gestion des processus Node.js dans un environnement CI/CD.

Problématique Commune: L'Inaccessibilité des Processus PM2 avec Jenkins

Le problème se présente généralement lorsque PM2 est installé sous un utilisateur xxxxxxx ou root, et que Jenkins, s'exécutant sous son propre utilisateur, tente d'accéder à ces processus sans succès. Cette situation conduit à une incapacité pour Jenkins de démarrer, gérer ou même visualiser les processus PM2, ce qui peut entraver sérieusement les opérations de déploiement automatique.

La Solution : Installer PM2 Sous l'Utilisateur Jenkins

La clé pour résoudre ce dilemme est d'assurer que PM2 soit accessible et gérable par l'utilisateur Jenkins. Voici les étapes pour y parvenir :

  1. Accéder à l'Utilisateur Jenkins : Commencez par ouvrir une session terminal en tant que root ou utilisateur ayant des privilèges sudo. Changez ensuite d'utilisateur pour devenir jenkins en exécutant :

    sudo su jenkins
    

    Si un mot de passe est requis pour l'utilisateur jenkins et que vous ne l'avez pas encore configuré, vous pouvez le faire depuis l'utilisateur root avec :

    sudo passwd jenkins
    
  2. Installer PM2 : Une fois connecté en tant que l'utilisateur jenkins, installez PM2 globalement en utilisant npm :

    npm i -g pm2
    

    Cette installation garantit que l'utilisateur jenkins possède sa propre instance de PM2, accessible et entièrement gérable.

  3. Vérification : Pour confirmer que PM2 est correctement installé et fonctionnel sous l'utilisateur jenkins, vous pouvez exécuter :

    pm2 list
    

    Cela devrait afficher une liste vide (si aucun processus n'est actuellement géré par PM2), indiquant que PM2 est prêt à être utilisé par Jenkins.

Avantages de Cette Solution

  • Autonomie de Jenkins : Jenkins peut maintenant démarrer, arrêter et gérer les processus PM2 de manière autonome, sans dépendre d'autres utilisateurs ou installations.
  • Sécurité Améliorée : En limitant l'usage de PM2 à l'utilisateur jenkins, vous réduisez les risques de sécurité associés à l'exécution de processus sous l'utilisateur root.
  • Flexibilité dans les Pipelines CI/CD : Cette configuration permet une intégration et un déploiement plus fluides et personnalisables des applications Node.js, en tirant parti de la puissance combinée de Jenkins et PM2.

Conclusion

L'intégration de Jenkins et PM2 est une stratégie éprouvée pour automatiser le déploiement d'applications Node.js. Cependant, la réussite de cette intégration repose sur une configuration appropriée permettant à Jenkins d'accéder et de gérer les processus PM2. En suivant les étapes décrites dans cet article, les développeurs et les ingénieurs DevOps peuvent surmonter l'obstacle de l'inaccessibilité des processus PM2 et optimiser leurs pipelines CI/CD.

Related Posts

Buzzword ou paradigme ? Immersion dans le jargon tech & cloud

Tout a commencé par une lecture sur les architectures serveless. Evidemment le livre était en Anglais et une traduction litéralle en langue française donne: "Architecture sans serveur"; Moment de panique, à ...

Lire plus ...

Mise en cache vs artefacts dans GitLab CI/CD

GitLab CI/CD est un outil pratique pour automatiser les processus de développement, de test et de déploiement d'applications. Deux concepts clés sont utilisés pour stocker des fichiers et des répertoires entr ...

Lire plus ...

# Mise en cache vs artefacts dans GitLab CI/CD

GitLab CI/CD est un outil puissant pour automatiser le processus de développement, de test et de déploiement des applications. Dans GitLab CI/CD, deux concepts clés sont utilisés pour stocker des fichiers et ...

Lire plus ...