2008-10-06 33 views
10

Tôi hiện đang làm việc trên một sản phẩm phía máy chủ phức tạp một chút để triển khai trên một máy chủ mới, làm cho nó trở thành một ứng cử viên lý tưởng để thử nghiệm trong máy ảo. Chúng tôi đã sử dụng Hudson như hệ thống CI của chúng tôi, và tôi thực sự muốn có thể triển khai một hình ảnh máy ảo với phần mềm mới nhất và lớn nhất như một tạo phẩm xây dựng.Tạo một hình ảnh máy ảo như một tạo phẩm tích hợp liên tục?

Vậy, làm cách nào để thực hiện điều này một cách chính xác? Phần mềm VM nào được khuyến nghị cho mục đích này? Bao nhiêu kịch bản cần phải được thực hiện để thực hiện điều này? Có vấn đề gì đặc biệt khi sử dụng Windows 2003 Server làm hệ điều hành ở đây không?

+0

Tôi nghĩ rằng "Packer" là đáng nói ở đây. "Trình đóng gói là một công cụ nguồn mở để tạo hình ảnh máy giống hệt nhau cho nhiều nền tảng từ một cấu hình nguồn duy nhất." https://www.thoughtworks.com/radar/techniques/machine-image-as-a-build-artifact https://www.packer.io/intro/index.html –

Trả lời

7

Xin lỗi vì đã từ chối bất kỳ câu trả lời nào được chấp nhận tại đây, nhưng tôi đã tìm ra giải pháp tốt hơn và muốn tóm tắt những gì tôi đã tìm thấy.

Đầu tiên, cả VirtualBox và VMWare Server đều là các sản phẩm tuyệt vời và vì cả hai đều miễn phí, mỗi loại đều đáng giá. Chúng tôi đã quyết định đi với VMWare Server, vì nó là một sản phẩm được thiết lập nhiều hơn và chúng tôi có thể nhận được hỗ trợ cho nó nên chúng ta cần. Điều này đặc biệt quan trọng vì chúng tôi cũng đang xem xét việc phân phối phần mềm của chúng tôi cho khách hàng dưới dạng máy ảo thay vì cài đặt máy chủ đặc biệt, giả định rằng chi phí từ VMWare Player không quá cao. Ngoài ra, có một VMWare scripting interface được gọi là VIX mà người ta có thể sử dụng để trực tiếp cài đặt các tập tin vào máy ảo mà không cần phải cài đặt SSH hoặc SFTP, đó là một lợi thế lớn.

Vì vậy, giải pháp của chúng tôi về cơ bản như sau ... đầu tiên chúng tôi tạo một hình ảnh VM "vani" với hệ điều hành, không có gì khác và kiểm tra nó vào kho lưu trữ. Sau đó, chúng tôi viết một kịch bản hoạt động như trình cài đặt của chúng tôi, đưa các tạo phẩm được tạo bởi Hudson trên máy ảo. Kịch bản lệnh này phải có giao diện để sao chép tệp trực tiếp, qua SFTP và qua VIX. Điều này sẽ cho phép chúng tôi tiếp tục phân phối phần mềm trực tiếp trên máy mục tiêu, hoặc thông qua một VM do chúng tôi lựa chọn. Hình ảnh kết quả này sau đó được nén và phân phối như một tạo phẩm của máy chủ CI.

+0

VMWare Server đã kết thúc cuộc sống ở 2011. VMware Player là phần mềm miễn phí mới, thay thế cho VMWare Server. –

0

Tôi muốn giới thiệu VirtualBox. Nó là miễn phí và có một giao diện lập trình được xác định rõ ràng, mặc dù tôi đã không tự mình sử dụng nó trong các tình huống xây dựng tự động.

1

Bất kể phần mềm máy ảo (tôi có thể khuyên VirtualBox, quá) Tôi nghĩ rằng bạn đang xem xét kịch bản sau đây:

  1. xây dựng được thực hiện
  2. CI ra mắt máy ảo (hoặc nó luôn luôn chạy)
  3. CI sử dụng scp/sftp để tải lên xây dựng vào VM qua mạng
  4. CI sử dụng ssh (nếu có sẵn trên hệ điều hành mục tiêu di động trong VM) hoặc cơ sở lệnh thực hiện từ xa khác để kích hoạt cài đặt trong môi trường VM
1

Máy chủ VMWare miễn phí và một sản phẩm rất ổn định. Nó cũng cung cấp cho bạn khả năng tạo các ảnh chụp nhanh của phần VM và rollback đến phiên bản trước của máy ảo của bạn khi cần thiết. Nó sẽ chạy tốt trên Win 2003.

Về việc cung cấp các lát VM mới cho các bản dựng của bạn, bạn có thể chỉ cần sao chép và qua thư mục chứa các tệp VMWare, thay đổi SID và IP của VM mới và bạn có máy mới. Mất 15 phút tùy thuộc vào kích thước của lát VM của bạn. Không yêu cầu tập lệnh.

1

Nếu bạn sử dụng VirtualBox, bạn sẽ muốn xem xét việc chạy nó không đầu, vì nó sẽ nằm trên máy chủ của bạn. Thông thường, VirtualBox chạy dưới dạng ứng dụng dành cho máy tính để bàn, nhưng có thể khởi động máy ảo từ dòng lệnh và truy cập máy ảo qua RDP.

VBoxManage startvm "Windows 2003 Server" -type vrdp 
0

Chọn VMWare hiện KHÔNG phải là lựa chọn tồi.

Tuy nhiên, Cũng giống như VMWare cung cấp hỗ trợ cho máy chủ VMWare, SUN cung cấp hỗ trợ cho VirtualBOX.

+0

Tôi thấy rằng VirtualBox đã được tài trợ bởi Sun, nhưng khi bạn truy cập trang web, điều gần nhất mà người dùng thấy trên trang hỗ trợ là diễn đàn cộng đồng. Tôi không nghĩ rằng điều này là chính xác giống như VMWare, mà rõ ràng là dành riêng cho sản phẩm cụ thể này. –

0

Bạn cũng có thể thực hiện tác vụ này bằng VMWare Studio, cũng miễn phí. Quy trình cơ bản là: 1. Tạo tệp XML mô tả máy ảo của bạn 2. Sử dụng studio để tạo vỏ. 3. Sử dụng máy chủ VMWare để cung cấp máy ảo.

1

Chúng tôi đang sử dụng Jenkins + Vagrant + Chef cho trường hợp này.

Vì vậy, bạn có thể thực hiện quy trình sau:

  • Version kiểm soát môi trường ảo bằng cách sử dụng các kịch bản dự phòng lang thang (Chef hoặc Múa rối)

  • Xây dựng hệ thống của bạn sử dụng Jenkins/Hudson

  • Chạy tập lệnh Vagrant của bạn để tìm bản phát hành ổn định cuối cùng từ đầu ra CI

  • Sav e trạng thái VM để tái sử dụng trong tương lai.

tham khảo:

vagrantup.com

Các vấn đề liên quan