Ingin mendistribusikan mesin virtual Linux untuk dikerjakan oleh siswa


25

Saya memiliki siswa yang menjalankan Mac dan Windows. Setiap semester, selalu ada banyak pertanyaan tentang cara menginstal alat "X". Saya ingin membuat mesin virtual Linux tunggal (saya sudah mencoba VirtualBox) dan mendistribusikan gambar. Dengan begitu, semua alat sudah diinstal sebelumnya, dan semua orang menggunakan Linux.

Pertanyaannya adalah, mengingat orang memiliki perangkat keras grafis yang berbeda, bagaimana cara kerjanya? Atau apakah itu berhasil? Dan jika ya, bagaimana cara saya mendistribusikannya? Apakah mereka harus menginstal VirtualBox, kemudian memuat beberapa file yang saya berikan kepada mereka, atau dapatkah saya membuat satu installer dengan mudah?


13
Virtualbox memungkinkan Anda untuk mengekspor Peralatan . File itu dapat diimpor dalam perangkat lunak virtualisasi (VMWare, Virtualbox, dll.) Dan mengonfigurasikan dirinya ke perangkat keras lokal. Ini sepertinya yang Anda minta. Penginstal tunggal tidak dimungkinkan, karena Anda tidak dapat menjalankan program yang sama di WIndows (.exe) dan Mac (.app).
GiantTree

Apakah saya harus menginstal lagi secara berbeda, atau dapatkah saya menyimpan mesin virtual saya sebagai alat?
Dov

Anda dapat menyimpan mesin virtual apa pun sebagai Appliance di Virtualbox. Lakukan saja: File -> Export Appliance Ctrl + E
GiantTree

Beberapa menyarankan Vagrant sebagai solusi karena ukuran file mungkin menjadi masalah saat mengunduh file alat Anda. Sejujurnya, jika Anda menginstal lingkungan minimalis dan menggunakan provisi tipis saat membuat HD virtual, Anda mungkin berakhir dengan 100MB file yang sangat bisa dilakukan atau kurang. Hanya ingin menambahkan itu di sana karena tidak ada orang lain yang menanganinya.
Geruta

1
@ gronostaj: Kedengarannya seperti VM yang malang ini tertangkap dalam matriks! : O
Zaibis

Jawaban:


24

Saya suka jawaban mperrin Vagrant-centric , tetapi seperti yang Anda lihat dari komentar di sana, pendapat pribadi saya adalah untuk “tetap sederhana” dan saya akan merekomendasikan ekspor sederhana dari VirtualBox OVA karena Anda telah mengkonfigurasi dan meneruskannya kepada siswa Anda .

Yang mengatakan, Anda bertanya:

Pertanyaannya adalah, mengingat orang memiliki perangkat keras grafis yang berbeda, bagaimana cara kerjanya? Atau apakah itu berhasil? Dan jika ya, bagaimana cara saya mendistribusikannya? Apakah mereka harus menginstal VirtualBox, kemudian memuat beberapa file yang saya berikan kepada mereka, atau dapatkah saya membuat satu installer dengan mudah?

Beralih ke DevOps

Saya tidak terlalu yakin apa yang Anda ajarkan atau lakukan atau apa yang Anda harapkan siswa dapatkan dari seluruh latihan ini, tetapi banyak kekhawatiran Anda yang menyimpang ke ranah DevOps (pengembangan dan operasi) dan Anda mungkin ingin untuk mempertimbangkan mencampur konsep itu ke dalam ajaran Anda.

Sekarang saya tidak berpikir seluruh konsep DevOps perlu disampaikan, tetapi dalam pikiran saya kreasi Anda dari VirtualBox OVA yang stabil yang kemudian Anda sampaikan kepada siswa dan meminta mereka untuk digunakan di mesin rumah / sekolah mereka pasti akan membuka pintu untuk pertanyaan tentang bagaimana seseorang harus berurusan dengan pengaturan perangkat keras / sistem yang berbeda dan bagaimana seseorang dapat beradaptasi.

Jadi rekomendasi saya untuk Anda adalah sangat merekomendasikan agar siswa menggunakan VirtualBox OVA yang akan Anda siapkan, tetapi juga terbuka untuk memungkinkan siswa untuk hanya menginstal alat sendiri. Naluri saya memberi tahu saya 95% —atau lebih banyak — para siswa akan dengan senang hati dan mudah menggunakan metode VirtualBox OVA, tetapi Anda tidak dapat mengharapkannya 100% sempurna.

Mungkin pada akhirnya Anda hanya perlu memiliki beberapa persyaratan dasar untuk penggunaan alat kursus dan fleksibel dalam implementasinya.

Bersikaplah Fleksibel Mengenai Cara Menggunakan Alat

Sebagai contoh, saya melakukan banyak pengembangan PHP dan melakukan administrasi sistem / DevOps terkait dengan pengembangan PHP. Dan karena saya menggunakan Mac, saya lebih suka menggunakan MAMP untuk pengembangan lokal. Tapi saya bekerja dengan pengembang yang menggunakan Linux atau Windows untuk pengembangan mereka. Heck, beberapa suka menggunakan Vagrant ditambah dengan VirtualBox untuk kebutuhan pengembangan LAMP mereka. Dan sikap saya adalah saya tidak peduli apa pengaturan OS dasar mereka. Selama versi PHP mereka sejalan dengan versi yang digunakan klien saya, saya baik-baik saja dengan apa pun.

Kadang-kadang pengembang akan menyatakan bug disebabkan karena — misalnya — kode yang saya uji pada MAMP adalah “tidak sama” dengan apa yang akan ada pada pengaturan Linux LAMP. Dan saya katakan dengan keyakinan 100%, bahwa saya selalu membuktikan bahwa masalahnya bukan basis OS melainkan coding PHP itu sendiri.

Jadi semua ini hanya untuk menyampaikan hal-hal berikut: Bersikaplah fleksibel dalam penjelasan Anda tentang penggunaan pengaturan VirtualBox kepada siswa dan jangan berharap memberi makan sendok OS untuk hanya mengakhiri semua masalah. Ini mungkin mengetuk 95% masalah Anda di luar taman, tetapi 5% sisanya harus selalu ditangani dengan cara tertentu. Jadi, lihat pengaturan VirtualBox - dan mungkin skrip Vagrant - sebagai alat yang dapat digunakan dalam gudang senjata untuk membuat hidup lebih mudah bagi sebagian orang, tetapi belum tentu solusi akhir untuk semua masalah.


3
mengajar C ++, java, struktur data, dan ini adalah upaya untuk menjauh dari sysadmin / devops yang tidak menarik minat saya!
Dov

1
@Dov Nah, jika itu masalahnya, mengekspor OBox VirtualBox dan mendistribusikannya kepada orang-orang di kelas Anda adalah cara terbaik untuk pergi.
JakeGould

18

Anda harus melihat ke Vagrant .

Vagrant mendukung VirtualBox dan memungkinkan Anda untuk:

Buat dan konfigurasikan lingkungan pengembangan yang ringan, dapat direproduksi, dan portabel.

Akan lebih mudah untuk berbagi satu atau banyak file teks daripada ekspor besar gambar VirtualBox. Apalagi jika Anda ingin mengelola pembaruan.

Setelah VirtualBox dan Vagrant diinstal sederhana:

vagrant up

Akan:

Vagrantfile tunggal juga dapat menangani kekhususan host Windows atau Mac.


7
Sementara Vagrant bukan ide yang buruk, cukup mengekspor alat VirtualBox, menginstruksikan siswa untuk menginstal VirtualBox dan kemudian meminta mereka mengimpor alat itu ke VirtualBox mendapatkan pekerjaan dilakukan dalam beberapa langkah tanpa Vagrant benar-benar membangun kembali mesin dari awal atau memiliki risiko Vagrant keanehan muncul ke dalam campuran.
JakeGould

1
Anda benar, ekspor tentu saja merupakan pendekatan yang paling mudah dan paling sederhana. Tetapi tergantung pada kebutuhan, saya pikir gelandangan harus disebutkan di sini. Mengelola unggahan / unduhan file ova besar dapat menjadi masalah terutama jika pembaruan perlu dilakukan berdasarkan proyek. Lebih banyak perbandingan pada kedua pendekatan ini dapat ditemukan di thread superuser.com/questions/584100/… yang
mperrin

Catatan yang cukup bagus pada posting lain itu. Perasaan saya adalah ini: Jika Anda merasa Anda perlu Vagrant untuk menggunakan lebih dari 2 server melalui scripting, lakukanlah. Tetapi untuk sebagian besar pengguna desktop dan pengembang sederhana, cukup “gulir sendiri” melalui VirtualBox juga berfungsi.
JakeGould

1
Dalam kasus Anda, keuntungan lain dari gelandangan atas ekspor adalah kemampuan bagi siswa Anda untuk mempelajari cara menginstal dan mengkonfigurasi gambar dengan memeriksa skrip penyediaan. Jauh lebih mudah daripada menelusuri sejarah gambar.
mperrin

8

Sama sekali tidak masalah - virtualbox (dan juga setiap perangkat lunak virtualisasi lainnya ) mengemulasi adapter video sendiri (logika cirrus IIRC). Sementara file kotak virtual tradisional dibagi menjadi file yang berbeda untuk pengaturan dan penyimpanan, Anda dapat mengekspornya ke file ovf seperti yang disarankan. Jika siswa Anda dapat menginstal virtualbox atau vmware, itu seharusnya sepele. Jika tidak, mereka perlu belajar.

Menginstal virtualbox cukup sepele (dengan asumsi Anda memiliki dukungan perangkat keras).

Ada beberapa hal yang saya sarankan - pertahankan VM menjadi 32 bit (jadi Anda tidak perlu khawatir tentang dukungan VT-X pada host), menciptakan cara untuk menginstal virtualbox di 2 OS besar (windows sangat mudah, linux memerlukan beberapa langkah tambahan), dan mengimpor file OVF. Ini juga berarti jika siswa ingin menggunakan pemutar vmware atau yang sejenisnya. Gunakan NAT untuk jaringan kecuali Anda perlu menjalankan server yang dapat diakses dari luar.

Jika kinerja bukan masalah, Anda mungkin bisa menggabungkan semuanya menjadi instance QEMU (mereka dapat diatur untuk menjalankan mandiri) dan skrip startup yang sesuai. Saya akan menganggap ini sebagai pilihan terakhir .

Saya perhatikan banyak universitas benar-benar menyediakan VM dengan alat yang sesuai ( stanfords IIRC CS 50 per ini, dan merupakan kursus yang tersedia secara gratis dari edx), jadi mungkin layak untuk melihat bagaimana mereka melakukannya.


3

Sebagai alternatif dari sebagian besar teknologi virtualisasi, Linux (misalnya Ubuntu) dapat diinstal pada thumbdrive. Hampir setiap komputer akan mem-boot thumbdrive, dan sebagian besar penginstal modern akan mendeteksi kartu grafis / kartu jaringan pada saat boot. Jika Anda menginstal Ubuntu 32-bit, itu akan berjalan di hampir semua perangkat keras yang kemungkinan orang miliki di rumah.

Mereka mudah dibagikan, dan tidak memerlukan perangkat lunak tambahan APAPUN yang diinstal. Mereka juga dapat dengan mudah dipindahkan dari mesin ke mesin - cabut dari komputer sekolah, taruh di saku Anda. Saat Anda tiba di rumah, cukup colokkan.

Mereka dapat diperoleh dengan cukup murah (saya menyadari bahwa anggaran sekolah sangat terbatas!); tergantung pada aplikasi apa yang akan dijalankan pada mesin, 4gb harus cukup, mungkin 8gb.


Setiap orang di sekolah pascasarjana memiliki laptop. Saya tidak berpikir ada kebutuhan untuk usb.
Dov

1

Opsi lain untuk dipertimbangkan. Jika Anda tidak benar-benar khawatir mereka memiliki GUI, Anda bisa menggunakan sesuatu seperti terminal.com .

Anda dapat membuat snapshot publik Anda sendiri dan tetap menyediakannya untuk siswa Anda. Ini mirip dengan pendekatan VirtualBox, tetapi daripada menginstal VM di mesin mereka sendiri, itu di cloud mesin orang lain.

Maka yang mereka butuhkan adalah browser web yang cukup modern. Dan jika mereka tertarik, mereka dapat mengaturnya sehingga mereka dapat menggunakan SSH / Putty / etc.

Menurut angka mereka, jika siswa menggunakan instance mikro (256 MB RAM, beberapa ruang disk GB), jika mereka menjeda VM ketika mereka tidak menggunakannya akan dikenakan biaya $ 9 / tahun menjalankannya selama 8 jam / hari. Saya tidak dapat berbicara untuk terminal.com, tetapi saya curiga jika Anda menghubungi mereka, mereka mungkin dapat memberi Anda semacam diskon pendidikan.


Layanan serupa adalah [shell] publik gratis [SDF.org] (sdf.org/?join) untuk pendidik. Ajarkan FAQ . Bukan VM, tapi masih bagus.
HSchmale
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.