Muốn phân phối máy ảo Linux cho sinh viên làm việc trên


25

Tôi có sinh viên chạy Mac và Windows. Mỗi học kỳ, luôn có rất nhiều câu hỏi về cách cài đặt công cụ CÂU XÔNG. Tôi muốn tạo một máy ảo Linux duy nhất (tôi đã thử VirtualBox) và phân phối hình ảnh. Bằng cách đó, tất cả các công cụ đều được cài đặt sẵn và mọi người đều sử dụng Linux.

Câu hỏi là, với những người có phần cứng đồ họa khác nhau, làm thế nào để làm việc này? Hay nó hoạt động? Và nếu có, làm thế nào để tôi phân phối nó? Họ có phải cài đặt VirtualBox không, sau đó tải một số tệp tôi cung cấp cho họ hoặc tôi có thể dễ dàng tạo một trình cài đặt không?


13
Virtualbox cho phép bạn xuất một Thiết bị . Tập tin đó có thể được nhập vào bất kỳ phần mềm ảo hóa nào (VMWare, Virtualbox, v.v.) và tự cấu hình cho phần cứng cục bộ. Đây dường như là những gì bạn đang yêu cầu. Không thể cài đặt một trình cài đặt duy nhất, vì bạn không thể chạy cùng một chương trình trên WIndows (.exe) và Mac (.app).
GiantTree

Tôi có phải cài đặt lại cách khác không, hoặc tôi có thể lưu máy ảo của mình dưới dạng thiết bị không?
Dov

Bạn có thể lưu bất kỳ máy ảo nào dưới dạng Công cụ trong Virtualbox. Chỉ cần làm: Tệp -> Xuất thiết bị Ctrl + E
GiantTree

Một số người đề xuất Vagrant như một giải pháp vì kích thước tệp có thể là một vấn đề trong quá trình tải xuống tệp thiết bị của bạn. Sự thật là, nếu bạn cài đặt một môi trường tối giản và sử dụng việc cung cấp mỏng khi tạo HD ảo, bạn có thể sẽ có một tệp 100MB rất ít có thể làm được. Chỉ muốn thêm rằng trong đó vì không có ai khác giải quyết nó.
Geruta

1
@gronostaj: Nghe có vẻ như VM nghèo này đã bị bắt trong ma trận! : O
Zaibis

Câu trả lời:


24

Tôi thích câu trả lời trung tâm của Vagper , nhưng như bạn có thể thấy từ các bình luận ở đó, ý kiến ​​cá nhân của tôi là để giữ cho nó đơn giản. .

Điều đó nói rằng, bạn hỏi điều này:

Câu hỏi là, với những người có phần cứng đồ họa khác nhau, làm thế nào để làm việc này? Hay nó hoạt động? Và nếu có, làm thế nào để tôi phân phối nó? Họ có phải cài đặt VirtualBox không, sau đó tải một số tệp tôi cung cấp cho họ hoặc tôi có thể dễ dàng tạo một trình cài đặt không?

Chuyển sang DevOps

Tôi không chắc chắn những gì bạn đang dạy hoặc làm hoặc những gì bạn mong đợi các sinh viên của mình thoát khỏi toàn bộ bài tập này, nhưng rất nhiều mối quan tâm mà bạn đang truyền tải vào vương quốc DevOps (phát triển và vận hành) và bạn có thể muốn để xem xét trộn khái niệm đó vào những lời dạy của bạn.

Bây giờ tôi không nghĩ rằng toàn bộ khái niệm về DevOps cần được truyền đạt, nhưng trong tâm trí tôi, việc bạn tạo ra một VirtualBox OVA ổn định mà sau đó bạn truyền lại cho sinh viên và yêu cầu họ sử dụng trên máy gia đình / trường học của họ chắc chắn sẽ mở ra một cánh cửa câu hỏi về cách một người nên đối phó với các thiết lập phần cứng / hệ thống khác nhau và cách người ta có thể thích nghi.

Vì vậy, lời khuyên của tôi dành cho bạn là khuyến nghị mạnh mẽ rằng sinh viên nên sử dụng VirtualBox OVA mà bạn sẽ thiết lập, nhưng cũng nên mở để cho phép sinh viên tự cài đặt các công cụ. Chú ruột của tôi nói với tôi 95% người khác, nhiều sinh viên sẽ vui vẻ và dễ dàng sử dụng phương pháp VirtualBox OVA, nhưng bạn không thể hy vọng nó hoàn hảo 100%.

Có lẽ cuối cùng, bạn chỉ nên có một số yêu cầu cơ bản cho việc sử dụng công cụ khóa học và linh hoạt trong việc thực hiện chúng.

Hãy linh hoạt về cách sử dụng các công cụ

Ví dụ, tôi thực hiện nhiều hoạt động phát triển PHP và quản trị hệ thống / DevOps liên quan đến phát triển PHP. Và vì tôi đang dùng Mac nên tôi thích sử dụng MAMP để phát triển cục bộ. Nhưng tôi làm việc với các nhà phát triển sử dụng Linux hoặc Windows để phát triển. Heck, một số người thích sử dụng Vagrant kết hợp với VirtualBox cho nhu cầu phát triển LAMP của họ. Và thái độ của tôi là tôi không quan tâm thiết lập hệ điều hành cơ bản của họ là gì. Miễn là phiên bản PHP của họ phù hợp với các phiên bản mà khách hàng của tôi sử dụng, tôi ổn với mọi thứ.

Thỉnh thoảng, một nhà phát triển sẽ phát hiện ra một lỗi xảy ra bởi vì, ví dụ như mã Haiti mà tôi đã thử nghiệm trên MAMP là không phải là giống như những gì sẽ xảy ra với thiết lập LAMP của Linux. Và tôi nói với độ tin cậy 100%, rằng tôi luôn chứng minh rằng vấn đề không phải là HĐH cơ sở mà là chính mã hóa PHP.

Vì vậy, tất cả những lời tán tỉnh này về cơ bản là truyền đạt những điều sau: Chỉ cần linh hoạt trong lời giải thích của bạn về việc sử dụng thiết lập VirtualBox cho các sinh viên và đừng mong đợi việc cho ăn một hệ điều hành đơn giản để chấm dứt mọi vấn đề. Nó có thể loại bỏ 95% các vấn đề của bạn ra khỏi công viên, nhưng 5% còn lại sẽ luôn phải được giải quyết theo một cách nào đó. Vì vậy, hãy xem một thiết lập VirtualBox và có lẽ là một tập lệnh Vagrant như một công cụ có thể được sử dụng trong kho vũ khí để làm cho cuộc sống dễ dàng hơn đối với một số người, nhưng không nhất thiết là giải pháp cuối cùng cho tất cả các vấn đề.


3
dạy C ++, java, Cấu trúc dữ liệu và đây là một nỗ lực để thoát khỏi sysadmin / devops mà tôi không quan tâm!
Dov

1
@Dov Vâng, nếu đó là trường hợp, xuất OVA VirtualBox và phân phối nó cho mọi người trong lớp của bạn là cách tốt nhất để đi.
JakeGould

18

Bạn nên có một cái nhìn để Vagrant .

Vagrant hỗ trợ VirtualBox và cho phép bạn:

Tạo và cấu hình các môi trường phát triển nhẹ, có thể tái tạo và di động.

Việc chia sẻ một hoặc một tập tin văn bản sẽ dễ dàng hơn nhiều so với việc xuất một hình ảnh VirtualBox lớn. Đặc biệt nếu bạn muốn quản lý cập nhật.

Khi VirtualBox và Vagrant được cài đặt đơn giản:

vagrant up

Sẽ:

Một Vagrantfile cũng có thể xử lý các đặc tính của máy chủ Windows hoặc Mac.


7
Mặc dù Vagrant không phải là ý tưởng tồi, chỉ cần xuất thiết bị VirtualBox, hướng dẫn sinh viên cài đặt VirtualBox và sau đó cho họ nhập thiết bị đó vào VirtualBox sẽ hoàn thành công việc trong vài bước mà không cần Vagrant xây dựng lại máy từ đầu hoặc có nguy cơ Vagrant idiosyncrasies xuất hiện trong hỗn hợp.
JakeGould

1
Bạn nói đúng, xuất khẩu chắc chắn là cách tiếp cận đơn giản và dễ hiểu nhất. Nhưng tùy thuộc vào nhu cầu, tôi nghĩ rằng vagrant phải được đề cập ở đây. Việc quản lý tải lên / tải xuống các tệp ova lớn có thể có vấn đề đặc biệt là nếu việc cập nhật cần phải được thực hiện trên cơ sở từng dự án. Có thể tìm thấy nhiều so sánh hơn về hai cách tiếp cận trong chủ đề superuser.com/questions/584100/iêu
mperrin

Ghi chú khá tốt trên bài đăng khác. Cảm giác của tôi là thế này: Nếu bạn cảm thấy bạn cần Vagrant để triển khai hơn 2 máy chủ thông qua kịch bản, hãy truy cập nó. Nhưng đối với hầu hết người dùng máy tính để bàn và các nhà phát triển đơn giản, chỉ cần cuộn cuốn sách của riêng bạn thông qua VirtualBox cũng hoạt động tốt.
JakeGould

1
Trong trường hợp của bạn, một lợi thế khác của mơ hồ so với xuất khẩu là khả năng cho học sinh của bạn học "cách" cài đặt và định cấu hình hình ảnh bằng cách kiểm tra tập lệnh cung cấp. Dễ dàng hơn nhiều so với việc đi qua lịch sử của hình ảnh.
mperrin

8

Hoàn toàn không thành vấn đề - hộp ảo (và mọi phần mềm ảo hóa khác ) mô phỏng bộ điều hợp video của riêng nó (logic cirrus IIRC). Mặc dù tệp hộp ảo truyền thống được chia thành các tệp khác nhau để cài đặt và lưu trữ, bạn có thể xuất tệp thành tệp ovf như được đề xuất. Nếu sinh viên của bạn có thể cài đặt hộp ảo hoặc vmware thì đó là chuyện nhỏ. Nếu không, họ cần phải học.

Cài đặt virtualbox khá đơn giản (giả sử bạn có hỗ trợ phần cứng).

Có một vài điều tôi khuyên bạn nên giữ VM ở mức 32 bit (vì vậy bạn không cần lo lắng về hỗ trợ VT-X trên máy chủ), tạo ra cách cài đặt hộp ảo trên 2 HĐH lớn (cửa sổ rất đơn giản, linux cần thêm một vài bước) và nhập tệp OVF. Điều này cũng có nghĩa là nếu sinh viên muốn sử dụng trình phát vmware hoặc tương tự họ có thể. Sử dụng NAT để kết nối mạng trừ khi bạn cần chạy máy chủ có thể truy cập từ bên ngoài.

Nếu hiệu suất không phải là vấn đề, có lẽ bạn chỉ có thể gói mọi thứ vào một cá thể QEMU (chúng có thể được thiết lập để chạy độc lập) và các tập lệnh khởi động phù hợp. Tôi coi đây là phương sách cuối cùng .

Tôi lưu ý rằng nhiều trường đại học thực sự cung cấp cho VM các công cụ phù hợp ( IIRC stanfords CS 50 có điều này và là một khóa học có sẵn miễn phí từ edx), vì vậy có thể đáng để xem cách họ làm điều đó.


3

Thay thế cho hầu hết các công nghệ ảo hóa, Linux (ví dụ Ubuntu) có thể được cài đặt trên một ổ đĩa nhỏ. Khá nhiều máy tính sẽ khởi động một ngón tay cái và hầu hết các trình cài đặt hiện đại sẽ phát hiện card đồ họa / card mạng khi khởi động. Nếu bạn cài đặt Ubuntu 32 bit, nó sẽ chạy trên hầu hết các phần cứng mà mọi người có thể có ở nhà.

Chúng rất dễ sử dụng và không yêu cầu BẤT K phần mềm cài đặt nào. Họ cũng có thể dễ dàng di chuyển từ máy này sang máy khác - rút phích cắm từ máy tính của trường, bỏ vào túi của bạn. Khi bạn về nhà, chỉ cần cắm nó vào.

Chúng có thể có giá khá rẻ (tôi nhận ra rằng ngân sách của trường rất hạn chế!); tùy thuộc vào ứng dụng nào sẽ chạy trên máy, 4gb là đủ, có lẽ là 8gb.


Mọi người trong trường đều có máy tính xách tay. Tôi không nghĩ cần có usb.
Dov

1

Một lựa chọn khác để xem xét. Nếu bạn không thực sự lo lắng về việc họ có GUI, bạn có thể sử dụng cái gì đó như terminal.com .

Bạn có thể tạo ảnh chụp nhanh công khai của riêng bạn và chỉ cần giữ nó có sẵn cho sinh viên của bạn. Nó tương tự như phương pháp VirtualBox, nhưng thay vì cài đặt máy ảo trên máy tính của mình nó trên đám mây máy của người khác.

Sau đó, tất cả những gì họ cần là một trình duyệt web đủ hiện đại. Và nếu họ quan tâm, họ có thể thiết lập nó để họ có thể sử dụng SSH / Putty / vv.

Theo số liệu của họ, nếu các sinh viên đang sử dụng phiên bản vi mô (RAM 256 MB, một vài dung lượng đĩa GB), nếu họ tạm dừng VM khi họ không sử dụng thì sẽ mất 9 đô la / năm khi chạy nó trong 8h / ngày. Tôi không thể nói cho terminal.com, nhưng tôi nghi ngờ nếu bạn liên hệ với họ, họ có thể cung cấp cho bạn một số loại giảm giá giáo dục.


Một dịch vụ tương tự là quyền truy cập vỏ công cộng miễn phí của [SDF.org] (sdf.org/?join) cho các nhà giáo dục. Dạy FAQ . Không phải là VM, nhưng nó vẫn tốt.
HSchmale
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.