- vừa được xem lúc

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

0 0 22

Người đăng: Hoàng Nguyên

Theo Viblo Asia

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.426.1-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.426.1-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.426.1-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/

Bình luận

Bài viết tương tự

- vừa được xem lúc

[Trick] Tạo script jenkin tự động thông báo khi build job thành công

Dạo gần đây, tớ hay phải build 1 lúc nhiều job trên jenkin. Thi thoảng phải đảo qua xem job đó đã build xong chưa, khá là mất thời gian, thi thoảng lại còn quên nên QA ra vã ‍.

0 0 26

- vừa được xem lúc

Build Web Server : Chuẩn bị nguyên liệu

Chuẩn bị nguyên liệu trước khi "nấu ăn" :. *Mình là kiểu người muốn chuẩn bị hoàn tất nguyên liệu trước khi thực hiện nên mình sẽ note lại vài thứ mình cần chuẩn bị trước khi bắt đầu build 1 Web Serve

0 0 5

- vừa được xem lúc

Một số thủ thuật hay ho với Linux (1).

1. Ctrl + x + e. Giữ CTRL, nhấn phím x rồi nhấn phím e. Thao tác này sẽ mở ra editor mặc định (echo $EDITOR | $VISUAL để kiểm tra) chứa sẵn.

0 0 45

- vừa được xem lúc

How to deploy Amplication app to DigitalOcean

This article shows you the way to deploy an app generated by Amplication to DigitalOcean. Amplication provides the dockerfile to use containers for deployment, but this blog explains how to do it manu

0 0 53

- vừa được xem lúc

Có gì mới trong Laravel 9.0?

Laravel v9 là phiên bản LTS tiếp theo của Laravel và ra mắt vào tháng 2 năm 2022. Trong bài viết này, mình xin giới thiệu một vài tính năng mới trong Laravel trong Laravel 9.

0 0 78

- vừa được xem lúc

Xây dựng trang web tra cứu ảnh sử dụng phân cụm Spectral Clustering

1. Tổng quan tra cứu ảnh. 1.1.

0 0 46