Cách quản lý Jenkins với Rancher trên Ubuntu 14.04
Tích hợp liên tục hiệu quả (CI) là yêu cầu cốt lõi đối với bất kỳ group phát triển thành công nào. Bởi vì CI không phải là một dịch vụ tuyến trước, nó thường được chạy trên phần cứng hạng trung hoặc phần cứng dư thừa. Việc thêm các bản dựng cho các yêu cầu kéo, triển khai tự động, kiểm tra chấp nhận, tải lên nội dung và một loạt các việc khác có thể nhanh chóng lấn át tài nguyên của máy xây dựng - đặc biệt là gần chạy , khi có rất nhiều commit và hoạt động triển khai.Một bài báo từ Rancher
Trong bài viết này, ta sẽ xây dựng một hệ thống xây dựng phân tán sử dụng Docker để tạo và chạy các hình ảnh Jenkins và Rancher để sắp xếp cụm Docker của ta . Jenkins là một trong những giải pháp CI nguồn mở nổi bật nhất. Docker tự động hóa việc triển khai ứng dụng trong containers phần mềm và Rancher cung cấp một nền tảng hoàn chỉnh để quản lý Docker trong quá trình production .
Bài viết này đề cập đến việc triển khai Jenkins dựa trên cloud độc quyền. Tuy nhiên, một giải pháp thay thế là sử dụng tổng thể Jenkins nội bộ với các server cloud để cung cấp dung lượng tràn khi cần thêm tài nguyên. Đây là nơi Docker và Rancher thực sự tỏa sáng: Docker cung cấp cho ta môi trường triển khai gần như giống hệt nhau trên bất kỳ nút nào và Rancher cho phép ta kết hợp các node từ các nhà cung cấp cloud khác nhau hoặc server nội bộ thành một cụm duy nhất chạy qua VPN của riêng nó. Đến cuối hướng dẫn này, bạn có thể dễ dàng cài đặt triển khai Dockerized Jenkins với số lượng slaver tùy ý.
Yêu cầu
Hướng dẫn này sẽ sử dụng tổng cộng ba Server: một dành cho server Rancher, một dành cho nút tính toán Rancher đang chạy Jenkins master và một dành cho nút tính toán Rancher thứ hai chạy slaver Jenkins.
Ta sẽ tham chiếu đến địa chỉ IP của các server này với your_rancher_server_ip
, your_jenkins_master_ip
và your_jenkins_slave_ip
tương ứng; bất cứ nơi nào bạn thấy các biến này trong hướng dẫn này, hãy thay thế chúng bằng địa chỉ IP thích hợp.
Ban đầu, ta sẽ tạo một Server cho server Rancher; việc tạo hai nút tính toán sẽ được đề cập trong bước sau. Vì vậy, để bắt đầu hướng dẫn này, bạn cần :
- Một server Ubuntu 14.04 với Docker image 1.5.0. Vì Server này sẽ được sử dụng độc quyền làm server Rancher nên bạn có thể chọn kích thước Server nhỏ.
Bạn có thể tìm thấy tùy chọn Docker image 1.5.0 trên trang tạo server , trong tab Ứng dụng bên dưới Chọn hình ảnh . Server này cũng sẽ yêu cầu dữ liệu user tùy chỉnh. Để thêm phần này, hãy nhấp vào Bật Dữ liệu User trong phần Cài đặt Có sẵn và nhập tập lệnh bên dưới vào hộp văn bản xuất hiện. Tập lệnh này yêu cầu Server chạy một server Rancher khi khởi động.
#!/bin/bash docker run -d --name rancher-server -p 8080:8080 rancher/server
Bước 1 - Cấu hình xác thực
Sau khi server Rancher của bạn được tạo, sau một lúc, bạn có thể truy cập vào giao diện user của nó thông qua trình duyệt được trỏ tới http:// your_rancher_server_ip :8080/
. Vì server Rancher được mở trên Internet nên bạn nên cài đặt xác thực. Trong bước này, ta sẽ cài đặt xác thực dựa trên Github OAuth, Đây là kết quả Rancher hiện đang hỗ trợ.
Bạn sẽ thấy một cảnh báo ở góc trên cùng bên phải cho biết Access Control chưa được cấu hình , sau đó là một liên kết tới Cài đặt . Nhấp vào Cài đặt và làm theo hướng dẫn được cung cấp ở đó để đăng ký Ứng dụng mới với Github, đồng thời sao chép Mã ứng dụng client và Bí mật vào các trường văn bản tương ứng.
Khi bạn hoàn tất, hãy nhấp vào Xác thực bằng Github , sau đó Cho phép ứng dụng trong cửa sổ bật lên. Sau khi bạn làm như vậy, trang sẽ reload và hướng dẫn về cách cài đặt OAuth sẽ được thay thế bằng phần Định cấu hình ủy quyền . Thêm bất kỳ user và tổ chức bổ sung nào sẽ được cấp quyền truy cập vào Rancher. Nếu bạn thực hiện bất kỳ thay đổi nào, một nút có nội dung Lưu cấu hình ủy quyền sẽ xuất hiện. Nhấp vào nó khi bạn hoàn tất.
Sau khi bạn lưu cấu hình ủy quyền, cảnh báo ở góc trên cùng bên phải sẽ được thay thế bằng ảnh profile Github của bạn và menu lựa chọn dự án (ban đầu có nội dung Mặc định ). Nhấp vào Mặc định để mở menu lựa chọn dự án, sau đó nhấp vào Quản lý dự án và cuối cùng là Tạo dự án . Thêm một dự án có tên Jenkins, sau đó sử dụng lại menu chọn dự án để chọn dự án Jenkins.
Điều này sẽ giúp giữ cho giao diện Rancher của bạn không gọn gàng bằng cách giữ cô lập các dự án khác nhau mà bạn chạy trên Rancher. Bạn có thể tạo các dự án bổ sung (yêu cầu các node tính toán bổ sung) nếu bạn muốn chạy các dịch vụ khác ngoài Jenkins trên cùng một cụm Rancher. Cũng lưu ý dự án Mặc định dành riêng cho user đã đăng nhập, vì vậy nếu bạn có ý định cấp cho nhiều người quyền truy cập vào các đại lý Rancher của bạn , bạn không nên sử dụng dự án mặc định.
Bước 2 - Đăng ký các node tính toán của Rancher
Bây giờ server và xác thực đã được cài đặt , ta có thể đăng ký một số nút máy tính để chạy triển khai Jenkins của ta .
Lưu ý : Trước khi xác thực, các node tính toán Rancher có thể được đăng ký mà không cần cung cấp mã thông báo đăng ký. Tuy nhiên, vì ta đã cài đặt xác thực , tất cả các tác nhân phải cung cấp mã thông báo đăng ký để được thêm vào cụm.
Trong giao diện user Rancher, nhấp vào Server (trong menu bên trái), sau đó Đăng ký server mới . Sao chép lệnh chạy Docker từ cửa sổ bật lên, sau đó đóng cửa sổ. Quay lại console DigitalOcean và tạo hai server bổ sung với Docker image 1.5.0, giống như server Rancher. Bạn có thể cần chọn kích thước version lớn hơn cho hai server này nếu các bản dựng của bạn sử dụng nhiều tài nguyên.
Đối với dữ liệu user trong cả hai Server này, hãy thêm #!/bin/bash
sau đó là lệnh chạy Docker mà bạn đã sao chép trước đó. Nó sẽ trông tương tự như thế này.
#!/bin/bash sudo docker run -d --privileged -v /var/run/docker.sock:/var/run/docker.sock rancher/agent http://your_rancher_server_ip:8080/v1/scripts/A2DE06535002ECCAAFCD:1426622400000:iniUzPiTnjyFaXs9lCKauvoZOMQ
Chuỗi số và chữ cái dài ở cuối sẽ khác với lệnh của bạn. Hãy đảm bảo bạn đã chọn dự án của bạn trước khi nhấp vào Đăng ký server mới , vì mã thông báo là duy nhất cho mỗi dự án.
Sau một vài phút, bạn có thể thấy cả hai nút tính toán Rancher của bạn trong giao diện user Rancher. Bạn sẽ thấy tên của Server có ghi RancherAgent trong hình ảnh bên dưới.
Bước 3 - Chạy Jenkins Master Node
Bây giờ ta đã sẵn sàng chạy nút chính Jenkins của bạn bằng cách sử dụng hình ảnh Jenkins chính thức.
Để chạy containers , hãy nhấp vào Thêm containers bên dưới nút tính toán bạn muốn sử dụng và thêm các tùy chọn sau:
- Sử dụng Chính làm tên containers , trong hộp văn bản bên cạnh Tên .
- Sử dụng jenkins làm hình ảnh nguồn, trong hộp văn bản bên cạnh Chọn Hình ảnh .
Tiếp theo, nhấp vào + bên cạnh Bản đồ cổng . Điền 8080 vào cả hai trường và để TCP làm giao thức. Điều này sẽ cung cấp cho ta quyền truy cập vào giao diện user web Jenkins. Nhấp vào + và thêm cổng 50000 vào cả hai trường và để TCP làm giao thức. Điều này cho phép các slaver có thể kết nối với chủ.
Tiếp theo, nhấp vào Tùy chọn nâng cao , sau đó nhấp vào tab Tập . Nhấp vào + bên cạnh Tập và chỉ định /var/jenkins_home
trong hộp văn bản xuất hiện. Việc có folder chính Jenkins của bạn trong một ổ đĩa cho phép bạn giữ lại cấu hình của bạn nếu bạn khởi động lại containers và cũng cho phép bạn backup containers của bạn bằng cách sử dụng các ổ đĩa từ một tính năng containers khác.
Cuối cùng, nhấp vào Tạo để bắt đầu containers Jenkins của bạn.
Bước 4 - Chạy Jenkins Slave Node
Trong bước này, ta sẽ chạy slaver Jenkins.
Trỏ trình duyệt của bạn tới http:// your_jenkins_master_ip :8080
để tải giao diện user Jenkins.
Trong giao diện user Jenkins, tạo cấu hình nút bằng cách duyệt đến Quản lý Jenkins ở bên trái, sau đó đến Quản lý nút trong menu tiếp theo và cuối cùng là Nút mới ở bên trái của trang cuối cùng. Trong menu tiếp theo, nhập tên cho slaver của bạn vào hộp văn bản bên cạnh tên Node (và hãy nhớ nó - ta cần nó lại trong giây lát), chọn Dumb Slave làm loại và nhấp vào OK .
Bạn sẽ được chuyển hướng đến một trang có thông tin chi tiết về nút này. Đối với thư mục root từ xa , nhập /var/jenkins
. Đối với phương pháp Chạy , hãy chọn Chạy tác nhân phụ thông qua Java Web Start . Bạn cũng có thể cần cập nhật cài đặt # người thực thi lên cao hơn cài đặt mặc định là 1 để tăng số lượng bản dựng song song được phép trên server . Phần còn lại của cài đặt có thể được để giá trị mặc định của chúng. Nhấp vào lưu để xác nhận cấu hình slaver .
Bây giờ ta đã sẵn sàng chạy containers slaver của bạn . Trong giao diện user Rancher, nhấp vào Thêm containers trên nút tính toán còn lại và thêm các tùy chọn sau:
- Sử dụng Slave 1 làm tên containers , trong hộp văn bản bên cạnh Tên .
- Sử dụng usman / jenkins-slave làm hình ảnh nguồn, trong hộp văn bản bên cạnh Chọn hình ảnh .
Sau đó nhấp vào Tùy chọn nâng cao .Bạn sẽ bắt đầu trong tab Command . Nhấp vào + bên cạnh Các ô môi trường và thêm một mục nhập có Tên là MASTER_HOST
và Giá trị là your_jenkins_master_ip
. Nhấp vào + và thêm một mục nhập khác có Tên là NODE
và Giá trị là tên của slaver Jenkins của bạn như được chỉ định trong menu New Node thông qua giao diện user Jenkins trước đó trong bước này.
Tiếp theo, nhấp vào tab Dung lượng . Nhấp vào + bên cạnh Tập và chỉ định /var/jenkins
trong hộp văn bản xuất hiện.
Cuối cùng, nhấp vào Tạo .
Vùng chứa jenkins-slave
sẽ download một file jar từ Jenkins master và chạy một nút slaver Jenkins. Khi slaver xuất hiện, bạn có thể xem trạng thái của nó sau khi làm mới trang Quản lý nút , nơi ta đã dừng lại trong giao diện user Jenkins. Bạn sẽ thấy nút phụ của bạn có giá trị thời gian phản hồi và không có dấu X màu đỏ trên biểu tượng máy tính như hình dưới đây.
Kết luận
Trong bài viết này, ta đã cài đặt triển khai Jenkins CI bằng Docker và Rancher. Cụm Jenkins của ta hiện đã sẵn sàng để cấu hình thêm và tạo các công việc xây dựng.
Docker cung cấp cho ta một môi trường nhất quán để chạy Jenkins và Rancher cung cấp mạng giữa server và cho phép ta quản lý cụm từ giao diện user web mà không cần phải truy cập thủ công Server hoặc server cung cấp. Sử dụng bộ công cụ này, ta có thể tăng và giảm tài nguyên hệ thống xây dựng của bạn một cách nhanh chóng. Điều này có thể rất cần thiết trong việc duy trì các hệ thống xây dựng không phô trương vào những thời điểm quan trọng như chạy .
Các tin liên quan
Cách cài đặt Sandstorm trên Ubuntu 14.042015-03-19
Cách bảo vệ thông tin đăng nhập tài khoản WordPress của bạn với xác thực hai yếu tố trên Ubuntu 14.04
2015-03-16
Cách cài đặt Ruby on Rails với rbenv trên Ubuntu 14.04
2015-03-13
Cách thiết lập Gog trên Ubuntu 14.04
2015-03-11
Cách thiết lập hệ thống quản lý cấu hình Chef 12 trên server Ubuntu 14.04
2015-03-03
Cách cài đặt Nagios 4 và theo dõi server của bạn trên Ubuntu 14.04
2015-03-02
Cách cài đặt và cấu hình Sphinx trên Ubuntu 14.04
2015-02-18
Cách cài đặt MediaWiki trên Ubuntu 14.04
2015-02-06
Cách cài đặt phpBB trên Ubuntu 14.04
2015-02-04
Cách sử dụng puppet để quản lý chủ đề và plugin WordPress trên Ubuntu 14.04
2015-02-02