BuildbotのSystemdユニットファイルを作成する方法
序章
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が停止していることを確認します。
- 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]
セクションでは、起動時にマルチユーザーターゲットの一部として開始する必要があることを示します。
[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]
セクションでは、setを使用しますWantedBy
の鍵 buildbot-master.service
したがって、ワーカーはビルドマスターの後に開始されます。
- sudo nano /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インターフェイスを保護します。 証明書を生成するには、自分が所有または管理しているドメイン名が必要になることに注意してください。