BuildbotのSystemdユニットファイルを作成する方法

前書き

Buildbotは、ソフトウェアのビルド、テスト、およびリリースのプロセスを自動化するためのPythonベースの継続的統合システムです。 前提条件のチュートリアルhttps://www.digitalocean.com/community/tutorials/how-to-install-buildbot-on-ubuntu-16-04[Ubuntu 16.04にBuildbotをインストールする方法]で、 + buildbot + `ユーザーとグループ、buildmasterを + / home / buildbot / master + に、ワーカーを + / home / buildbot / worker + `にインストールしてから、新しいユーザーのプロセスを手動で開始しました。

このチュートリアルでは、サーバーの初期化システムがBuildbotプロセスを管理できるようにsystemdユニットファイルを作成します。

前提条件

少なくとも1 GBのRAMを搭載した1つのUbuntu 16.04サーバー。https://www.digitalocean.com/community/tutorials/initial-server-setupに従って非ルートの「+ sudo +」ユーザーとファイアウォールを使用して設定-with-ubuntu-16-04 [Ubuntu 16.04初期サーバーセットアップガイド]、次のガイドを使用してBuildbotをインストールおよび構成します。

これらの要件を完了すると、開始する準備が整います。

手順1-実行中のサービスの停止

まず、前のチュートリアルからまだ「+ buildbot 」ユーザーとしてログインしている場合は、「 exit 」と入力して「 sudo +」ユーザーに戻ります。

`+ sudo +`ユーザーとして、Buildmasterが停止していることを確認します。

sudo buildbot stop /home/buildbot/master

次に、ワーカーも停止されるようにします。

sudo buildbot-worker stop /home/buildbot/worker

いずれの場合も、「+ buildbot process is dead 」(停止したプロセスIDを表示)または「 buildmaster not running +」(サービスが最初から実行されていなかったことを示す)というフィードバックを受け取ります。

ステップ2-Buildmaster Unitファイルの作成

次に、 `+ buildbot-master.service +`という名前のファイルを作成して開きます。

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

「+ [Unit] 」セクションに説明を追加し、サービスを開始する前にネットワークが利用可能であることを要求します。 ` [Service] `セクションでは、作成した ` buildbot `ユーザーおよびグループとしてプロセスが実行されるように指定し、作業ディレクトリを定義し、マスターの起動またはリロードに使用するコマンドを提供します。 最後に、 ` [Install] +`セクションで、ブート時にマルチユーザーターゲットの一部として開始する必要があることを示します。

/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

コンテンツを追加したら、保存して終了し、作業をテストします。

sudo systemctl start buildbot-master

systemdの `+ status`コマンドを使用して、適切に起動したことを確認します。

sudo systemctl status buildbot-master

出力には `+ Active:active(running)+`が含まれ、最後の行は次のようになります。

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

最後に、ビルドマスターをブート時に開始できるようにします。

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.

ビルドマスターがセットアップされたので、ワーカーを追加します。

手順3-ワーカーユニットファイルの作成

「+ buildbot-worker.service 」というファイルを作成して開きます。このファイルは、「 buildbot-master.service 」のように設定されていますが、ワーカーの起動に必要な値が設定されています。 ` [Install] `セクションでは、 ` WantedBy `キーを ` buildbot-master.service +`に設定して、ワーカーがビルドマスターの後に起動されるようにします。

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

保存して終了し、 `+ systemctl +`を使用してワーカーを開始します。

sudo systemctl start buildbot-worker

`+ status +`コマンドを使用して、正常に起動したことを確認します。

sudo systemctl status buildbot-worker

繰り返しますが、マスターと同様に、 `+ Active:active(running)+`と、次のような最終的な出力行が表示されます。

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

最後に、ワーカーがブート時に起動できるようにします。

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.

上記の出力は、ワーカーがブート時に起動するように設定されていることを示していますが、サーバーをすぐに再起動して、すべてが期待どおりに起動することを確認できます。

結論

このチュートリアルでは、サーバーのinitシステムがBuildbotプロセスを管理できるようにsystemdユニットファイルを追加し、buildmasterとworkerの両方をブート時に開始できるようにしました。

次のチュートリアルでは、https://www.digitalocean.com/community/tutorials/how-to-configure-buildbot-with-ssl-using-an-nginx-reverse-proxy [WebインターフェイスをSSLで保護する無料のSSL証明書サービスであるLet’s Encrypt]を使用します。 証明書を生成するには、所有または管理しているドメイン名が必要です。

Related