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

提供:Dev Guides
移動先:案内検索

序章

Buildbotは、ソフトウェアのビルド、テスト、リリースのプロセスを自動化するためのPythonベースの継続的インテグレーションシステムです。 前提条件のチュートリアルUbuntu16.04 にBuildbotをインストールする方法では、buildbotユーザーとグループを作成し、ビルドマスターを/home/buildbot/masterに、ワーカーを[にインストールしました。 X180X]、次に手動で新しいユーザーのプロセスを開始しました。

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

前提条件

少なくとも1GBのRAMを備えた1台のUbuntu16.04サーバー。ルート以外のsudoユーザーと、Ubuntu16.04初期サーバーセットアップガイドに従ってファイアウォールを構成します。次のガイドを使用してインストールおよび構成されたBuildbot:

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

ステップ1—実行中のサービスを停止する

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

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

sudo buildbot stop /home/buildbot/master

次に、ワーカーも停止していることを確認します。

sudo buildbot-worker stop /home/buildbot/worker

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

ステップ2—Buildmasterユニットファイルの作成

次に、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ユニットファイルを追加し、ビルドマスターとワーカーの両方が起動時に開始できるようにしました。

次のチュートリアルでは、無料のSSL証明書サービスであるLet's Encrypt を使用して、SSLでWebインターフェイスを保護します。 証明書を生成するには、自分が所有または管理しているドメイン名が必要になることに注意してください。