CI/CD DevOps

Hướng dẫn triển khai CI/CD với gitlab – phần 1

gitlab-ci-congdonglinux.com

Mở đầu

Gitlab là một chương trình hỗ trợ mạnh mẽ trong quá trình xây dựng CI/CD dành cho các DevOps, một trong những từ khóa đang rất nổi và được nhiều người nhắc đến hiện nay. Vậy CI/CD là gì và làm thế nào chúng ta có thể xây dựng và áp được nó cho môi trường Doanh nghiệp hiện nay. Trong chuỗi bài viết này, tôi sẽ chia sẻ cách để bạn có thể xây dựng được CI (Continuous Integration) và CD (Continuous Delivery) với gitlab-ci.

Chúng ta sẽ lần lượt học cách cài đặt gitlab, gitlab-ci, gitlab-runner, cách để có thể viết được file gitlab-ci.yml dùng để áp dụng cho vòng lặp CI như Build code, unit test, integration test, scan vurnerability code. Bên cạnh đó, ta cũng sẽ học cách tiếp cận những kiến thức liên quan tới CD như docker, k8s, helm, cách triển khai helm như thế nào, cách để quản lý version trên GIT như thế nào để có thể áp dụng cho Production. 

Phần 1: Cài đặt gitlab

1. Yêu cầu:

+ Server: Ubuntu > 16.04
+ CPU: Tối thiểu 4 CPU
+ Ram: Tối thiểu 8G
+ Disk: Tối thiểu 50G

Trong phần cài đặt này, chúng ta sẽ tiếp cận 2 cách. Một là cài đặt bằng Docker, hai là cài đặt trực tiếp lên server. Tùy vào trường hợp mà bạn sẽ lựa chọn cách nào cho môi trường của mình.

2/ Cài đặt Gitlab bằng Docker

2.1/ Cài đặt docker-compose

Đầu tiên, ta sẽ tiến hành setup docker-compose dùng quản lý cấu hình và cài đặt nhanh docker:
Truy cập website : https://github.com/docker/compose/releases/ để lấy phiên bản mới nhất của docker-compose. Sau khi tìm được phiên bản muốn cài đặt, chạy câu lệnh sau:

Ví dụ:

curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose \
&& chmod +x /usr/local/bin/docker-compose \
&& docker-compose --version

hướng dẫn cài đặt cicd - docker-compose

2.2/ Tạo thư mới

Chạy câu lệnh sau để tạo ra các thư mục dùng để lưu trữ dữ liệu cho Gitlab:

mkdir -p /app/gitlab/config /app/gitlab/logs /app/gitlab/data

2.3/ Tạo file cấu hình docker-compose.yml

Copy nội dung sau vào file docker-compose.yml

version: "3.6"
services:
  web:
    container_name: gitlab
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: 'gitlab.local.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.local.com'
    ports:
      - '80:80'
    volumes:
      - '/app/gitlab/config:/etc/gitlab'
      - '/app/gitlab/logs:/var/log/gitlab'
      - '/app/gitlab/data:/var/opt/gitlab'

Trong đó, bạn có thể đổi lại hostname cho phù hợp với môi trường.

2.4/ Khởi tạo môi trường gitlab

Sau khi đã tạo xong file docker-compose.yml, chạy câu lệnh sau để cài đặt gitlab:

docker-compose up -d

Đợi 1 khoảng thời gian cho gitlab bắt đầu quá trình khởi tạo

2.5/ Lấy password root

Sau khi quá trình khởi tạo hoàn tất, dùng câu lệnh sau để lấy password root:
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

2.6/ Truy cập gitlab

Bước tiếp theo, trước khi có thể truy cập được vào gitlab. Bạn cần add DNS hoặc add host cho domain gitlab.
Ví dụ:
vim /etc/hosts
192.168.0.100 gitlab.local.com
hướng dẫn cài đặt cicd - login
Như vậy là hoàn tất cài đặt với Docker, tiếp theo chúng ta sẽ tìm hiểu với cách 2, cài đặt trực tiếp trên server.

3/ Cài đặt Gitlab trực tiếp trên server

Với cách thứ hai này, server phải cần có kết nối internets.

3.1/ Cập nhật và cài các thư viện cần thiết

apt-get update
apt-get install ca-certificates curl openssh-server -y

hướng dẫn cài đặt cicd - library

3.2/ Cài đặt Gitlab

Chạy các câu lệnh sau để tiến hành cài đặt Gitlab trên server thông qua Internetes
cd /tmp && \
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh && \
bash /tmp/script.deb.sh && \
apt-get install gitlab-ce -y
gitlab-rake gitlab:env:info

3.3/ Cấu hình domain

Chờ quá trình cài đặt gitlab hoàn tất, ta sẽ cấu hình lại domain:
vim /etc/gitlab/gitlab.rb
# configure external url
external_url 'http://gitlab.local.com'

3.4/ Reconfig gitlab

Để gitlab nhận được cấu hình mới, tiến hành câu các câu lệnh sau:
gitlab-ctl reconfigure
gitlab-ctl tail

hướng dẫn cài đặt cicd - reconfig

3.5/ Cấu hình DNS và truy cập website

Thực hiện tương tự như ở phần 1, chúng ta có thể add DNS hoặc add local host
hướng dẫn cài đặt cicd - login

4. Kết bài

Như vậy, trong bài này chúng ta đã tiếp cận được 2 cách để có thể cài đặt được Gitlab. Trong bài sau, chúng ta sẽ tìm hiểu về gitlab-runner. Chúc mọi người thành công, trong quá trình thực hành, nếu có vấn đề gì thắc mắc, mọi người có thể để lại bình luận bên dưới. Chúng ta sẽ cùng nhau thảo luận.

        Nguồn:                                     Truy Cập Diễn Đàn Ngay

congdonglinux.com                            forum.congdonglinux.com

   [maxbutton id=”2″ ]                            [maxbutton id=”3″ ]

Mã Bài Viết: 897463

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !