2010-11-11 7 views
9

Tôi đã được giao nhiệm vụ thiết lập môi trường phát triển dựa trên Java trên nhiều máy Windows. Vấn đề là tôi muốn quá trình được thực hiện tự động và dễ dàng trên mỗi máy để các nhà phát triển không phải lãng phí thời gian tải xuống và cài đặt tất cả các ứng dụng khác nhau. Lý tưởng nhất, tôi muốn có những điều sau đây:Cách tự động thiết lập môi trường phát triển?

  • Automated và ban đầu không giám sát cài đặt
  • Một số loại màn hình trên những cài đặt đó sẽ đảm bảo các thiết lập không thay đổi giữa tất cả các máy
  • Một khả năng để đẩy cài đặt/chương trình/nâng cấp mới khi được yêu cầu.

Tôi đã xem xét một số công cụ cho công việc. Hiện tại, cái hứa hẹn nhất có vẻ là Puppet. Tuy nhiên, Puppet không hoạt động tốt trong Windows ... Sử dụng hình ảnh VM sẽ giải quyết yêu cầu đầu tiên, nhưng nó nằm ngoài câu hỏi vì phần cứng khác nhau giữa các máy và nâng cấp sẽ không dễ dàng.

Có ai có kinh nghiệm với loại nhiệm vụ này không? Làm thế nào bạn sẽ giải quyết nó?

+0

Có thể bạn sẽ thích ý tưởng sử dụng Dropbox (hoặc tương tự) cho điều này: bạn có thể chia sẻ phần mềm theo cách này và ít xâm nhập hơn cài đặt không giám sát. Ví dụ, tôi chia sẻ Eclipse như vậy giữa một số sổ ghi chép. –

+0

Tôi vừa mới phát hiện [bản trình bày này] (https://speakerdeck.com/u/wfarr/p/the-setup-managing-an-army-of-laptops-with-puppet) ("Thiết lập") từ GitHub. Chúng tạo ra môi trường phát triển với một số phép thuật Ruby và Puppet. – Nadav

Trả lời

1

Tôi tin rằng đây là sự lãng phí thời gian. Tôi không chắc giá trị kinh doanh ở đây là gì. Hầu hết các nhà phát triển đều thất vọng với các loại quy trình này (bao gồm cả tôi).

Dù sao, Yoxos cung cấp loại dự phòng môi trường phát triển này dựa trên nền tảng nhật thực. Bạn có thể tạo mẫu cho công ty của mình, sau đó có thể được chia sẻ trên các nhóm.

0

Một tùy chọn thú vị có thể là chuẩn hóa trên IDE Eclipse cộng với một bộ bổ trợ (SCM, kiểm tra, phát triển J2EE, v.v.) và sử dụng cơ chế cập nhật Eclipse để triển khai cấu hình giống nhau cho mọi máy. Các phụ thuộc, đồng bộ hóa và tương tự như vậy sẽ được xử lý tự động bởi nền tảng Eclipse.

Điều này có thể không hiệu quả với bạn nếu bạn cần một số công cụ cụ thể không có trong hệ sinh thái Eclipse, nhưng môi trường phát triển cá nhân của tôi là 100% dựa trên Eclipse để chắc chắn có thể thực hiện công việc này.

0

Java có thể được cài đặt trên toàn cầu dễ dàng. Đối với Windows, quản trị viên hệ thống của bạn sẽ đẩy tệp MSI được nhúng vào tệp cài đặt Java JRE. Đối với Ubuntu ssh và đã cài đặt mô-đun sun-java6-jdk.

Sau đó, Eclipse chỉ là vấn đề đẩy ra một bản phân phối đã giải nén cho người dùng.

0

Hầu hết các nhà phát triển đều thích tùy chỉnh thiết lập của họ, vì vậy tôi không chắc chắn điều này sẽ trở nên phổ biến. Bạn có thể đi cạnh chảy máu và xem xét để cung cấp cho họ với các trường hợp trên đám mây (một khi bạn đã có một thiết lập một cách chính xác bạn có thể sao chép đi!).

1

Chức năng thú vị hơn là lấy thông tin từ các máy phát triển. Môi trường phát triển thay đổi và các nhà phát triển khác nhau thử những điều/chương trình/cài đặt mới với tốc độ khó theo kịp nếu nó không tự động. Chỉ có một cấu hình (mô hình tập trung) sẽ giết chết khả năng của bạn để phản hồi thay đổi. Tuy nhiên, điều quan trọng là phải hiểu sự khác biệt giữa các cấu hình.

0

1) Sử dụng hình ảnh đĩa.

hoặc

2) Đặt mọi thứ (Eclipse thực thi ...) vào SVN (hoặc một số kho lưu trữ nguồn khác). Sau đó, họ chỉ cần cài đặt SVN và thanh toán.

4

Tôi đã chơi với Vagrant trong một vài tuần và tìm thấy nó một công cụ tuyệt vời cho việc này. Nó sử dụng Puppet, Chef, hoặc một khách hàng "cung cấp" trên đầu trang của một VirtualBox, và được điều khiển bởi một lệnh đơn giản. Họ có một hướng dẫn tuyệt vời/tour du lịch sẽ cho bạn thấy những gì nó có khả năng.

Ví dụ, hướng tôi đã hướng tuần này là viết kịch bản/mô-đun Puppet để thiết lập máy chủ sản xuất của tôi và tất cả các phần động được xử lý bởi các lớp tham số. Vì vậy, môi trường phát triển của tôi sẽ có cùng một hệ điều hành, các thiết lập tường lửa giống nhau, cùng một daemon, vv - tất cả đều không ảnh hưởng đến hệ điều hành máy chủ của tôi hoặc thực hiện bất kỳ bước cấu hình thủ công nào. Điều đó đang được nói, tôi đã không sử dụng nó trên một cơ sở ngày-to-ngày vì vậy tôi không biết nếu có bất kỳ vấn đề chặn, nhưng tôi đã sử dụng VirtualBox được quản lý bằng tay cho cùng một mục đích mà không gặp rắc rối, do đó, Tôi không lường trước được bất kỳ vấn đề nào.