Làm thế nào để tạo đường ống Jenkins đầu tiên của bạn?

Hướng dẫn từng bước để tạo đường ống dẫn Jenkins


Tại sao đường ống Jenkins?

Phân phối liên tục (CD) là một phần thiết yếu của Vòng đời DevOps.

Nó đảm bảo rằng các nhà phát triển phần mềm / ứng dụng đang tạo luôn sẵn sàng sản xuất. Để điều này xảy ra, bất cứ khi nào mã được cập nhật, nó cần được xây dựng, kiểm tra và triển khai liên tục. Đây là nơi Jenkins Pipeline đi vào bức tranh.

Trong DevOps, Tích hợp liên tục và phân phối liên tục (CI / CD) đạt được thông qua Đường ống Jenkins. Sử dụng Jenkins Pipeline cho CD giúp phân phối phần mềm với các bản phát hành nhanh hơn và thường xuyên hơn. Điều này giúp kết hợp các phản hồi trong mỗi bản phát hành tiếp theo.

Đường ống Jenkins là gì?

Jenkins Pipeline là sự kết hợp của các công việc để cung cấp phần mềm liên tục bằng Jenkins.

Tôi giả sử bạn biết Jenkins là gì. Nếu không thì hãy kiểm tra cái này Khóa học Udemy để làm chủ Jenkins.

Một đường ống Jenkins bao gồm một số trạng thái hoặc giai đoạn và chúng được thực hiện theo trình tự lần lượt. JenkinsFile là một tệp văn bản đơn giản được sử dụng để tạo một đường dẫn dưới dạng mã trong Jenkins. Nó chứa mã bằng ngôn ngữ cụ thể miền Groovy (DSL), dễ viết và dễ đọc với con người.

Bạn có thể chạy riêng JenkinsFile hoặc bạn cũng có thể chạy mã đường dẫn từ Giao diện người dùng web Jenkins. Có hai cách bạn có thể tạo đường ống bằng Jenkins.

  • Tuyên bố – một cách mới để tạo Jenkins Pipeline. Tại đây, bạn viết mã Groovy chứa các khối đường dẫn của đường sắt, được kiểm tra vào SCM (Quản lý mã nguồn)
  • Scripted – cách viết mã Groovy trong đó mã được xác định bên trong các khối nút của nút.

Trước khi chúng tôi vào bản demo, nếu bạn chưa cài đặt Jenkins, vui lòng cài đặt nó trước. Hãy chắc chắn rằng bạn có Jenkins và chạy trên hệ thống của bạn.

Tạo một đường ống Jenkins

Đây là cách một luồng đường ống Jenkins trông như thế nào, bao gồm nhiều giai đoạn giữa các nhà phát triển tạo ra một phần mềm (mã hóa) và phần mềm được phân phối khi sản xuất.

Đường ống Jenkins

Hãy tạo ra một đường ống khai báo.

Trên bảng điều khiển Jenkins, nhấp vào Mục mới. Sau đó, nhập tên vật phẩm, ví dụ, ‘Đường ống đầu tiên và chọn dự án Pip Đường ống. Sau đó bấm vào, OK.

Mục mới - Đường ống Jenkins

Nhấp vào tab Pipeline như trong hình bên dưới và đặt mã JenkinsFile của bạn (Groovy Code) tại đây.

Mã JenkinsFile

đường ống {
đại lý bất kỳ
giai đoạn {
giai đoạn (‘Xây dựng’) {
bước {
tiếng vang ‘Xin chào, GeekFlare. Bắt đầu xây dựng Ứng dụng. ‘
}
}
giai đoạn (‘Kiểm tra’) {
bước {
đầu vào (‘Bạn có muốn tiếp tục không?’)
}
}
giai đoạn (‘Triển khai’) {
song song, tương đông {
giai đoạn (‘Triển khai bắt đầu’) {
bước {
tiếng vang "Bắt đầu triển khai .."
}
}
giai đoạn (‘Triển khai ngay bây giờ’) {
đặc vụ {
bến tàu {
tái sử dụng đúng
hình ảnh ‘nginx
}
}

bước {
tiếng vang "Docker tạo"
}
}
}
}
giai đoạn (‘Prod’) {
bước {
tiếng vang "Ứng dụng đã sẵn sàng"
}

}
}
}

Hãy để tôi giải thích các khối trên.

  • Các đường ống khối bao gồm tất cả các hướng dẫn để xây dựng, kiểm tra và phân phối phần mềm. Nó là thành phần chính của Đường ống Jenkins.
  • An đặc vụ được chỉ định để thực hiện đường ống trên một nút và phân bổ không gian làm việc cho đường ống.
  • Một sân khấu là một khối có các bước để xây dựng, kiểm tra và triển khai ứng dụng. Các giai đoạn được sử dụng để trực quan hóa các quy trình Đường ống Jenkins.
  • Một bươc là một tác vụ duy nhất được thực hiện, ví dụ: tạo thư mục, chạy hình ảnh docker, xóa tệp, v.v..

Mã Groovy ở trên, tôi đang sử dụng cho JenkinsFile. Bất kỳ đại lý có sẵn đang được chỉ định cho các đường ống. Sau đó, tôi đang xác định giai đoạn Build và thực hiện bước echo đơn giản. Sau đó, tôi xác định giai đoạn Kiểm tra trong đó bước hỏi xem bạn có muốn tiếp tục hay không. Sau đó, tôi đã tạo ra một giai đoạn Triển khai, có hai giai đoạn nữa trong đó chạy song song. Giai đoạn bắt đầu triển khai có một bước với lệnh echo và Triển khai bây giờ có một bước kéo hình ảnh docker của Nginx trên nút. Cuối cùng, có một giai đoạn Prod với bước echo đơn giản.

Các đường ống được giải thích ở trên có các giai đoạn có các bước đơn giản để bạn hiểu cách thức hoạt động của nó. Khi bạn tìm hiểu cách tạo Đường ống, bạn có thể thêm độ phức tạp và tạo đường ống phức tạp.

Khi bạn có mã trong tab Đường ống, nhấp vào Áp dụng và Lưu. Cuối cùng, nhấp vào Build Now để bắt đầu xây dựng Đường ống Jenkins bạn vừa tạo.

Xây dựng ngay

Đây là giao diện người dùng sẽ trông như thế nào khi đường ống chạy. Nếu bạn đã thực hiện đúng tất cả các bước, bản dựng của bạn sẽ thành công và nó hiển thị màu xanh lam cho bản dựng (# 27). Nếu có lỗi trong bản dựng, nó sẽ tạo màu đỏ cho bản dựng (# 27).

Xây dựng Jenkins 27

Bây giờ, nhấp vào bản dựng # 27 và sau đó nhấp vào Bảng điều khiển đầu ra để kiểm tra chính xác những gì đã xảy ra trong back-end khi nó chạy.

Xây dựng Jenkins

Đây là cách đầu ra sẽ trông giống như kết thúc bằng một thông báo THÀNH CÔNG.

Bảng điều khiển đầu ra thành công

Bắt đầu bởi người dùng geekflare
Chạy ở cấp độ bền: MAX_SURVIVABILITY
[Đường ống] Bắt đầu đường ống
Nút [Đường ống]
Chạy trên Jenkins trong / var / lib / jenkins / workspace / First Pipeline
[Đường ống] {
Giai đoạn [Đường ống]
[Đường ống] {(Xây dựng)
[Đường ống] tiếng vang
Xin chào, GeekFlare. Bắt đầu xây dựng Ứng dụng.
[Đường ống]}
[Đường ống] // giai đoạn
Giai đoạn [Đường ống]
[Đường ống] {(Kiểm tra)
Đầu vào [Đường ống]
Bạn có muốn tiếp tục?
Tiến hành hoặc hủy bỏ
Được chấp thuận bởi geekflare
[Đường ống]}
[Đường ống] // giai đoạn
Giai đoạn [Đường ống]
[Đường ống] {(Triển khai)
[Đường ống] song song
[Đường ống] {(Chi nhánh: Bắt đầu triển khai)
[Đường ống] {(Chi nhánh: Triển khai ngay)
Giai đoạn [Đường ống]
[Đường ống] {(Bắt đầu triển khai)
Giai đoạn [Đường ống]
[Đường ống] {(Triển khai ngay bây giờ)
[Đường ống] getContext
[Đường ống] isUnix
[Đường ống] sh
[Đường ống] tiếng vang
Bắt đầu triển khai ..
[Đường ống]}
+ docker kiểm tra -f. nginx
[Đường ống] // giai đoạn
[Đường ống]}

Lỗi: Không có đối tượng như vậy: nginx
[Đường ống] isUnix
[Đường ống] sh
+ docker kéo nginx
Sử dụng thẻ mặc định: mới nhất
mới nhất: Kéo từ thư viện / nginx
8d691f585fa8: Kéo lớp fs
5b07f4e08ad0: Kéo lớp fs
abc291867bca: Kéo lớp fs
abc291867bca: Kiểm tra tổng kiểm tra
abc291867bca: Tải xuống hoàn tất
5b07f4e08ad0: Kiểm tra tổng kiểm tra
5b07f4e08ad0: Tải xuống hoàn tất
8d691f585fa8: Kiểm tra tổng kiểm tra
8d691f585fa8: Tải xuống hoàn tất
8d691f585fa8: Kéo hoàn thành
5b07f4e08ad0: Kéo hoàn thành
abc291867bca: Kéo hoàn thành
Tiêu hóa: sha256: 922c815aa4df050d4df476e92daed4231f466acc8ee90e0e774951b0fd7195a4
Trạng thái: Đã tải xuống hình ảnh mới hơn cho nginx: mới nhất
[Đường ống] vớiDockerContainer
Jenkins dường như không chạy trong một container
$ docker chạy -t -d -u 125: 131 -w "/ var / lib / jenkins / không gian làm việc / Đường ống đầu tiên" -v "/ var / lib / jenkins / workspace / First Pipeline: / var / lib / jenkins / workspace / First Pipeline: rw, z" -v "/ var / lib / jenkins / không gian làm việc / Đầu tiên [email được bảo vệ]: / var / lib / jenkins / không gian làm việc / Đầu tiên [email được bảo vệ]: rw, z" -e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** -e ******** -e ******** – e ******** -e ******** -e ******** nginx mèo
$ docker top 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943 -eo pid, comm
[Đường ống] {
[Đường ống] tiếng vang
Docker tạo
[Đường ống]}
$ dừng tàu – thời gian = 1 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
$ docker rm -f 3141793b98f315dc90a57d810068b8eedb6f62debafb9040de06635b558f2943
[Đường ống] // withDockerContainer
[Đường ống]}
[Đường ống] // giai đoạn
[Đường ống]}
[Đường ống] // song song
[Đường ống]}
[Đường ống] // giai đoạn
Giai đoạn [Đường ống]
[Đường ống] {(Sản phẩm)
[Đường ống] tiếng vang
Ứng dụng đã sẵn sàng
[Đường ống]}
[Đường ống] // giai đoạn
[Đường ống]}
[Đường ống] // nút
[Đường ống] Kết thúc đường ống
Kết thúc: THÀNH CÔNG

Jenkins Pipeline ở trên đã tạo ra một hình ảnh docker của Nginx. Bạn có thể xác minh rằng bằng cách chạy lệnh dưới đây. Bạn có thể thấy hình ảnh docker Nginx cũng được liệt kê.

[email được bảo vệ]: ~ $ hình ảnh docker ls
ID REPOSITORY TAG IMAGE KÍCH THƯỚC TẠO
nginx mới nhất 540a289bab6c 2 tuần trước 126MB
httpd mới nhất 7d85cc3b2d80 2 tháng trước 154MB
redis mới nhất f7302e4ab3a8 2 tháng trước 98.2MB
geekflare_mongodb mới nhất 095d17727ca0 3 tháng trước 325MB

Phần kết luận

Tôi hy vọng điều này cung cấp cho bạn một ý tưởng về Đường ống dẫn Jenkins lợi ích và làm thế nào bạn có thể tạo ra một. Trên đây là một minh chứng đơn giản và cách tốt nhất để học là thử xây dựng các đường ống phức tạp.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map