강의

멘토링

커뮤니티

BEST
Programming

/

Devops & Infra

Xây dựng CI/CD Pipeline sử dụng Jenkins

Khóa học này đề cập đến pipeline CI (Continuous Integration - Tích hợp liên tục) và CD (Continuous Deployment - Triển khai liên tục), một trong 4 yếu tố cốt lõi cấu thành nên ứng dụng cloud native (MSA, CI/CD, DevOps, Container). Thông qua khóa học này, bạn có thể hiểu và thực hành quy trình cần thiết để xây dựng và triển khai pipeline tự động hóa của riêng mình trên môi trường local và môi trường cloud bằng cách sử dụng Jenkins - công cụ CI/CD.

(4.7) 229 đánh giá

4,758 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

  • Dowon Lee
Jenkins
Jenkins
CI/CD
CI/CD
Ansible
Ansible
Kubernetes
Kubernetes
SonarQube
SonarQube
Jenkins
Jenkins
CI/CD
CI/CD
Ansible
Ansible
Kubernetes
Kubernetes
SonarQube
SonarQube

Tham khảo khi test từ ansible-server đến K8s trên Windows

** Tham khảo khi test từ ansible-server đến K8s trên Windows

Khi kiểm tra bằng cách kết nối với Kubernetes của docker-desktop được cài đặt trên Windows bằng ansible-server, vui lòng kiểm tra thông tin bên dưới.

Khi cố gắng sao chép nội dung của tệp khóa id_rsa.pub sang Windows bằng lệnh ssh-copy-id trong ansible-server, chuỗi ECHO~ có thể được chèn thay vì nội dung của tệp khóa thông thường. Trong trường hợp này, bạn phải sao chép trực tiếp và sử dụng nội dung của tệp khóa id_rsa.pub thay vì sử dụng lệnh ssh-copy-id. Bất kể bạn sử dụng phương pháp nào, kết quả là nội dung của tệp khóa id_rsa.pub được tạo bởi ansible-server đều được lưu trữ trong tệp ủy quyền trong thư mục .ssh của Windows. Một điều cần lưu ý lúc này là tài khoản đăng nhập vào ansible-server và tài khoản đăng nhập vào máy chủ Windows phải khớp nhau, đồng thời tài khoản phải có quyền quản trị viên trong Windows để tránh xảy ra lỗi khi sử dụng các lệnh như docker hoặc kubectl. Không. Tóm lại, bạn cần tạo một tài khoản ansible-server có cùng tên tài khoản với tài khoản bạn sử dụng để đăng nhập vào Windows, sau đó sao chép khóa. Nếu quá trình này không thuận tiện, hãy sử dụng lệnh ssh-copy-id để kết nối mà không cần xác thực khi kết nối qua ssh. Tiếp tục với phần này bằng cách nhập nguyên mật khẩu và trong ansible-playbook, ghi lại thông tin kết nối Windows trong tệp máy chủ của Ansible. bạn sử dụng nó, bạn có thể chạy playbook mà không gặp vấn đề gì.

Vui lòng xem mô tả quá trình thực hiện bên dưới.

  • Hệ điều hành Windows (cài docker-desktop, chạy Kubernetes, IP: 192.168.0.7)

  • docker-server (Bộ chứa Docker, IP: 172.17.0.3)

  • ansible-server (Bộ chứa Docker, cài đặt Ansible, IP: 172.17.0.4)

  1. Đầu tiên, sao chép khóa id_rsa.pub được tạo trong ansible-server sang docker-server bằng lệnh ssh-copy-id. Bạn cũng có thể sao chép khóa docker-server và kiểm tra xem ssh có thể được kết nối mà không cần mật khẩu hay không.

windows_ansible_step1.png

 

  1. Sao chép khóa id_rsa.pub từ máy chủ ansible sang máy chủ windows. (Hình ảnh bên dưới nằm trong docker-server, nhưng bạn có thể tiếp tục trong ansible-server). Tuy nhiên, tài khoản dùng để tạo key id_rsa.pub và tài khoản dùng để truy cập openssh trên Windows phải giống nhau và tài khoản Windows phải có đặc quyền quản trị viên để chạy lệnh docker hoặc kubectl. Tại thời điểm này, nếu bạn cố gắng sao chép khóa id_rsa.pub bằng lệnh ssh-copy-id, nội dung của khóa id_rsa.pub có thể không được sao chép vào tệp ủy quyền_keys của Windows, nhưng chuỗi ECHO~ có thể được sao chép. Trong trường hợp này, bạn có thể sao chép khóa trực tiếp vào tệp ủy quyền của Windows bằng phương pháp COPY-PASTE. (Nếu tệp ủy quyền không tồn tại trong Windows, bạn có thể tự tạo tệp)

windows_ansible_step2.png

 

  1. Trước khi sao chép khóa id_rsa.pub , hãy kiểm tra xem bạn có thể kết nối với máy chủ Windows bằng lệnh ssh trong Windows như minh họa trong bước 4) bên dưới hay không. (Nếu openssh chưa được cài đặt, vui lòng cài đặt nó.)

windows_ansible_step3.png

 

  1. Lần này, vui lòng kiểm tra kết nối với máy chủ openssh trên Windows bằng lệnh ssh trực tiếp từ ansible-server.

windows_ansible_step4.png

 

  1. Như đã giải thích ở số 2 ở trên, khi sao chép key id_rsa.pub , key id_rsa.pub phải được tạo bằng cùng một tài khoản với tài khoản Windows. Nếu quá trình này bất tiện, hãy nhập thông tin kết nối Windows vào tệp máy chủ Ansible như hình. bên dưới. Chúng tôi khuyên bạn nên ghi lại và sử dụng nó. Vì sẽ có nhiều trường hợp xử lý bằng lệnh ansible hơn là cố gắng kết nối trực tiếp bằng lệnh ssh, hãy lưu thông tin kết nối trực tiếp vào tệp máy chủ ansible và sử dụng nó mà không cần tiếp tục tác vụ ssh-copy-id. Trong phần này, bạn có thể lưu thông tin tài khoản truy cập Windows (tôi đã nhập thông tin tài khoản người dùng và mật khẩu với đặc quyền của quản trị viên) trong các trường ansible_user và ansible_password. Sau khi hoàn thành thông tin tệp máy chủ ansible, hãy sử dụng lệnh ansible sau để kiểm tra xem mô-đun ping có chạy bình thường hay không.

    • cửa sổ ansible -m in_ping -u [tài khoản windows]

windows_ansible_step5.png

 

  1. Trước khi chạy ansible-playbook, hãy kiểm tra xem tệp kê khai K8s được lưu trữ ở đâu trong Windows và kiểm tra tài nguyên Kubernetes bằng lệnh kubectl. Trong ví dụ bên dưới, chúng tôi đang kiểm tra danh sách Dịch vụ của K8s và xác nhận rằng các dịch vụ do người dùng tạo không phải là các dịch vụ được tạo theo mặc định sẽ không hiển thị.

windows_ansible_step6.png

 

  1. Kiểm tra nội dung của tệp playbook trong ansible-server. Vì lệnh sẽ được chuyển tới Windows, hãy sử dụng lệnh win_command như trong ví dụ bên dưới (đối với MacOS, hãy sử dụng lệnh lệnh) và chỉ định vị trí của tệp kê khai mà bạn muốn chạy dưới dạng đường dẫn tuyệt đối. Bạn có thể chạy tệp playbook và kiểm tra kết quả thực hiện.

windows_ansible_step7.png

 

  1. Cuối cùng, bạn có thể sử dụng lệnh kubectl để kiểm tra xem các tài nguyên được thực thi trong Windows có được phản ánh đúng hay không.

windows_ansible_step8.png

 

Nếu bạn có thêm bất kỳ câu hỏi nào về những điều trên, vui lòng để lại tin nhắn trên bảng câu hỏi.

Tôi hy vọng điều này sẽ giúp ích cho những ai đang quan tâm đến vấn đề này.

Cảm ơn

Bình luận