Hướng dẫn cài đặt và sử dụng jenkins

Jenkins là một công cụ tích hợp liên tục mã nguồn mở được viết bằng Java. Jenkins cung cấp các dịch vụ tích hợp tùy chỉnh để phát triển phần mềm. Jenkins là một hệ thống dựa trên máy chủ, được sử dụng bởi nhiều nhóm phát triển.

Câu hỏi: Tại sao tôi nên sử dụng Jenkins?

Bạn nên sử dụng Jenkins nếu muốn tăng tốc Vòng đời phát triển phần mềm (SDLC). Jenkins cho phép bạn tích hợp xây dựng, triển khai và thử nghiệm trên nhiều môi trường khác nhau, đồng thời giảm thời gian chờ đợi cho các nhóm phát triển của bạn. Cuối cùng, vì cho phép bạn liên tục tích hợp, nên Jenkins rất phù hợp với phương pháp DevOps và phương pháp Agile sử dụng các chu kỳ lặp nhanh.

Câu hỏi: Tại sao tôi nên chạy Jenkins trên AWS?

AWS cung cấp tài nguyên cơ sở hạ tầng đáng tin cậy, có thể mở rộng và an toàn, lý tưởng để chạy các ứng dụng như Jenkins. Bằng cách chạy Jenkins trên môi trường điện toán AWS, bạn chỉ trả tiền cho những gì mình sử dụng và bạn có thể tăng hoặc giảm dung lượng sao cho phù hợp với nhu cầu cụ thể của mình.

Câu hỏi: Tôi sẽ sở hữu môi trường Jenkins của mình chứ?

Đúng vậy - tất cả các tài nguyên được tạo khi thực hiện hướng dẫn Bắt đầu này vẫn là của bạn và sẽ nằm trong tài khoản của bạn. Chúng sẽ tồn tại cho đến khi bạn quyết định chấm dứt phiên bản Amazon EC2.

Câu hỏi: Chi phí của Jenkins là bao nhiêu?

Jenkins là phần mềm mã nguồn mở miễn phí. Chi phí duy nhất của bạn là cơ sở hạ tầng cơ bản mà Jenkins chạy. Để biết thêm thông tin về chi phí, vui lòng xem mục Dịch vụ được sử dụng và chi phí.

Câu hỏi: Làm thế nào tôi có thể bảo mật Jenkins trên AWS?

Bạn nên sử dụng Nhóm bảo mật và sử dụng mật khẩu mạnh. Bạn cũng nên đảm bảo rằng bản cài đặt EC2 và Jenkins của bạn được cập nhật với các bản vá bảo mật mới nhất. Nhóm bảo mật hoạt động như tường lửa ảo, trạng thái kiểm soát lưu lượng cho một hoặc nhiều trường hợp. Nếu có thể, hãy thu hẹp phạm vi IP để chỉ còn các địa chỉ IP nguồn có liên quan. Không mở bất kỳ cổng TCP hoặc UDP bên ngoài nào (TCP 80 và 8080 là đủ). Khi thiết lập mật khẩu cho Jenkins, hãy thực hiện theo các biện pháp thực hành tốt nhất về mật khẩu thông thường và sử dụng các ký tự chữ-chữ số viết thường và viết hoa ngoài các ký hiệu (ví dụ: /, ., !, *…). Bạn có thể đảm bảo rằng phiên bản Amazon Linux của bạn đã cài đặt các gói mới nhất bằng cách chạy cập nhật yum. Thao tác này cũng sẽ cập nhật Jenkins nếu bạn đã cài đặt bằng Yum, theo hướng dẫn trong mục này.

Câu hỏi: Tôi có thể chạy Jenkins trong một mạng con riêng không?

Bạn có thể cài đặt Jenkins trên phiên bản EC2 là một phần của mạng con công cộng hoặc riêng. Nếu muốn đặt phiên bản vào một mạng con riêng, bạn sẽ cần đảm bảo rằng bạn có thể truy cập vào giao diện người dùng của Jenkins. Nếu đang kết nối qua Internet, bạn có thể chọn tạo nhóm mục tiêu Jenkins và sử dụng Application Load Balancer để tạo điểm cuối công khai cho phiên bản được lưu trữ riêng tư của bạn. Nếu bạn đang kết nối từ trung tâm dữ liệu của riêng mình, bạn sẽ muốn thiết lập VPN hoặc kết nối với Jenkins thông qua Direct Connect.

Câu hỏi: Làm thế nào tôi có thể thay đổi quy mô Jenkins?

Có một số cách bạn có thể đảm bảo rằng Jenkins sẽ theo kịp nhu cầu CI/CD của bạn. Một cách đơn giản là chia tỷ lệ theo chiều dọc của phiên bản EC2 bằng cách thay đổi kích thước phiên bản. Một cách khác là định cấu hình Jenkins Amazon EC2 Container Service Plugin để triển khai các tác vụ cho các nhiệm vụ phụ của Jenkins trên cụm ECS.

Jenkins là Open-source Continuous Integration Server được viết bằng Java hỗ trợ việc tự động hóa quá trình tích hợp liên tục của phần mềm. Jenkins được sử dụng xuyên suốt vòng đời của phần mềm từ việc thiết kế, kiểm tra tới việc triển khai phần mềm và còn nhiều hỗ trợ nhiều giai đoạn khác trong vòng đời của phần mềm.

Yêu cầu

  • Một VPS/Server sử dụng hệ điều hành Ubuntu 20.04.
  • Tài khoản có quyền sudo hoặc root.
  • OpenJDK được cài đặt sẵn, nếu không có cũng không sao, mình sẽ chỉ các bạn cài đặt ở bên dưới.

Bước 1: Chuẩn bị các gói cài đặt cần thiết và cài đặt Jenkins.

Đầu tiên chúng ta cần thêm key của Repository Jenkins vào hệ thống :

Sau khi Add Key Repository Jenkins thì sẽ cần thêm địa chỉ Repository Jenkins vào /etc/apt/sources.list.d/

Tiếp theo chúng ta sẽ chạy Update để cập nhập lại package index file từ sources.list vừa tạo ở trên :

Cuối cùng là tiến hành cài đặt Jenkins.

Lưu ý: Nếu VPS/Server của bạn chưa được cài đặt OpenJDK thì trước khi cài đặt Jenkins ta cần chạy thêm câu lệnh sau để cài đặt OpenJDK

Tới đây là chúng ta đã cài đặt xong Jenkins, chúng ta chỉ cần mở Firewall Port 8080 do Jenkins sử dụng port này và khởi động Jenkins lên là có thể sử dụng. Cụ thể chúng ta sẽ làm như sau:

  • Khởi động Jenkins và cấu hình Jenkins tự động khởi động cùng hệ thống
  • Mở Port 8080 trên Firewall

Như vậy là Jenkins đã được cài đặt và hoạt động trên VPS/Server, tiếp theo mình sẽ hướng dẫn cách cấu hình cơ bản cho Jenkins để Jenkins có thể hoạt động.

Bước 2 : Cấu Hình Jenkins.

Để tiến hành cấu hình cơ bản cho Jenkins thì chúng ta cần truy cập vào trang Admin mặc định của Jenkins với đường link URL sau:

http:<Địa chỉ IP/Server của bạn>:8080/login?from=%2F

Hướng dẫn cài đặt và sử dụng jenkins

Khi truy cập vào đường link để bảo mật thì Jenkins sẽ yêu cầu nhập mật khẩu được Jenkins tạo ra khi Jenkins. Chúng ta sẽ đọc file /var/lib/jenkins/secrets/initialAdminPassword để lấy mật khẩu.

Sau khi nhập mật khẩu Jenkins sẽ hỏi bạn muốn cài đặt mặc định với Plugin được Jenkins khuyến nghị hay chọn các Plugin theo ý muốn.

Hướng dẫn cài đặt và sử dụng jenkins

Mình sẽ chọn cài theo mặc định và quá trình cài đặt sẽ diễn ra.

Hướng dẫn cài đặt và sử dụng jenkins

Quá trình cài đặt hoàn tất, Jenkins sẽ yêu cầu tạo tài khoản Admin cho Jenkins.

Hướng dẫn cài đặt và sử dụng jenkins

Bước cuối thì ta cần cấu hình URL đăng nhập cho Jenkins, ở đây thì chúng ta nên đổi đường dẫn tránh mặc định để tăng độ bảo mật cho Jenkins như cấu hình Jenkins listen local và Nginx làm Reverse Proxy chẳng hạn. Vì là demo để viết hướng dẫn nên mình sẽ để mặc định.

Giao diện khi việc cài đặt Jenkins hoàn tất.

Hướng dẫn cài đặt và sử dụng jenkins

Như vậy bài viết hướng dẫn cài đặt Jenkins trên Ubuntu 20.04 của mình tới đây là hết. Hy vọng các bạn thành công trong việc cài đặt cũng như áp dụng được Jenkins vào trong thực tế, công việc.