Thứ ba, 06/03/2018 | 00:00 GMT+7

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à group buildbot , 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:

/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 

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:

Output
May 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
Output
Created 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
/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
Output
Created 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 .


Tags:

Các tin liên quan