Ở bài trước chúng ta đi qua về cách cài đặt cơ bản Jenkins và GitLab

– Cài đặt GitLab CE

– Cài đặt Jenkins

Bài viết này, chúng ta thừa nhận sự tồn tại của 02 servers: GitLab và Jenkins

Công việc tiếp theo chúng ta sẽ đi vào bước tích hợp Jenkins và GitLab với nhau. Để khi Developers push code lên GitLab, khi đó Jenkins sẽ thực hiện quá trình pull code, sau đó nó sẽ Build và gửi status hoặc notify về cho GitLab và Developers

Thực hiện Quá trình tích hợp Jenkins và GitLab như sau:

1. Trên GitLab server

  • Cài đặt Jenkins plugin để cho phép tương tác giữa GitLab và Jenkins

Login tài khoản quản trị GitLab chọn “Admin area” → Service Templates

service templates
Ở cửa số bên phải, chúng ta tìm và chọn cài đặt Jenkins CI plugin

Jenkins CI Plugin
Chọn Jenkins CI (Deprecated) cho toàn bộ project trên Jenkins. Vào thông tin kết nối máy chủ Jenkins.

Jenkins CI Deprecated

Để Jenkins có thể tương tác với GitLab API, chúng ta cần tạo tài khoản user với quyền global admin hoặc member có quyền quản trị của Group/Project. Để report trạng thái build, thì cần quyền developer.

– Thiết lập Profile settings user trên Gitlab

Mục đích là lấy “Access Tokens” để cho phép Jenkins có thể kết nối đến GitLab

Login với tài khoản root (hoặc tương ứng với quyền ở trên) → chọn Settings

login root

Chọn “Access Tokens”, sau điền thông tin để tạo Tokens cho GitLab API

Person Access Tokens

Sau khi điền thông tin tên của tokens, tích chọn “api” thì nhấn chọn “Create personal access tokens” để tạo tokens như hình dưới

Access token

Chúng ta save và copy token này sang Jenkins server để sử dụng

2. Cấu hình trên Jenkins Server

Mặc định Jenkins support Github. Chúng ta có thể cài bổ sung plugin Gitlab để sử dụng

Chọn Manage Jenkins Manage Plugins

available plugins

Chuyển sang tab “available” và tích chọn các plugins cần install (Nếu gỡ plugin thì chuyển sang tab installed)

Ở trong hình dưới là tôi đã cài đặt Gitlab plugin

gitlab plugin

– Cấu hình tích hợp GitLab vào Jenkins

Mở Jenkins → Manage Jenkins → Configure System và kéo xuống dưới đến phần “GitLab”

gitlab connection

Nhấn Add và chọn Add → Jenkins

Add Jenkins

Vào thông tin máy chủ GitLab và API token đã tạo ở GitLab → sau đó nhấn Add

Add credentials

Sau đó lựa chọn “Credentials” là với tên “Gitlab Jenkins API” mà ta vừa tạo ở trên → nhấn Test Connection → nếu báo “Success” thì đã tích hợp thành công Jenkins và GitLab.

gitlab jenkins api

Cuối cùng là nhấn “Save” để lưu cấu hình

3. Tạo Jenkins job

Ở GitLab Server chúng ta đã tạo ra project “wordpress”. Trên Jenkins chúng ta sẽ tạo ra một job để và tương tác với project wordpress trên Gitlab

Thực hiện tạo Jenkins Job với tên wordpress:

Truy cập “Manage Jenkins” → sau nhấp tạo “create new jobs” để bắt đầu tạo job

Begin create jenkins job

Giả sử chúng ta tạo job có tên là “wordpress” → Ok

wordpress job

4. Cấu hình Jenkins Job

Trong bài hướng dẫn này, tôi thực hiện cấu hình Jenkins job với một số tùy chọn cơ bản.

Sau khi tạo xong WordPress job, chúng ta thực hiện các tùy chọn cấu hình

Truy cập Jenkins → My Views → Chọn Job sẽ thực hiện cấu hình (ở đây ta sẽ thực hiện cấu hình wordpress job)

wordpress job

Nhấp chọn “wordpress” → Configure để thực hiện cấu hình

4.1 General

Chúng ta mô tả thông tin job. Tích chọn “Discard old builds” → “Max # of builds to keep” vào giá trị là “5”, có nghĩa chúng ta chỉ giữ 05 bản build cuối.

General

4.2 Source Code Management

Chuyển tab “Source Code Management”, chúng ta vào thông tin wordpress repository trên GitLab cần kết nối

Tích chọn “Git” và sau vào đường dẫn Repository URL của WordPress là: http://gitlab.example.local/jenkin/wordpress.git.

Để kết nối đến wordpress repository trên GitLab, chúng ta cần vào thông tin tài khoản quản trị của repository đó.  Trên GitLab, chúng ta đã tạo tài khoản  jenkin/P@ssw0rd và có quyền quản trị repository đó

Add Credentials

Nhấn Add để vào thông tin kết nối.

Quay lại màn hình “Source Code Management” –> Chúng ta sẽ nhấp chọn Credentials với thông tin tài khoản ở trên jenkin/*****

source code management

Bây giờ chúng ta có thể Save lại Job và thực hiện Build thủ công trên Jenkins để kiểm tra quá trình pull code

5. Thực hiện build thủ công trên Jenkins

Quay lại với màn hình chính Jenkins, nhấp chọn vào “wordpress” job vừa tạo và cấu hình cơ bản ở trên. Chúng ta thực hiện build thủ công project bằng việc nhấp chọn “Build Now”

Build Now

Sau khi thực hiện build, ở phần Build History ta thấy xuất hiện trạng thái bản build, được đánh số bằng thứ tự lần build

Build history

Nhấp chọn vào trạng thái bản build ở trên, chọn Console Build để xem quá trình build

console output

Jenkins thực hiện pull code về và lưu vào đường dẫn mặc định trên server “/var/lib/jenkins/workspace/wordpress”

Đến đây, chúng ta biết cách tích hợp Jenkins + GitLab. Sau đó tạo project trên GitLab và thực hiện build thủ công trên Jenkins để pull code.

Trong những phần tiếp theo, thay vì thực hiện build thủ công, chúng ta thực hiện một số tùy chọn để Jenkins tự động thực hiện build khi có code push lên nhánh chính, sau đó khi build thành công code sẽ được đồng bộ sang test server, …

Liên quan

Content retrieved from: https://vnsys.wordpress.com/2018/10/25/tich-hop-jenkins-gitlab/.