X

hướng dẫn cài đặt jenkins cho người mới bắt đầu

Jenkins là gì ?

Jenkins  là công cụ không thể thiếu của các công ty thiết kế website, Jenkins còn mang đến một cách đơn giản hơn trong việc thiết lập môi trường tích hợp hoặc phân phối liên tục cho gần như tất cả các ngôn ngữ và kho mã nguồn nhờ vào việc sử dụng các pipeline hay tự động hóa các tác vụ phát triển thông thường khác. Jenkins không những không loại bỏ nhu cầu tạo script cho từng bước riêng lẻ, mà còn cung cấp thêm khả năng tích hợp nhanh hơn và mạnh mẽ hơn toàn bộ chuỗi công cụ xây dựng, kiểm tra và triển khai dễ dàng hơn là bạn tự xây dựng hoàn toàn.

Jenkins là một opensource dùng để thực hiện chức năng tích hợp liên tục (gọi là CI – Continuous Integration) và xây dựng các tác vụ tự động hóa. Nó tích hợp các source code của các members trong team lại nhanh chóng một cách liên tục, theo dõi sự thực thi và trạng thái thông qua các bước kiểm thử (Integration testunits test). Tất nhiên là nhằm giúp sản phẩm chạy ổn định.

"Đừng phá vỡ công trình xây dựng hàng đêm" là một quy tắc khá phổ biến trong giới phát triển phần mềm khi mà mỗi sáng họ lại phải gửi một phiên bản phần mềm hoàn toàn mới mà họ vẫn thực hiện mỗi ngày cho các tester. Trước khi có Jenkins, điều tốt nhất mà một developer có thể làm để tránh cho các nỗ lực hàng đêm bị phá hủy là cố gắng thực hiện và kiểm tra thật cẩn thận trên máy tính cục bộ trước khi chuyển giao code. Nhưng như vậy cũng có nghĩa là bạn sẽ phải tự mình thử nghiệm các thay đổi mà không có ai khác trao đổi và cam kết. Không có gì đảm bảo chắc chắn rằng nỗ lực hàng đêm sẽ hoàn thiện chỉ trong một lần duy nhất.

Hướng dẫn cài Jenkins mới nhất từng bước một.

Cài Jenkins Bước 1:

sudo yum install java-1.8.0-openjdk-devel

Cài Jenkins Bước 2:

curl --silent --location http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo | sudo tee /etc/yum.repos.d/jenkins.repo

Cài Jenkins Bước 3:

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Cài Jenkins Bước 4:

sudo yum install jenkins

Cài Jenkins Bước 5:

sudo systemctl start jenkins

Cài Jenkins Bước 6:

systemctl status jenkins

Cài Jenkins Bước 7:

sudo systemctl enable jenkins

Cài Jenkins Bước 8:

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload

Thiết lập Jenkins cơ bản trên giao diện.

Thiết lập Jenkins Bước 1:

Chạy lệnh bên dưới để lấy pass nhé:

cat /var/lib/jenkins/secrets/initialAdminPassword

Thiết lập Jenkins Bước 2:

Thiết lập Jenkins Bước 3:

Thiết lập Jenkins Bước 4:

Thiết lập Jenkins Bước 5:

Thiết lập Jenkins Bước 6:

Cấu hình Project đầu tiên

Hướng dẫn cách tạo Project đầu tiên để Deploy source code lên server real bất kì.

Bước 1

Bước 2:

Bước 3:

Code của đoạn trên:

composer install
php artisan key:generate
php artisan cache:clear
sh /home/jenkins/deploy.sh /home/jenkins/jobs/$JOB_NAME/workspace /opt/sources/$JOB_NAME

Mục đích của đoạn code trên là cài đặt và chạy composer vì đang demo source web chạy bằng Laravel, nên check test xem có lỗi gì không rồi mới Deploy lên real.

Đoạn code trong File Deploy:

#! /bin/bash
#set -ex
# delete current source <- if need, not recommend
sshpass -p 'password_server' ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no  root@IP_SERVER "rm -r $2"
# use scp to sync file, $2 is path of source code, $1 is path source code add jenkins
sshpass -p 'password_server' scp -rp $1 root@IP_SERVER:$2

Bước 4:

CI là gì? CD là gì?

CI là viết tắt của Continuous Integration

Là tích hợp liên tục, nhằm liên tục tích hợp các source code của các thành viên trong team lại một cách nhanh chóng. Giúp kiểm soát được tình hình phát triển thông qua các bước kiểm thử unit tests, Integration tests.

Chu trình làm việc

  1. Bước đầu tiên, các thành viên trong team dev sẽ bắt đầu pull code mới nhất từ repo về branch để thực hiện các yêu cầu chức năng nhất định.
  2. Tiếp đó là quá trình lập trình và test code để đảm bảo chất lượng của chức năng cũng như toàn bộ source code.
  3. Thành viên code xong thì sẵn sàng cho việc commit vào branch develop của team.
  4. Thành viên cập nhật code mới từ repo về local repo
  5. Merge code và giải quyết conflict.
  6. Build và đảm bảo code pass qua các tests dưới local.
  7. Commit code lên repo
  8. Máy chủ CI lắng nghe các thay đổi code từ repository và có thể tự động build/test, sau đó đưa ra các thông báo (pass/failure) cho các thành viên.

CD là viết tắt của Continuous Delivery

Continuous Delivery là chuyển giao liên tục, là 1 tập hợp các kỹ thuật để triển khai tích hợp souce code trên môi trường staging ( một môi trường rất giống với môi trường production). Với cách này ta có thể đảm bảo source code được review, kiểm thử một cách tỉ mỉ trước khi deploy lên môi trường production.