+8

[Jenkins CI/CD - P1] Hướng dẫn dựng 1 node jenkins với docker

Giới thiệu:

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.

Điều kiện cần để cài đặt jenkins :

  • 1 máy chủ / vps có cấu hình tối thiểu 2vcore - 2GB RAM
  • Máy chủ / vps đã được cài đặt docker (kiểm tra xem vps đã được cài docker chưa bằng lệnh sau: docker version hoặc docker -v )

Cài đặt

Chuẩn bị :

  • 1 máy chủ / vps có cấu hình 2vcore - 4GB RAM và được mở sẵn port 8080, bạn nào cấu hình qua nginx thì không cần
  • OS: Ubuntu 20.04 LTS hoặc 22.04 LTS (recommend) có thể dùng các OS khác như CentOS,..

Bước 1: Tạo network trong Docker bằng lệnh tạo network sau:

docker network create jenkins

Sau khi tạo thành công :

image.png

Dùng lệnh sau để kiểm tra: ⇒ nếu có network jenkins như hình thì tạo thành công

image.png

Bước 2: Để thực thi các lệnh Docker bên trong Jenkins, hãy tải xuống và chạy images docker docker:dind bằng lệnh docker run :

docker run --name jenkins-docker --rm --detach \
  --privileged --network jenkins --network-alias docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume jenkins-docker-certs:/certs/client \
  --volume jenkins-data:/var/jenkins_home \
  --publish 2376:2376 \
  docker:dind --storage-driver overlay2

Quá trình chạy image đang diễn ra và xong như hình:

image.png

Kiểm tra với lệnh sau : docker ps

image.png

⇒ nếu thấy status không phải là exited thì container đã chạy thành công và không có lỗi

Bước 3:Tùy chỉnh images Jenkins Docker chính thức bằng cách thực hiện hai bước sau

1.Dockerfile

FROM jenkins/jenkins:2.440.2-jdk17
USER root
RUN apt-get update && apt-get install -y lsb-release
RUN curl -fsSLo /usr/share/keyrings/docker-archive-keyring.asc \
  https://download.docker.com/linux/debian/gpg
RUN echo "deb [arch=$(dpkg --print-architecture) \
  signed-by=/usr/share/keyrings/docker-archive-keyring.asc] \
  https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean docker-workflow"

Tạo file với lệnh vi Dockerfile hoặc nano Dockerfile

image.png

2.Xây dựng images docker mới từ Dockerfile này và gán cho images một tên có ý nghĩa, chẳng hạn như "myjenkins-blueocean:2.426.1-1

docker build -t myjenkins-blueocean:2.440.2-1 .

Sau khi chạy lệnh build:

image.png Kiểm tra images được build chưa chạy lệnh docker images

image.png

Bước 4: Chạy image myjenkins-blueocean:2.426.1-1 của riêng bạn dưới dạng container trong Docker bằng lệnh docker run sau:

docker run --name jenkins-blueocean --restart=on-failure --detach \
  --network jenkins --env DOCKER_HOST=tcp://docker:2376 \
  --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
  --publish 8080:8080 --publish 50000:50000 \
  --volume jenkins-data:/var/jenkins_home \
  --volume jenkins-docker-certs:/certs/client:ro \
  myjenkins-blueocean:2.440.2-1

Chạy lệnh docker ps nếu hiện kết quả chứa 2 container như hình và không có container nào có trạng thái exited là đã hoàn thành việc cài server jenkins

image.png

Bước 5 : Sử dụng lệnh sau để lấy mật khẩu init

docker exec jenkins-blueocean  cat /var/jenkins_home/secrets/initialAdminPassword

image.png

Bước 6 : Sau đó vào web theo địa chỉ http://ip:8080 ở đây sẽ là http://34.142.228.5:8080 sẽ hiện ra giao diện như hình ⇒ copy password ở bước 5 vào sau đó ấn continue

image.png

Bước 7: Ở đây sẽ ứng dụng sẽ hỏi cài những plugin nào thì ta chọn theo mặc định (Install suggested plugin)

image.png

Quá trình cài đặt đang diễn ra

image.png

Bước 8: Tạo tài hoản admin cho jenkins

Ở đây thì tạo tài khoản tùy theo ý của các bạn thôi ⇒ sau đó chọn Save and Continue

image.png

Bước 9 : Cấu hình URL để truy cập ở đây mình để theo mặc định hoặc các bạn có thể dùng nginx để trỏ về tên miền ⇒ chọn Save and Finish

image.png

Bước 10: Sau khi cài đặt các bước thành công thì sẽ ra như này ⇒ Start using Jenkins

image.png Giao diện hiển thị của jenkins

image.png

Bước 11 : Test thử tạo 1 job đơn giản nào

⇒ chọn Create a job

image.png

⇒ Chọn Freestyle project

image.png

⇒ Tìm đến mục Build step ⇒ chọn Excute shell

image.png

Thử 1 vài script shell nào

echo Hello World
docker version
java --version

⇒ chọn Save sau đó chọn Build now

Hiện dấu tích xanh như hình là các chức năng như build image đã hoạt động tốt

image.png

Đến đây là các bạn đã dựng xong 1 node jenkins hoàn chỉnh, bài viết sau mình sẽ hướng dẫn cấu hình để kết nối đến gitlab và CI/CD với jenkins.

Chúc các bạn thành công !!

Tài liệu tham khảo : https://www.jenkins.io/doc/book/installing/docker/


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí