Cách thiết lập Jenkins Master và Slave trên Ubuntu

theanh

Administrator
Nhân viên
Jenkins là một máy chủ tự động hóa được phân nhánh từ dự án Hudson. Nó hỗ trợ nhiều hệ thống phần mềm SCM (Quản lý kiểm soát nguồn) bao gồm Git, SVN và Mercurial. Jenkins cung cấp hàng trăm plugin để tự động hóa dự án của bạn. Jenkins cung cấp hỗ trợ cho kiến trúc 'master/slave', cho phép nó lưu trữ một số lượng lớn các bản dựng dự án.

'Master/slave' của Jenkins hoạt động như thế nào?​

Kiến trúc 'master/slave' của Jenkins được sử dụng cho các môi trường dựng phân tán, trong đó khối lượng công việc của các dự án dựng được phân phối cho nhiều nút tác nhân và chúng ta có thể sử dụng các môi trường khác nhau cho mỗi bản dựng.

Trong kiến trúc 'master/slave' của Jenkins, một máy chủ tự biểu diễn như một cài đặt Jenkins cơ bản và xử lý tất cả các tác vụ cho hệ thống dựng. Nút chính Jenkins sẽ được sử dụng để lên lịch công việc, giám sát các nút phụ, phân phối bản dựng đến các nút phụ, ghi lại và biểu diễn kết quả bản dựng và thực thi công việc bản dựng trực tiếp.

Các nút phụ Jenkins được thiết lập để chuyển tải các dự án bản dựng từ nút chính và cần có kết nối được thiết lập giữa nút chính và các nút phụ. Các nút phụ Jenkins có thể chạy trên nhiều hệ điều hành khác nhau như Windows và Linux và không cần cài đặt các gói Jenkins đầy đủ trên đó.

Hướng dẫn này sẽ hướng dẫn chúng ta cách thiết lập kiến trúc chủ-nô của Jenkins bằng phiên bản Ubuntu mới nhất. Chúng ta sẽ học cách thiết lập máy chủ chính Jenkins và thêm các nút Ubuntu khác làm máy phụ Jenkins.

Điều kiện tiên quyết​

  • Máy chủ Ubuntu (Ubuntu 22.04 - Ubuntu 16.04)master - 10.0.15.10
  • slave01 - 10.0.15.21
  • slave02 - 10.0.15.22
[*] Quyền root

Chúng ta sẽ làm gì?​

  1. Cài đặt Jenkins Master
  2. Cấu hình thông tin xác thực Jenkins Master
  3. Cấu hình nút Slave Agent
  4. Thêm nút Slave Agent mới
  5. Chuẩn bị nút Slave Agent để thực hiện bản dựng
  6. Kiểm tra

Bước 1 - Cài đặt Jenkins Master​

Trong hướng dẫn này, chúng tôi sẽ không đề cập đến việc cài đặt Jenkins cơ bản. Một số bài viết trên HowtoForge đề cập đến việc cài đặt Jenkins.
  • Cài đặt Jenkins trên Ubuntu 16.04
  • Cài đặt Jenkins trên Ubuntu 18.04
  • Cài đặt Jenkins trên Ubuntu 20.04
  • Cài đặt Jenkins trên Ubuntu 22.04
  • Cài đặt Jenkins trên CentOS 7
Sau đây là máy chủ chính Ubuntu của chúng tôi với Jenkins được cài đặt trên đó.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22290%22%3E%3C/svg%3E

Bước 2 - Cấu hình Jenkins Master Thông tin xác thực​

Khi bạn cài đặt máy chủ chính Jenkins, chúng ta cần cấu hình chính máy chủ chính. Theo mặc định, có nhiều cách khác nhau để khởi động các nút tác nhân Jenkins, chúng ta có thể khởi chạy các nút tác nhân thông qua SSH, tài khoản quản trị Windows và thông qua Java Web Start (JNLP), hãy chọn cách tốt nhất tùy thuộc vào thiết lập môi trường và hệ điều hành của bạn.

Đối với hướng dẫn này, chúng ta sẽ khởi chạy các nút tác nhân thông qua ssh và chúng ta cần thiết lập thông tin xác thực Jenkins trên máy chủ chính của mình.

Tạo khóa SSH​

Chúng ta sẽ sử dụng xác thực khóa ssh để thiết lập các nút tác nhân của mình, vì vậy chúng ta cần tạo khóa ssh cho người dùng Jenkins, sau đó tải khóa lên thủ công cho từng nút máy chủ bằng cách sử dụng 'ssh-copy-id'.

Trên máy chủ chính Jenkins, hãy đăng nhập vào người dùng Jenkins và tạo ssh chìa khóa.
Mã:
su - jenkins
ssh-keygen
Và bạn sẽ nhận được khóa riêng 'id_rsa' và khóa công khai 'id_rsa.pub' trong thư mục '.ssh'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22503%22%3E%3C/svg%3E

Thiết lập thông tin xác thực trên Jenkins​

Mở bảng điều khiển Jenkins của bạn và nhấp vào menu 'Thông tin xác thực' ở bên trái.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22234%22%3E%3C/svg%3E


Và nhấp vào liên kết tên miền 'toàn cầu'.

Bây giờ hãy nhấp vào 'Thêm thông tin xác thực'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22181%22%3E%3C/svg%3E


Bây giờ hãy chọn phương thức xác thực.
  • Loại: Tên người dùng SSH có khóa riêng
  • Phạm vi: Toàn cầu
  • Tên người dùng: jenkins
  • Khóa riêng: Nhập trực tiếp và dán khóa riêng 'id_rsa' của người dùng Jenkins từ máy chủ chính.
Nhấp vào 'OK'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Và thông tin xác thực Jenkins với phương thức khóa xác thực ssh đã được tạo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22167%22%3E%3C/svg%3E

Bước 3 - Thiết lập các nút Slave​

Bây giờ chúng ta sẽ thiết lập các máy chủ nút Slave bằng cách cài đặt java trên các máy chủ đó và tạo một người dùng Jenkins mới.

Cài đặt Java​

Cài đặt các gói 'software-properties-common' và thêm kho lưu trữ java PPA.
Mã:
sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:openjdk-r/ppa -y
Bây giờ hãy cài đặt java OpenJDK bằng lệnh apt bên dưới.
Mã:
sudo apt install openjdk-8-jdk -y
Sau khi cài đặt hoàn tất, hãy kiểm tra phiên bản java đã cài đặt.
Mã:
java -version
Và bạn sẽ cài đặt Java OpenJDK 1.8 trên hệ thống.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22121%22%3E%3C/svg%3E

Thêm Người dùng Jenkins Mới​

Bây giờ hãy thêm người dùng 'Jenkins' vào tất cả các nút tác nhân.

Chạy lệnh bên dưới.
Mã:
useradd -m -s /bin/bash jenkins
passwd Jenkins
Người dùng 'Jenkins' cho các nút tác nhân đã được đã tạo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22158%22%3E%3C/svg%3E

Sao chép Khóa SSH từ Máy chủ chính sang Máy chủ phụ​

Tiếp theo, chúng ta phải tải khóa 'id_rsa.pub' từ các nút máy chủ chính sang máy chủ phụ. Chúng ta cần tải lên từng nút máy chủ bằng lệnh 'ssh-copy-id' như bên dưới.
Mã:
ssh-copy-id [emailprotected]
ssh-copy-id [emailprotected]
Nhập mật khẩu người dùng Jenkins.

Khóa ssh 'id_rsa.pub' đã được tải lên tất cả các nút tác nhân.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22252%22%3E%3C/svg%3E

Bước 4 - Thêm nút Slave mới​

Trên bảng điều khiển Jenkins, nhấp vào menu 'Quản lý Jenkins' và nhấp vào 'Quản lý nút'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Nhấp vào 'Nút mới'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22193%22%3E%3C/svg%3E


Nhập tên nút 'slave01', chọn 'permanent agent' và nhấp vào 'OK'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22185%22%3E%3C/svg%3E


Bây giờ nhập thông tin chi tiết về nút.
  • Mô tả: máy chủ tác nhân nút slave01
  • Thư mục gốc từ xa: /home/jenkins
  • Nhãn: slave01
  • Phương pháp khởi chạy: Khởi chạy tác nhân slave qua SSH, nhập địa chỉ IP của máy chủ '10.0.15.21', chọn xác thực bằng thông tin xác thực 'Jenkins'.

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Bây giờ hãy nhấp vào nút 'Lưu' và đợi máy chủ chính kết nối với tất cả các nút tác nhân và khởi chạy các dịch vụ tác nhân.

Dưới đây là kết quả khi máy chủ chính được kết nối với tất cả các nút tác nhân.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22292%22%3E%3C/svg%3E


Các nút slave của Jenkins đã được thêm vào máy chủ chính.

Bước 5 - Chuẩn bị các nút Slave Agent để thực hiện bản dựng​

Trong bước này, chúng ta sẽ cấu hình máy chủ chính Jenkins để thực hiện bản dựng trên các nút slave agent.

Nhấp vào menu 'Quản lý Jenkins' rồi nhấp vào 'Cấu hình hệ thống'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Bây giờ hãy chuyển đến phần 'Thiết lập Slave' và xác định tất cả những gì bạn cần như được hiển thị bên dưới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22289%22%3E%3C/svg%3E


Để biết thêm thông tin về 'Thiết lập Slave', hãy truy cập liên kết.

Nhấp vào nút 'Lưu' và bây giờ chúng ta đã sẵn sàng để thực hiện xây dựng trên các nút tác nhân phụ.

Bước 6 - Kiểm tra​

Bây giờ chúng ta muốn tạo một bản dựng đơn giản mới cho Jenkins và thực hiện bản dựng trên các nút tác nhân bot 'slave01' và 'slave02'.

Trên bảng điều khiển Jenkins, nhấp vào menu 'Mục mới'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22290%22%3E%3C/svg%3E


Nhập tên mục, chọn dự án freestyle và nhấp vào 'OK'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Trong phần chung, nhập mô tả công việc và đánh dấu vào tùy chọn 'Hạn chế nơi dự án này có thể chạy'.

Trong 'Biểu thức nhãn', hãy chỉ định nút như 'slave01'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Di chuyển đến phần xây dựng và chọn tùy chọn 'Thực thi shell', nhập lệnh như bên dưới.
Mã:
top -b -n 1 | head -n 10 && hostname
Nhấp vào nút 'Lưu' và bạn sẽ được chuyển hướng đến trang công việc.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Nhấp vào 'Xây dựng ngay' để xây dựng dự án, sau đó nhấp vào mục trong phần 'Lịch sử xây dựng'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Và sau đây là kết quả của tôi.

Xây dựng trên Nút tác nhân 'slave01'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Xây dựng trên nút tác nhân 'slave02'.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22500%22%20height=%22291%22%3E%3C/svg%3E


Cài đặt và cấu hình kiến trúc chủ/tớ của Jenkins và các bản dựng phân tán của Jenkins đã hoàn tất thành công.

Tài liệu tham khảo​

 
Back
Bên trên