Как создать файлы модулей Systemd для Buildbot

Вступление

Buildbot - это система непрерывной интеграции на основе Python для автоматизации процессов сборки, тестирования и выпуска программного обеспечения. В обязательном учебном пособии Как установить Buildbot в Ubuntu 16.04 мы создали + buildbot + `user and group, установил buildmaster в + / home / buildbot / master + и рабочий в + / home / buildbot / worker + `, затем вручную запустил процессы нового пользователя.

В этом руководстве мы создадим файлы модулей systemd, чтобы система init сервера могла управлять процессами Buildbot.

Предпосылки

Выполнив эти требования, вы готовы начать.

Шаг 1 - Остановка запущенных сервисов

Во-первых, если вы все еще вошли в систему как пользователь + buildbot + из предыдущего урока, введите + exit +, чтобы вернуться к пользователю + sudo +.

Как пользователь + sudo +, мы убедимся, что Buildmaster остановлен:

sudo buildbot stop /home/buildbot/master

Затем мы обеспечим остановку работника:

sudo buildbot-worker stop /home/buildbot/worker

В каждом случае мы получим сообщение о том, что «+ buildbot process мертв », (показывает ID процесса, который был остановлен) или « buildmaster не работает +», что указывает на то, что служба не была запущена в первую очередь.

Шаг 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.

Наконец, мы позволим buildmaster запускаться при загрузке:

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 +, чтобы рабочий запускался после buildmaster.

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.

Вышеуказанные выходные данные показывают, что рабочий настроен для запуска при загрузке, но вы можете перезагрузить сервер сейчас, чтобы подтвердить, что все запускается, как ожидалось.

Заключение

В этом руководстве мы добавили файлы модулей systemd, чтобы система инициализации сервера могла управлять процессами Buildbot, и мы позволили как мастеру сборки, так и работнику запускаться при загрузке.

В следующем уроке мы security обеспечим веб-интерфейс с помощью SSL используя Let’s Encrypt, бесплатный сервис сертификатов SSL. Обратите внимание, что для создания сертификата вам понадобится доменное имя, которым вы владеете или управляете.

Related