序章

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

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

前提条件

少なくとも1GBのRAMを搭載した1台のUbuntu16.04サーバー、非ルートで構成 sudo ユーザーとファイアウォールは、 Ubuntu 16.04初期サーバーセットアップガイドに従って、Buildbotがインストールされ、次のガイドを使用して構成されています。

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

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

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

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

  1. sudo buildbot stop /home/buildbot/master

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

  1. sudo buildbot-worker stop /home/buildbot/worker

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

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

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

  1. 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

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

  1. sudo systemctl start buildbot-master

systemdを使用します status 適切に起動したことを確認するコマンド:

  1. sudo systemctl status buildbot-master

出力には次のものが含まれている必要があります Active: active (running) 最後の行は次のようになります。

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

最後に、ビルドマスターが起動時に開始できるようにします。

  1. sudo systemctl enable buildbot-master
Output
Created 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] セクションでは、setを使用しますWantedBy の鍵 buildbot-master.service したがって、ワーカーはビルドマスターの後に開始されます。

  1. 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 ワーカーを開始するには:

  1. sudo systemctl start buildbot-worker

を使用します status 正常に起動したことを確認するコマンド:

  1. sudo systemctl status buildbot-worker

繰り返しますが、マスターのように、私たちは見るべきです Active: active (running) そして、次のような出力の最終行。

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

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

  1. sudo systemctl enable buildbot-worker.service
Output
Created 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インターフェイスを保護します。 証明書を生成するには、自分が所有または管理しているドメイン名が必要になることに注意してください。