Comment créer des fichiers unité Systemd pour Buildbot

introduction

Buildbot est un système d’intégration continue basé sur Python permettant d’automatiser les processus de création, de test et de publication de logiciels. Dans le didacticiel préalable, Comment installer Buildbot sur Ubuntu 16.04, nous avons créé un + buildbot + `user and group, a installé le maître de construction dans + / home / buildbot / master + et le travailleur dans + / home / buildbot / worker + `, puis a démarré manuellement les processus du nouvel utilisateur.

Dans ce didacticiel, nous allons créer des fichiers unité Systemd afin que le système init du serveur puisse gérer les processus Buildbot.

Conditions préalables

Une fois que vous avez rempli ces conditions, vous êtes prêt à commencer.

Étape 1 - Arrêt des services en cours d’exécution

Premièrement, si vous êtes toujours connecté en tant qu’utilisateur + buildbot + du tutoriel précédent, tapez + exit + pour revenir à l’utilisateur + sudo +.

En tant qu’utilisateur + sudo +, nous allons nous assurer que le maître de construction est arrêté:

sudo buildbot stop /home/buildbot/master

Ensuite, nous nous assurerons que le travailleur est également arrêté:

sudo buildbot-worker stop /home/buildbot/worker

Dans chaque cas, nous recevrons un retour d’informations indiquant que + buildbot process est mort + (indiquant l’ID de processus arrêté) ou + buildmaster not running +, ce qui indique que le service n’a pas été exécuté à la première place.

Étape 2 - Création du fichier d’unité Buildmaster

Ensuite, nous allons créer et ouvrir un fichier nommé + buildbot-master.service +:

sudo nano /etc/systemd/system/buildbot-master.service

Dans la section + [Unit] +, nous ajouterons une description et exigerons que la mise en réseau soit disponible avant de démarrer le service. Dans la section + [Service] +, nous spécifierons que le processus s’exécute en tant qu’utilisateur et groupe + buildbot + que nous avons créés, définirons le répertoire de travail et fournirons les commandes à utiliser pour démarrer ou recharger le maître. . Enfin, dans la section + [Install] +, nous indiquerons qu’il doit commencer comme une partie de la cible multi-utilisateurs au démarrage:

/etc/systemd/system/buildbot-master.service

[Unit]
Description=BuildBot master service
After=network.target

[Service]
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/master
ExecStart=/usr/local/bin/buildbot start --nodaemon
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

Une fois que nous avons ajouté le contenu, nous allons enregistrer et quitter, puis tester notre travail.

sudo systemctl start buildbot-master

Nous utiliserons la commande systemd + status pour vérifier que tout a bien démarré:

sudo systemctl status buildbot-master

La sortie devrait contenir + Active: active (en cours d’exécution) + et la dernière ligne devrait ressembler à ceci:

OutputMay 08 21:01:24 BuildBot-Install systemd[1]: Started BuildBot master service.

Enfin, nous allons permettre au buildmaster de démarrer au démarrage:

sudo systemctl enable buildbot-master
OutputCreated symlink from /etc/systemd/system/multi-user.target.wants/buildbot-master.service to /etc/systemd/system/buildbot-master.service.

Maintenant que le maître de build est configuré, nous allons ajouter le travailleur.

Étape 3 - Création du fichier d’unité de travail

Nous allons créer et ouvrir un fichier appelé + buildbot-worker.service + qui est configuré comme + buildbot-master.service + mais avec les valeurs nécessaires pour démarrer le travailleur. Dans la section + [Install] +, nous allons définir la clé + buildbot-master.service + de la clé` + WantedBy + `pour que le programme de travail soit lancé après le maître de compilation.

sudo nano /etc/systemd/system/buildbot-worker.service

/etc/systemd/system/buildbot-worker.service

[Unit]
Description=BuildBot worker service
After=network.target

[Service]
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/worker
ExecStart=/usr/local/bin/buildbot-worker start --nodaemon

[Install]
WantedBy=buildbot-master.service

Nous allons enregistrer et quitter, puis utilisez + systemctl + pour démarrer le travailleur:

sudo systemctl start buildbot-worker

Nous allons utiliser la commande + status + pour vérifier que tout a bien démarré:

sudo systemctl status buildbot-worker

De nouveau, comme le maître, nous devrions voir + Active: active (en cours d’exécution) + et une dernière ligne de sortie qui ressemble à quelque chose comme:

Output. . .
May 08 21:54:46 BuildBot-Install systemd[1]: Started BuildBot worker service.

Enfin, nous allons permettre au travailleur de démarrer au démarrage:

sudo systemctl enable buildbot-worker.service
OutputCreated symlink from /etc/systemd/system/buildbot-master.service.wants/buildbot-worker.service to /etc/systemd/system/buildbot-worker.service.

La sortie ci-dessus indique que le poste de travail est configuré pour démarrer au démarrage, mais vous voudrez peut-être redémarrer le serveur maintenant pour confirmer que tout démarre comme prévu.

Conclusion

Dans ce didacticiel, nous avons ajouté des fichiers unitaires systemd afin que le système init du serveur puisse gérer les processus Buildbot. Nous avons également permis au buildmaster et au travailleur de démarrer au démarrage.

Dans le prochain didacticiel, nous allons sécuriser l’interface Web avec SSL. utilisant Let’s Encrypt, un service de certificat SSL gratuit. Notez que vous aurez besoin d’un nom de domaine que vous possédez ou contrôlez pour générer un certificat.