Cách tạo tệp đơn vị Systemd cho Buildbot
Buildbot là một hệ thống tích hợp liên tục dựa trên Python để tự động hóa các quy trình xây dựng, kiểm tra và phát hành phần mềm. Trong hướng dẫn yêu cầu , Cách cài đặt Buildbot trên Ubuntu 16.04 , ta đã tạo một user và groupbuildbot
, cài đặt buildmaster trong /home/buildbot/master
và worker trong /home/buildbot/worker
, sau đó bắt đầu thủ công các quy trình cho user mới . Trong hướng dẫn này, ta sẽ tạo các file đơn vị systemd để hệ thống init của server có thể quản lý các quy trình Buildbot.
Yêu cầu
Một server Ubuntu 16.04 với ít nhất 1 GB RAM , được cấu hình với user sudo
không phải root và firewall theo hướng dẫn cài đặt server ban đầu Ubuntu 16.04 với Buildbot được cài đặt và cấu hình theo hướng dẫn sau:
Khi bạn đã hoàn thành các yêu cầu này, bạn đã sẵn sàng để bắt đầu.
Bước 1 - Dừng các dịch vụ đang chạy
Đầu tiên, nếu bạn vẫn đăng nhập với quyền user buildbot
từ hướng dẫn trước, hãy nhập exit
để quay lại user sudo
.
Với quyền là user sudo
, ta sẽ đảm bảo Buildmaster đã dừng lại:
- sudo buildbot stop /home/buildbot/master
Sau đó, ta sẽ đảm bảo công nhân cũng ngừng hoạt động:
- sudo buildbot-worker stop /home/buildbot/worker
Trong mỗi trường hợp, ta sẽ nhận được phản hồi rằng buildbot process 1234 is dead
, (hiển thị ID quy trình đã bị dừng) hoặc buildmaster not running
, điều này cho thấy dịch vụ không chạy ngay từ đầu.
Bước 2 - Tạo file đơn vị xây dựng
Tiếp theo, ta sẽ tạo và mở một file có tên là buildbot-master.service
:
- sudo nano /etc/systemd/system/buildbot-master.service
Trong phần [Unit]
, ta sẽ thêm mô tả và yêu cầu mạng phải khả dụng trước khi bắt đầu dịch vụ. Trong phần [Service]
, ta sẽ chỉ định rằng quy trình chạy với quyền là user và group buildbot
mà ta đã tạo, xác định folder làm việc và cung cấp các lệnh sẽ được sử dụng để khởi động hoặc reload chương trình chính. Cuối cùng, trong phần [Install]
, ta sẽ cho biết nó sẽ bắt đầu như một phần của mục tiêu nhiều user khi khởi động:
[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
Khi ta đã thêm nội dung, ta sẽ lưu và thoát, sau đó kiểm tra công việc của ta .
- sudo systemctl start buildbot-master
Ta sẽ sử dụng lệnh status
của systemd để kiểm tra xem nó đã khởi động thích hợp chưa:
- sudo systemctl status buildbot-master
Đầu ra phải chứa Active: active (running)
và dòng cuối cùng sẽ giống như sau:
OutputMay 08 21:01:24 BuildBot-Install systemd[1]: Started BuildBot master service.
Cuối cùng, ta sẽ cho phép administrator xây dựng bắt đầu khi server khởi động :
- 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.
Bây giờ người quản trị xây dựng đã được cài đặt , ta sẽ thêm công nhân.
Bước 3 - Tạo file đơn vị công nhân
Ta sẽ tạo và mở một file có tên là buildbot-worker.service
được cấu hình giống như buildbot-master.service
nhưng với các giá trị cần thiết để khởi động worker. Trong [Install]
phần, ta sẽ sử dụng cài đặt các WantedBy
key dẫn đến buildbot-master.service
nên người lao động sẽ được bắt đầu sau khi buildmaster.
- 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
Ta sẽ lưu và thoát, sau đó sử dụng systemctl
để khởi động worker:
- sudo systemctl start buildbot-worker
Ta sẽ sử dụng lệnh status
để xác minh nó đã bắt đầu thành công:
- sudo systemctl status buildbot-worker
, giống như master, ta sẽ thấy Active: active (running)
và dòng kết quả cuối cùng trông giống như sau:
Output. . . May 08 21:54:46 BuildBot-Install systemd[1]: Started BuildBot worker service.
Cuối cùng, ta sẽ cho phép công nhân bắt đầu khi server khởi động :
- 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.
Kết quả ở trên cho biết rằng worker được cấu hình để bắt đầu khi server khởi động , nhưng bạn có thể cần khởi động lại server ngay bây giờ để xác nhận mọi thứ bắt đầu như mong đợi.
Kết luận
Trong hướng dẫn này, ta đã thêm các file đơn vị systemd để hệ thống init của server có thể quản lý các quy trình Buildbot và ta đã cho phép cả buildmaster và worker bắt đầu khi server khởi động .
Trong hướng dẫn tiếp theo, ta sẽ bảo mật giao diện web bằng SSL bằng Let's Encrypt , một dịch vụ certificate SSL miễn phí. Lưu ý bạn cần một domain mà bạn sở hữu hoặc kiểm soát để tạo certificate .
Các tin liên quan