Maison >développement back-end >tutoriel php >Installation et sécurisation de Jenkins
Plus tôt cette année, j'ai écrit un article sur PHP-CI, que vous pouvez utiliser comme outil d'intégration continue pour vos projets PHP. Dans cet article, j'ai indiqué que j'aimais toujours Jenkins le plus en tant qu'outil CI. Il est temps de plonger dans Jenkins et de voir comment nous pouvons configurer cela pour notre projet PHP.
La liste des choses que Jenkins a à offrir est énorme en raison du riche système de plugin qu'il a. Fondamentalement, Jenkins n'est qu'un outil qui connecte toutes sortes d'outils et de plugins différents pour créer un rapport pour vous. Par exemple, il peut exécuter PHPUnit et vous montrer les résultats dans un graphique au fil du temps. Il peut vérifier les erreurs de votre code PHP en exécutant PHP -L. Cependant, vous pouvez également laisser Jenkins créer un projet et sortir un fichier ZIP, que vous pouvez utiliser pour déployer votre application. L'avantage de cela est que vous récupérez un fichier zip complet pour mettre à niveau votre application de production sans avoir à exécuter des outils comme le compositeur ou le NPM sur vos serveurs de production.
Jenkins peut être utilisé pour de nombreuses applications différentes. Vous pouvez l'utiliser pour des applications Web écrites en PHP, mais également pour les logiciels et les applications mobiles écrites en Java ou toute autre langue. Cela fait de Jenkins un outil très polyvalent et très intéressant pour les entreprises qui gèrent de nombreux projets différents.
Parce que Jenkins a tellement d'options et de possibilités, il semble écrasant que les gens commencent à l'utiliser. Dans cette série d'articles, nous allons lentement travailler dans Jenkins. Nous allons commencer par l'installation et la configuration. Après cela, nous continuerons à analyser un projet. En fin de compte, nous allons examiner de près de nombreux autres plugins que nous pouvons utiliser pour vérifier la qualité de notre produit.
Nous nous concentrerons principalement sur la qualité du code PHP, mais en fin de compte, nous allons également examiner l'analyse de nos HTML, CSS et JavaScript qui fonctionnent en harmonie étroite avec PHP.
Vous pouvez installer Jenkins sur n'importe quel système d'exploitation populaire. Pour cet article, nous allons installer Jenkins sur Ubuntu Server 14.04 LTS. Si vous utilisez un système d'exploitation différent, vous pouvez vérifier ici les instructions d'installation par système d'exploitation. Pour installer Jenkins sur Ubuntu, le moyen le plus simple serait d'exécuter cette commande.
<span>sudo apt-get install jenkins</span>
Cependant, vous installez maintenant Jenkins qui se trouve dans le référentiel d'Ubuntu. Jenkins suggère lui-même d'installer directement à partir des référentiels de Jenkins. Tout d'abord, nous ajoutons la clé à notre système pour le référentiel.
<span>wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -</span>
Maintenant, nous exécutons la commande suivante pour ajouter Jenkins au fichier sources.list.
<span>deb http://pkg.jenkins-ci.org/debian binary/</span>
Maintenant, nous sommes prêts à installer Jenkins.
sudo apt-get update
<span>sudo apt-get install jenkins</span>
Une fois terminé, Jenkins est installé avec succès sur votre serveur.
Vous pouvez désormais atteindre Jenkins via votre navigateur en ajoutant le port 8080 à la fin de l'URL. Imaginez donc mon serveur est nommé ci.myserver.com Vous pouvez atteindre Jenkins sur ci.myserver.com:8080.
.
La première chose que vous devriez remarquer est que Jenkins est complètement ouvert. Quiconque va maintenant à cette URL peut effectuer toutes sortes de tâches différentes, donc la première chose que nous allons faire est de la sécuriser. Nous commençons par cliquer sur Gérer Jenkins dans le menu de la barre latérale. où nous serons accueillis par une notification de Jenkins, recommandant de sécuriser le serveur CI.
Cliquez sur le bouton Configuration de la sécurité pour continuer. Sur la page suivante, Mark Activer la case à cocher Security tel que coché. Les étapes suivantes sont cruciales à suivre correctement, car il est facile de vous enfermer de Jenkins. Si cela se produit, vous pouvez suivre ces étapes pour accéder à nouveau.
La première chose que vous devez faire est de définir votre domaine de sécurité. Le plus simple est que Jenkins ait sa propre base de données d'utilisateurs en marquant la case à cocher devant la propre base de données d'utilisateurs de Jenkins. Assurez-vous que l'option Autoriser les utilisateurs à inscrire est également activée. Enregistrez maintenant votre configuration en cliquant sur Enregistrer.
Vous devriez maintenant pouvoir voir un lien d'inscription dans le coin supérieur droit de la page. Cliquez sur ce lien et remplissez le formulaire pour vous inscrire. Une fois terminé, connectez-vous avec votre compte nouvellement créé.
Revenez aux paramètres de sécurité en cliquant sur Gérer Jenkins, puis en cliquant sur Configurer la sécurité globale. Vous devez désormais décocher les utilisateurs Autoriser à inscrire la case à cocher pour vous assurer qu'aucun nouveau compte ne peut être créé sans votre permission.
Ensuite, nous allons définir l'autorisation. Les meilleures options pour vous sont la sécurité basée sur la matrice ou la stratégie d'autorisation de matrice basée sur des projets. Cela vous permet de définir par utilisateur quelles actions ils peuvent et ne peuvent pas effectuer. Si vous choisissez cette dernière option, vous pourrez même définir ce projet. Pour l'instant, je vais choisir la sécurité basée sur la matrice.
Une table avec des autorisations est maintenant affichée. Vous ne verrez qu'une seule ligne de table dans laquelle vous pouvez définir ce qu'un utilisateur anonyme peut faire. Cependant, nous voulons définir des autorisations pour notre propre compte utilisateur. Alors remplissez votre nom d'utilisateur dans la case ci-dessous et cliquez sur Ajouter. Pour vous assurer que vous avez accès à tout, vous pouvez tous les vérifier.
En fin de compte, c'est à quoi il ressemble.
Remarque: Soyez prudent avec des lettres capitalisées. Peter et Peter sont 2 comptes d'utilisateurs différents, alors assurez-vous de remplir le nom d'utilisateur correct dans les deux cas sinon vous serez verrouillé du système.
Lors de l'enregistrement, vous serez automatiquement déconnecté. Notez que vous ne voyez plus rien à part un formulaire de connexion. Après vous être connecté, vous devriez avoir accès à tout ce comme avant. Si vous obtenez une erreur d'autorisation, vous avez fait une erreur et vous devez soit modifier les paramètres, soit vous êtes verrouillé de Jenkins. Dans ce dernier cas, voir le lien ci-dessus.
Jusqu'à présent, nous avons été occupés à installer et à sécuriser Jenkins. Il est maintenant temps de configurer Jenkins afin que nous puissions commencer à construire et à analyser nos projets PHP. Sebastian Bergmann a créé un excellent site Web vous montrant comment configurer Jenkins pour PHP. Nous allons faire les mêmes étapes que documentés, mais dans un ordre légèrement différent.
Nous devons d'abord installer plusieurs plugins dans Jenkins. Les plugins sont de petites extensions à Jenkins qui peuvent effectuer des tâches pour vous comme analyser un rapport et la convertir en graphique. Nous aurons besoin de la liste des plugins suivants pour commencer.
Nous allons installer ces plugins via l'interface. Si vous vous sentez plus expérimenté ou à l'aise avec la ligne de commande, vous pouvez consulter cette documentation pour voir comment les installer via la ligne de commande. De plus, cette page vous donnera une courte explication sur ce que chaque plugin fera.
dans Jenkins, allez gérer Jenkins puis pour gérer les plugins. Cliquez sur l'onglet nommé disponible. Ici, vous verrez une liste complète de tous les plugins disponibles. Avec le filtre dans le coin supérieur droit, vous pouvez rapidement rechercher chaque plugin. Assurez-vous d'installer la liste complète des plugins mentionnés ci-dessus en vérifiant les cases à cocher.
Vérifiez la case à cocher devant le redémarrage de Jenkins lorsque l'installation est terminée et qu'aucun travail ne fonctionne pour redémarrer Jenkins lorsque tout est fait. Après le redémarrage, tous les plugins requis ont été installés correctement.
Lorsque Jenkins est configuré, nous commençons normalement par créer un projet, parfois appelé travail. Un projet est généralement un projet PHP que vous avez obtenu. Dans un projet, vous aurez plusieurs versions. Vous pouvez configurer Jenkins pour analyser (construire) votre code à certains moments. Cela peut être des intervalles planifiés ou sur les demandes de traction des contributeurs, par exemple. Ainsi, un projet contient plusieurs builds au fil du temps, chacun étant une analyse distincte de votre code. Grâce aux plugins que nous avons installés, vous pourrez voir les résultats de ces versions dans de beaux graphiques. Dans ces graphiques, vous pouvez rapidement repérer si une certaine construction augmentait ou diminuait la qualité de votre projet. Nous pouvons également voir où nous devons améliorer notre code en fonction de tous nos outils.
Nous pourrions maintenant créer un nouveau projet. Cependant, nous devions également configurer ce projet. Par exemple, nous pourrions configurer que chaque phpunit est exécuté, une page de couverture de code doit être créée afin que nous puissions voir quel code est testé et quel code n'est pas testé. Il y a beaucoup de tests que nous devions configurer sur un nouveau projet, et cela prendrait probablement du temps. Heureusement, Sebastian Bergmann a également créé un modèle que nous allons utiliser.
Nous devons ouvrir la ligne de commande pour pouvoir installer ce modèle. Le moyen le plus simple serait de télécharger l'outil CLI que Jenkins a fourni. Le problème est cependant le fait que nous avons sécurisé notre installation Jenkins plus tôt. Cela signifierait que nous devons ouvrir la sécurité à Anonymous ou connecter la clé publique / privée à notre compte.
Dans ce cas, nous optons pour une autre méthode d'installation du modèle. Tout d'abord, connectez-vous en tant qu'utilisateur Jenkins sur la ligne de commande et accédez au répertoire domestique.
<span>sudo apt-get install jenkins</span>
Dans le répertoire domestique, accédez au répertoire des travaux et créez un nouveau répertoire nommé PHP-Template.
<span>wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -</span>
Maintenant, nous allons entrer ce répertoire et ajouter le fichier de configuration.
<span>deb http://pkg.jenkins-ci.org/debian binary/</span>
Maintenant, nous avons besoin de Jenkins pour recharger sa configuration. Vous pouvez le faire en revenant à l'interface Web, cliquez sur Gérer Jenkins et cliquez sur Recharger la configuration à partir du disque. Jenkins rechargera désormais sa configuration. Une fois terminé, vous devriez voir le projet PHP-Template sur la page d'aperçu principale.
Jenkins est maintenant prêt. Nous pouvons créer de nouveaux projets en fonction de ce modèle.
Dans cet article, nous avons installé, sécurisé et préparé Jenkins pour commencer à analyser notre projet PHP. Dans la partie suivante, nous ajouterons notre projet, le préparerons et bien sûr l'analyser.
La sécurisation de Jenkins implique plusieurs étapes. Tout d'abord, assurez-vous que Jenkins fonctionne dans son propre compte utilisateur avec des privilèges limités pour minimiser les dommages potentiels en cas de violation de sécurité. Deuxièmement, activez la sécurité dans la section Configurer la sécurité globale et choisissez le domaine de sécurité pour l'authentification. Troisièmement, utilisez la sécurité de sécurité basée sur la matrice ou d'autorisation de matrice basée sur des projets pour l'autorisation. Quatrièmement, assurez-vous que tous les plugins Jenkins et le noyau Jenkins sont toujours à jour. Enfin, sauvegarde régulièrement votre configuration de Jenkins pour éviter la perte de données.
pour permettre la sécurité dans Jenkins, naviguer pour gérer Jenkins> Configurer la sécurité globale. Cochez la zone de sécurité Activer. Dans la section Contrôle d'accès, choisissez le domaine de sécurité pour l'authentification. Jenkins fournit plusieurs options, notamment la propre base de données d'utilisateurs de Jenkins, LDAP, et autres.
La sécurité basée sur la matrice est une stratégie d'autorisation dans Jenkins qui permet de spécifier différentes autorisations pour chaque utilisateur ou groupe. Il fournit un contrôle à grain fin sur les actions qu'un utilisateur ou un groupe peut effectuer. Pour l'utiliser, vous devez installer le plugin de stratégie d'autorisation basée sur des rôles.
Jenkins fournit un moyen facile de Mettre à jour les plugins et le noyau. Naviguez pour gérer Jenkins> Gérer les plugins> onglet Mises à jour. Ici, vous pouvez voir les mises à jour disponibles pour vos plugins installés. Pour mettre à jour le noyau Jenkins, allez pour gérer Jenkins> Gérer les plugins> onglet Avancé et cliquez sur le bouton Vérifier maintenant dans la section du site de mise à jour.
RECLARMAGE La sauvegarde de votre configuration Jenkins est cruciale pour éviter la perte de données. Vous pouvez utiliser le plugin Thinbackup pour sauvegarder votre configuration Jenkins. Il permet de planifier des sauvegardes et de restaurer à partir des sauvegardes.
Pour limiter les privilèges du compte d'utilisateur Jenkins, créer un nouveau compte utilisateur spécifiquement pour exécuter Jenkins. Ce compte utilisateur ne devrait pas avoir de privilèges sudo ou être en mesure de se connecter au système.
La stratégie d'autorisation de matrice basée sur le projet est Une extension de la sécurité basée sur la matrice qui permet de spécifier différentes autorisations pour chaque travail. Il fournit un contrôle encore plus fin sur les actions qu'un utilisateur ou un groupe peut effectuer.
Pour installer le plugin de stratégie d'autorisation basée sur les rôles, naviguez pour gérer Jenkins> Gérer les plugins> disponibles disponibles. Recherchez le plugin de stratégie d'autorisation basée sur les rôles, sélectionnez-le et cliquez sur le bouton Installer sans redémarrage.
Le royaume de sécurité dans Jenkins est utilisé pour authentification. Il détermine comment les utilisateurs sont authentifiés. Jenkins fournit plusieurs options, notamment la propre base de données d'utilisateurs de Jenkins, LDAP et autres.
Pour sécuriser Jenkins contre CSRF, Naviguez pour gérer Jenkins> Configurer la sécurité globale. Dans la section de protection CSRF, cochez la case de contrefaçon de demande de surface de prévention du site et choisissez l'émetteur de miettes par défaut.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!