So erstellen Sie Systemd Unit-Dateien für Buildbot

Einführung

Buildbot ist ein auf Python basierendes kontinuierliches Integrationssystem zur Automatisierung von Softwareerstellungs-, Test- und Freigabeprozessen. Im vorausgesetzten Tutorial, How To Install Buildbot unter Ubuntu 16.04, haben wir einen Buildbot erstellt user and group, installierte den buildmaster in + / home / buildbot / master + und den worker in + / home / buildbot / worker + `und startete dann die Prozesse des neuen Users manuell.

In diesem Lernprogramm werden System-Unit-Dateien erstellt, damit das Init-System des Servers die Buildbot-Prozesse verwalten kann.

Voraussetzungen

Sobald Sie diese Anforderungen erfüllt haben, können Sie beginnen.

Schritt 1 - Beenden der ausgeführten Dienste

Wenn Sie im vorherigen Lernprogramm immer noch als Benutzer "+ buildbot " angemeldet sind, geben Sie " exit " ein, um zum Benutzer " sudo +" zurückzukehren.

Als Benutzer von "+ sudo +" stellen wir sicher, dass der Buildmaster gestoppt wird:

sudo buildbot stop /home/buildbot/master

Dann werden wir sicherstellen, dass der Arbeiter ebenfalls gestoppt wird:

sudo buildbot-worker stop /home/buildbot/worker

In jedem Fall erhalten wir eine Rückmeldung darüber, dass der Buildbot-Prozess "tot" ist (mit der angehaltenen Prozess-ID) oder dass der Buildmaster nicht ausgeführt wird.

Schritt 2 - Erstellen der Buildmaster-Unit-Datei

Als nächstes erstellen und öffnen wir eine Datei mit dem Namen "+ buildbot-master.service +":

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

Im Abschnitt "+ [Einheit] " fügen wir eine Beschreibung hinzu und setzen voraus, dass das Netzwerk verfügbar ist, bevor der Dienst gestartet wird. Im Abschnitt " [Service] " geben wir an, dass der Prozess als der von uns erstellte " buildbot " -Benutzer und die von uns erstellte Gruppe ausgeführt wird, definieren das Arbeitsverzeichnis und geben die Befehle an, die zum Starten oder erneuten Laden des Masters verwendet werden sollen . Schließlich geben wir im Abschnitt " [Install] +" an, dass es als Teil des Mehrbenutzerziels beim Booten gestartet werden soll:

/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

Sobald wir den Inhalt hinzugefügt haben, speichern und beenden wir ihn und testen dann unsere Arbeit.

sudo systemctl start buildbot-master

Wir werden den Befehl systemd + status verwenden, um zu überprüfen, ob er ordnungsgemäß gestartet wurde:

sudo systemctl status buildbot-master

Die Ausgabe sollte + Active: active (running) + enthalten und die letzte Zeile sollte ungefähr so ​​aussehen:

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

Schließlich ermöglichen wir dem Buildmaster, beim Booten zu beginnen:

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.

Nachdem der Buildmaster eingerichtet ist, fügen wir den Worker hinzu.

Schritt 3 - Erstellen der Worker Unit-Datei

Wir erstellen und öffnen eine Datei mit dem Namen "+ buildbot-worker.service ", die wie " buildbot-master.service " konfiguriert ist, aber die Werte enthält, die zum Starten des Workers erforderlich sind. Im Abschnitt " [Install] " setzen wir den Schlüssel " WantedBy " auf " buildbot-master.service +", damit der Worker nach dem Buildmaster gestartet wird.

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

Wir werden speichern und beenden und dann "+ systemctl +" verwenden, um den Worker zu starten:

sudo systemctl start buildbot-worker

Wir werden den Befehl "+ status +" verwenden, um zu überprüfen, ob der Start erfolgreich war:

sudo systemctl status buildbot-worker

Wieder sollten wir wie beim Master "+ Aktiv: Aktiv (läuft) +" und eine letzte Ausgabezeile sehen, die ungefähr so ​​aussieht:

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

Schließlich ermöglichen wir dem Worker, beim Booten zu beginnen:

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.

Die Ausgabe oben zeigt an, dass der Worker so konfiguriert ist, dass er beim Start gestartet wird. Möglicherweise möchten Sie den Server jetzt neu starten, um sicherzustellen, dass alles wie erwartet gestartet wird.

Fazit

In diesem Lernprogramm haben wir System-Unit-Dateien hinzugefügt, damit das Init-System des Servers die Buildbot-Prozesse verwalten kann, und wir haben sowohl Buildmaster als auch Worker den Start beim Start ermöglicht.

Im nächsten Tutorial werden wir sichern die Webschnittstelle mit SSL using Let’s Encrypt, ein kostenloser SSL-Zertifikatsdienst. Beachten Sie, dass Sie einen Domänennamen benötigen, den Sie besitzen oder steuern, um ein Zertifikat zu generieren.

Related