Вступление
Buildbot - это система непрерывной интеграции на основе Python для автоматизации процессов сборки, тестирования и выпуска программного обеспечения. В обязательном учебном пособии Как установить Buildbot в Ubuntu 16.04 мы создали + buildbot + `user and group, установил buildmaster в
+ / home / buildbot / master + и рабочий в
+ / home / buildbot / worker + `, затем вручную запустил процессы нового пользователя.
В этом руководстве мы создадим файлы модулей systemd, чтобы система init сервера могла управлять процессами Buildbot.
Предпосылки
-
Один сервер Ubuntu 16.04 с не менее 1 ГБ ОЗУ *, настроенный для пользователя без полномочий root + sudo + и брандмауэра, следуя https://www.digitalocean.com/community/tutorials/initial-server-setup -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 мертв », (показывает 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. Обратите внимание, что для создания сертификата вам понадобится доменное имя, которым вы владеете или управляете.