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
-
Ein Ubuntu 16.04-Server mit mindestens 1 GB RAM *, der mit einem Benutzer ohne Rootberechtigung ("+ sudo +") und einer Firewall konfiguriert wurde. Befolgen Sie dazu die Anweisungen unter https://www.digitalocean.com/community/tutorials/initial-server-setup -with-ubuntu-16-04 [Handbuch zur Einrichtung des Ubuntu 16.04-Servers] mit installiertem und konfiguriertem Buildbot unter Verwendung des folgenden Handbuchs:
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.