Jenkins là một máy chủ tự động hóa được phân nhánh từ dự án Hudson. Jenkins là một ứng dụng dựa trên máy chủ chạy trong một container Java servlet, 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 do Kohsuke Kawaguchi tạo ra, lần đầu tiên được phát hành vào năm 2011 theo Giấy phép MIT và là một phần mềm miễn phí.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt phiên bản Jenkins ổn định mới nhất trên Ubuntu Server 18.04 LTS (Bionic Beaver). Chúng tôi sẽ chạy Jenkins trên tên miền của riêng mình và chúng tôi sẽ cài đặt và cấu hình Jenkins để chạy dưới proxy ngược của máy chủ web Apache.
Cài đặt các gói software-properties-common, sau đó thêm kho lưu trữ java OpenJDK PPA.
Bây giờ hãy cài đặt Java 8 bằng lệnh apt.
Khi quá trình cài đặt hoàn tất, hãy kiểm tra phiên bản java đã cài đặt trên hệ thống.
Và bạn sẽ nhận được thông báo Java OpenJDK 1.8 hiện đã được cài đặt trên hệ thống Ubuntu 18.04.
Lưu ý:
Thêm khóa Jenkins và kho lưu trữ vào hệ thống bằng lệnh bên dưới.
Bây giờ hãy cập nhật kho lưu trữ và cài đặt Jenkins.
Khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ Jenkins và thêm dịch vụ này vào thời gian khởi động.
Jenkins hiện đã hoạt động trên máy chủ Ubuntu 18.04, chạy trên cổng mặc định '8080'. Kiểm tra bằng netstat như bên dưới.
Và bạn sẽ nhận được kết quả như bên dưới.
Đầu tiên, chúng ta sẽ cài đặt Apache và kích hoạt một số mô-đun yêu cầu, sau đó chúng ta sẽ tạo tệp máy chủ ảo có tên miền jenkins.hakase-labs.io cho Jenkins. Vui lòng sử dụng tên miền của riêng bạn tại đây và thay thế nó trong tất cả các tệp cấu hình bất cứ nơi nào nó xuất hiện.
Cài đặt máy chủ web apache2 từ kho lưu trữ Ubuntu.
Khi quá trình cài đặt hoàn tất, hãy bật các mô-đun proxy và proxy_http để chúng ta có thể cấu hình apache làm máy chủ giao diện/proxy ngược cho Jenkins.
Tiếp theo, tạo một tệp máy chủ ảo mới cho Jenkins trong thư mục sites-available.
Dán cấu hình máy chủ ảo bên dưới.
Lưu và thoát, sau đó kích hoạt máy chủ ảo Jenkins bằng lệnh a2ensite.
Khởi động lại dịch vụ Apache và Jenkins.
Quá trình cài đặt và cấu hình apache2 như một proxy ngược cho Jenkins đã hoàn tất.
Thêm các dịch vụ SSH, HTTP và HTTPS vào tường lửa ufw.
Bây giờ hãy khởi động và bật tường lửa ufw.
gõ 'y' và nhấn Enter.
Tường lửa UFW hiện đã được bật và cổng HTTP đã được đã thêm.
Bạn sẽ thấy màn hình yêu cầu bạn nhập mật khẩu quản trị viên ban đầu. Jenkins đã tạo mật khẩu rồi, vì vậy chúng ta chỉ cần hiển thị và sao chép kết quả vào hộp mật khẩu.
Hiển thị mật khẩu quản trị viên ban đầu của Jenkins bằng lệnh cat.
Dán kết quả vào màn hình và nhấp vào 'Tiếp tục'.
Bây giờ chúng ta nên cài đặt một số plugin trong Jenkins để có nền tảng tốt cho việc sử dụng sau này. Chọn 'Cài đặt plugin được đề xuất', nhấp vào đó.
Quá trình cài đặt plugin Jenkins đang diễn ra.
Sau khi quá trình cài đặt plugin hoàn tất, chúng ta cần tạo mật khẩu quản trị viên mới. Nhập tên người dùng quản trị, mật khẩu, email, v.v. và nhấp vào 'Lưu và tiếp tục'.
Đối với cấu hình phiên bản, nhập tên miền Jenkins 'http://jenkins.hakase-labs.io' và nhấp vào nút 'Lưu và hoàn tất'.
Bây giờ hãy nhấp vào nút 'Bắt đầu sử dụng Jenkins'.
Và bạn sẽ được chuyển hướng đến bảng điều khiển quản trị Jenkins.
Quá trình cài đặt và cấu hình Jenkins đã hoàn tất thành công
Jenkins cung cấp một số phương pháp ủy quyền trong phần 'Kiểm soát truy cập'. Chúng ta sẽ sử dụng 'Matrix-based Security' để có thể kiểm soát mọi đặc quyền của người dùng.
Thêm người dùng 'hakase' vào ô 'User/Group' và nhấp vào thêm.
Cấp cho người dùng 'hakase' mọi đặc quyền bằng cách chọn tất cả các tùy chọn và nhấp vào nút 'Save'.
Bạn sẽ được chuyển hướng đến bảng điều khiển và nếu có tùy chọn đăng nhập, chỉ cần nhập tên người dùng quản trị và mật khẩu của bạn.
Từ bảng điều khiển quản trị Jenkins, nhấp vào 'Create New Job'.
Nhập tên công việc. Chúng tôi sẽ sử dụng 'Checking System' ở đây, chọn 'Freestyle Project' và nhấp vào 'OK'.
Đi đến tab 'Build'. Trên 'Add build step', chọn tùy chọn 'Execute shell'.
Nhập lệnh bên dưới vào hộp.
Nhấp vào 'Save'.
Bây giờ bạn đang ở trên trang công việc của công việc 'Project checking system'. Nhấp vào 'Build Now' để thực hiện công việc 'kiểm tra hệ thống'.
Sau khi công việc được thực hiện, bạn sẽ thấy 'Lịch sử Build', hãy nhấp vào công việc đầu tiên để xem kết quả.
Sau đây là kết quả từ công việc được thực hiện bởi Jenkins.
Việc cài đặt và cấu hình công cụ tự động hóa Jenkins với Apache2 làm proxy ngược trên Ubuntu 18.04 đã hoàn tất thành công.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt phiên bản Jenkins ổn định mới nhất trên Ubuntu Server 18.04 LTS (Bionic Beaver). Chúng tôi sẽ chạy Jenkins trên tên miền của riêng mình và chúng tôi sẽ cài đặt và cấu hình Jenkins để chạy dưới proxy ngược của máy chủ web Apache.
Điều kiện tiên quyết
- Ubuntu 18.04
- Quyền root
Chúng tôi sẽ làm gì?
- Cài đặt Java
- Cài đặt Jenkins
- Cài đặt và cấu hình Apache2 làm Proxy ngược cho Jenkins
- Cấu hình Tường lửa UFW
- Cấu hình Jenkins
- Bảo mật Jenkins
- Kiểm tra
Bước 1 - Cài đặt Java
Jenkins là một ứng dụng dựa trên Java, vì vậy chúng ta cần cài đặt Java OpenJDK trên máy chủ. Ở bước này, chúng ta sẽ cài đặt Java 8 từ kho lưu trữ PPA mà chúng ta sẽ thêm trước.Cài đặt các gói software-properties-common, sau đó thêm kho lưu trữ java OpenJDK 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 8 bằng lệnh apt.
Mã:
sudo apt install openjdk-8-jdk -y
Mã:
java -version
Lưu ý:
- Nếu bạn có nhiều phiên bản java trên hệ thống của mình, hãy thay đổi phiên bản java mặc định bằng lệnh bên dưới.
Mã:
sudo update-alternatives --config java
Bước 2 - Cài đặt Jenkins
Jenkins cung cấp kho lưu trữ Ubuntu cho các gói cài đặt và chúng tôi sẽ cài đặt Jenkins từ kho lưu trữ này.Thêm khóa Jenkins và kho lưu trữ vào hệ thống bằng lệnh bên dưới.
Mã:
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
echo 'deb https://pkg.jenkins.io/debian-stable binary/' | tee -a /etc/apt/sources.list
Mã:
sudo apt update
sudo apt install jenkins -y
Khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ Jenkins và thêm dịch vụ này vào thời gian khởi động.
Mã:
systemctl start jenkins
systemctl enable jenkins
Mã:
netstat -plntu
Bước 3 - Cài đặt và cấu hình Apache2 làm proxy ngược cho Jenkins
Trong hướng dẫn này, chúng ta sẽ chạy Jenkins phía sau máy chủ web Apache, chúng ta sẽ cấu hình Apache làm proxy ngược cho Jenkins.Đầu tiên, chúng ta sẽ cài đặt Apache và kích hoạt một số mô-đun yêu cầu, sau đó chúng ta sẽ tạo tệp máy chủ ảo có tên miền jenkins.hakase-labs.io cho Jenkins. Vui lòng sử dụng tên miền của riêng bạn tại đây và thay thế nó trong tất cả các tệp cấu hình bất cứ nơi nào nó xuất hiện.
Cài đặt máy chủ web apache2 từ kho lưu trữ Ubuntu.
Mã:
sudo apt install apache2 -y
Mã:
a2enmod proxy
a2enmod proxy_http
Mã:
cd /etc/apache2/sites-available/
vim jenkins.conf
Mã:
ServerName jenkins.hakase-labs.io ProxyRequests Tắt ProxyPreserveHost Bật AllowEncodedSlashes NoDecode
Order deny,allow Allow from all ProxyPass / http://localhost:8080/ nocanon ProxyPassReverse / http://localhost:8080/ ProxyPassReverse / http://jenkins.hakase-labs.io/
Mã:
a2ensite jenkins
Mã:
systemctl restart apache2
systemctl restart jenkins
Bước 4 - Cấu hình Tường lửa UFW
Trước khi bật tường lửa UFW trên máy chủ Ubuntu, chúng ta cần thêm cổng dịch vụ cơ bản như SSH, HTTP và HTTPS.Thêm các dịch vụ SSH, HTTP và HTTPS vào tường lửa ufw.
Mã:
ufw allow ssh
ufw allow http
ufw allow https
Mã:
ufw enable
Tường lửa UFW hiện đã được bật và cổng HTTP đã được đã thêm.
Bước 5 - Cấu hình Jenkins
Jenkins đang chạy trên tên miền 'http://jenkins.hakase-labs.io'. Mở trình duyệt web của bạn và nhập URL.Bạn sẽ thấy màn hình yêu cầu bạn nhập mật khẩu quản trị viên ban đầu. Jenkins đã tạo mật khẩu rồi, vì vậy chúng ta chỉ cần hiển thị và sao chép kết quả vào hộp mật khẩu.
Hiển thị mật khẩu quản trị viên ban đầu của Jenkins bằng lệnh cat.
Mã:
cat /var/lib/jenkins/secrets/initialAdminPassword
Dán kết quả vào màn hình và nhấp vào 'Tiếp tục'.
Bây giờ chúng ta nên cài đặt một số plugin trong Jenkins để có nền tảng tốt cho việc sử dụng sau này. Chọn 'Cài đặt plugin được đề xuất', nhấp vào đó.
Quá trình cài đặt plugin Jenkins đang diễn ra.
Sau khi quá trình cài đặt plugin hoàn tất, chúng ta cần tạo mật khẩu quản trị viên mới. Nhập tên người dùng quản trị, mật khẩu, email, v.v. và nhấp vào 'Lưu và tiếp tục'.
Đối với cấu hình phiên bản, nhập tên miền Jenkins 'http://jenkins.hakase-labs.io' và nhấp vào nút 'Lưu và hoàn tất'.
Bây giờ hãy nhấp vào nút 'Bắt đầu sử dụng Jenkins'.
Và bạn sẽ được chuyển hướng đến bảng điều khiển quản trị Jenkins.
Quá trình cài đặt và cấu hình Jenkins đã hoàn tất thành công
Bước 6 - Bảo mật Jenkins
Từ bảng điều khiển quản trị Jenkins, chúng ta cần cấu hình các thiết lập bảo mật tiêu chuẩn cho Jenkins, nhấp vào 'Quản lý Jenkins' rồi nhấp vào 'Cấu hình bảo mật toàn cầu'.Jenkins cung cấp một số phương pháp ủy quyền trong phần 'Kiểm soát truy cập'. Chúng ta sẽ sử dụng 'Matrix-based Security' để có thể kiểm soát mọi đặc quyền của người dùng.
Thêm người dùng 'hakase' vào ô 'User/Group' và nhấp vào thêm.
Cấp cho người dùng 'hakase' mọi đặc quyền bằng cách chọn tất cả các tùy chọn và nhấp vào nút 'Save'.
Bạn sẽ được chuyển hướng đến bảng điều khiển và nếu có tùy chọn đăng nhập, chỉ cần nhập tên người dùng quản trị và mật khẩu của bạn.
Bước 7 - Kiểm tra
Trong phần này, chúng ta muốn tạo một công việc đơn giản cho máy chủ Jenkins. Chúng ta sẽ tạo một công việc đơn giản để kiểm tra Jenkins và tìm hiểu tải máy chủ bằng lệnh top.Từ bảng điều khiển quản trị Jenkins, nhấp vào 'Create New Job'.
Nhập tên công việc. Chúng tôi sẽ sử dụng 'Checking System' ở đây, chọn 'Freestyle Project' và nhấp vào 'OK'.
Đi đến tab 'Build'. Trên 'Add build step', chọn tùy chọn 'Execute shell'.
Nhập lệnh bên dưới vào hộp.
Mã:
top -b -n 1 | head -n 5
Bây giờ bạn đang ở trên trang công việc của công việc 'Project checking system'. Nhấp vào 'Build Now' để thực hiện công việc 'kiểm tra hệ thống'.
Sau khi công việc được thực hiện, bạn sẽ thấy 'Lịch sử Build', hãy nhấp vào công việc đầu tiên để xem kết quả.
Sau đây là kết quả từ công việc được thực hiện bởi Jenkins.
Việc cài đặt và cấu hình công cụ tự động hóa Jenkins với Apache2 làm proxy ngược trên Ubuntu 18.04 đã hoàn tất thành công.