学生が作業できるようにLinux仮想マシンを配布したい


25

MacとWindowsを実行している学生がいます。学期ごとに、ツール「X」のインストール方法に関する質問が常にたくさんあります。単一のLinux仮想マシンを作成し(VirtualBoxを試しました)、イメージを配布したいと思います。そうすれば、すべてのツールがプリインストールされ、誰もがLinuxを使用しています。

問題は、人々が異なるグラフィックスハードウェアを使用している場合、これはどのように機能するのかということです。それとも機能しますか?そして、もしそうなら、どのようにそれを配布しますか?VirtualBoxをインストールしてから、提供するファイルを読み込む必要がありますか、単一のインストーラーを簡単に作成できますか?


13
Virtualboxでは、アプライアンスをエクスポートできます。そのファイルは、任意の仮想化ソフトウェア(VMWare、Virtualboxなど)にインポートでき、ローカルハードウェアに合わせて構成されます。これはあなたが求めているもののようです。Windows(.exe)とMac(.app)で同じプログラムを実行できないため、単一のインストーラーは使用できません。
ジャイアントツリー

別の方法で再度インストールする必要がありますか、それとも仮想マシンをアプライアンスとして保存できますか?
-Dov

Virtualboxでは、任意の仮想マシンをアプライアンスとして保存できます。ただ、実行します。ファイル ] - > [ エクスポート]アプライアンスのCtrl + E
GiantTree

アプライアンスファイルのダウンロード中にファイルサイズが問題になる可能性があるため、Vagrantをソリューションとして提案する人もいます。事実、最小限の環境をインストールし、仮想HDの作成時にシンプロビジョニングを使用すると、100 MB以下の非常に実行可能なファイルになる可能性があります。誰もそれに対処しなかったので、そこにそれを追加したかっただけです。
ゲルタ

1
@gronostaj:この貧しいVMがマトリックスに引っかかったように聞こえます!:O
ザイビス

回答:


24

私はmperrinのVagrant中心の回答が好きですが、そこのコメントからわかるように、私の個人的な意見は「シンプルに保つ」ことであり、設定して生徒に渡すVirtualBox OVAの簡単なエクスポートをお勧めします。

とは言うものの、あなたはこれを尋ねます:

問題は、人々が異なるグラフィックスハードウェアを使用している場合、これはどのように機能するのかということです。それとも機能しますか?そして、もしそうなら、どのようにそれを配布しますか?VirtualBoxをインストールしてから、提供するファイルを読み込む必要がありますか、単一のインストーラーを簡単に作成できますか?

DevOpsへの進出

あなたが何を教えているか、何をしているのか、学生がこの演習全体から何を期待しているのかはあまりわかりませんが、DevOpsの領域(開発と運用)に気を配っている多くの懸念その概念をあなたの教えに混ぜることを検討する。

今、DevOpsの概念全体を伝える必要はないと思いますが、安定したVirtualBox OVAを作成して、それを生徒に渡し、自宅/学校のマシンで使用するように依頼すると、間違いなく異なるハードウェア/システムのセットアップにどのように対処するべきか、どのように適応するかについての質問。

したがって、私の推奨事項は、設定するVirtualBox OVAを学生に使用することを強く推奨することです。また、学生が自分でツールを簡単にインストールできるようにすることもできます。私の直感では、生徒の95%以上がVirtualBox OVAメソッドを喜んで簡単に使用するだろうと言っていますが、100%完全であることは期待できません。

おそらく最終的には、コースツールの使用に関する要件のベースラインをいくつか用意し、その実装を柔軟にする必要があります。

ツールの使用方法について柔軟に対応する

たとえば、私は多くのPHP開発を行い、PHP開発に関連するシステム管理/ DevOpsを行います。私はMacを使用しているため、ローカル開発にはMAMPを使用することを好みます。しかし、私は開発にLinuxまたはWindowsを使用する開発者と協力しています。ヘック、LAMP開発のニーズにVagrantとVirtualBoxを組み合わせて使用​​するのが好きです。そして、私の態度は、基本OSセットアップが何であるかは気にしません。クライアントのPHPバージョンがクライアントが使用するバージョンとインラインである限り、何でも構いません。

開発者は、たとえば、MAMPでテストしたコードがLinux LAMPセットアップでのコードと「異なる」ため、バグが発生したと述べる場合があります。そして、私は100%の自信を持って、この問題がベースOSではなく、PHPコーディングそのものであることを常に証明してきたと言います。

そのため、このすべては基本的に次のことを伝えることです。生徒にVirtualBoxセットアップを使用することについて柔軟に説明し、OSをスプーンでフィードするだけですべての問題が終了することを期待しないでください。あなたの問題の95%を公園から追い出すかもしれませんが、残りの5%は常に何らかの方法で対処する必要があります。VirtualBoxのセットアップ(およびVagrantスクリプト)を武器庫で使用して、一部の人々の生活を楽にしますが、必ずしもすべての問題の最終的な解決策とは限りません。


3
C ++、java、データ構造を教えています。これはsysadmin / devopsから逃れるための試みであり、私には興味がありません!
-Dov

1
@Dovまあ、そうだとすれば、VirtualBox OVAをエクスポートして、それをあなたのクラスの人々に配布するのが最善の方法です。
JakeGould

18

Vagrantご覧ください

VagrantはVirtualBoxをサポートし、次のことを可能にします。

軽量で再現性のある移植可能な開発環境を作成および構成します。

VirtualBoxイメージを大量にエクスポートするよりも、単一または多数のテキストファイルを共有する方がはるかに簡単です。特に更新を管理する場合。

VirtualBoxとVagrantをインストールしたら、次の簡単な手順を実行します。

vagrant up

意志:

単一のVagrantfileは、WindowsまたはMacホストの特異性も処理できます。


7
Vagrantは悪い考えではありませんが、単にVirtualBoxアプライアンスをエクスポートし、学生にVirtualBoxをインストールするよう指示し、そのアプライアンスをVirtualBoxにインポートすることで、Vagrantが文字通りゼロからマシンを再構築したり、Vagrantのリスクを負うことなく、いくつかの手順でジョブを実行できますミックスに飛び込む特異性。
JakeGould

1
確かに、エクスポートは間違いなく最も単純で単純なアプローチです。しかし、ニーズに応じて、私は浮浪者をここで言及しなければならないと思いました。大きなovaファイルのアップロード/ダウンロードの管理は、特にプロジェクトごとに更新を行う必要がある場合に問題になる可能性があります。2つのアプローチの比較は、この非常に優れたスレッドsuperuser.com/questions/584100/…

他の投稿についてはかなり良いメモがあります。私の気持ちはこうです:スクリプトを介して3台以上のサーバーを展開するためにVagrantが必要だと感じたら、それを選んでください。しかし、ほとんどのデスクトップユーザーと単純な開発者にとって、VirtualBoxを介した「独自のロール」は同様に機能します。
JakeGould

1
あなたの場合、輸出に対する浮浪者のもう1つの利点は、学生がプロビジョニングスクリプトを検査してイメージをインストールおよび構成する方法を学習できることです。画像の履歴を調べるよりもはるかに簡単です。
mperrin

8

virtualbox(および他のすべての仮想化ソフトウェア)は独自のビデオアダプター(IIRCシーラスロジック)をエミュレートします。従来のvirtualboxファイルは、設定と保存のために異なるファイルに分割されますが、提案されているようにovfファイルにエクスポートできます。生徒がvirtualboxまたはvmwareをインストールできる場合、それは簡単なはずです。そうでない場合、彼らは学ぶ必要があります。

virtualboxのインストールは非常に簡単です(ハードウェアサポートがある場合)。

私が提案するいくつかのことがあります-VMを32ビットに保つ(したがって、ホストでのVT-Xサポートについて心配する必要はありません)、大きな2つのOSにvirtualboxをインストールするためのハウツーを作成しますlinuxにはいくつかの追加手順が必要です)、OVFファイルをインポートします。これは、学生がvmwareプレーヤーなどを使用したい場合も意味します。外部からアクセス可能なサーバーを実行する必要がない限り、ネットワークにNATを使用します。

パフォーマンスが問題にならない場合は、すべてをQEMUインスタンス(自己完結型で実行するように設定可能)と適切なスタートアップスクリプトにバンドルすることができます。これは最後の手段だと思います。

多くの大学が適切なツールを備えたVMを実際に提供していることに注意してください(IIRC stanfords CS 50はこれを提供しており、edxから無料で入手できるコースです)。


3

ほとんどの仮想化テクノロジーの代替として、Linux(Ubuntuなど)をサムドライブにインストールできます。ほとんどすべてのコンピューターはサムドライブから起動し、最新のインストーラーのほとんどは起動時にグラフィックスカード/ネットワークカードを検出します。32ビットUbuntuをインストールすると、人々が自宅にいると思われるほとんどすべてのハードウェアで実行されます。

配布は簡単で、追加のインストール済みソフトウェアは必要ありません。また、マシンからマシンへ簡単に移動できます-学校のコンピューターからプラグを抜き、ポケットに入れます。帰宅したら、接続するだけです。

かなり安く手に入れることができます(学校の予算が非常に限られていることに気付きました!); マシンで実行されるアプリケーションに応じて、4GB、おそらく8GBで十分です。


大学院の全員がラップトップを持っています。USBの必要性はないと思います。
-Dov

1

考慮すべき別のオプション。GUIを使用することを本当に心配していない場合は、terminal.comのようなものを使用できます。

独自のパブリックスナップショットを作成し、それを生徒が利用できるようにするだけです。VirtualBoxのアプローチに似ていますが、VMを自分のマシンにインストールするのではなく、他の誰かのマシンのクラウドにインストールします。

それから彼らが必要とするすべては十分に現代的なウェブブラウザです。また、興味がある場合は、SSH / Putty / etcを使用できるようにセットアップできます。

数字によると、学生がマイクロインスタンス(256 MBのRAM、数GBのディスクスペース)を使用している場合、VMを使用していないときにVMを一時停止すると、8時間で1年あたり9ドルの費用がかかります日。terminal.comについて話すことはできませんが、連絡した場合、何らかの教育割引を提供できる可能性があります。


同様のサービスは、[SDF.org](sdf.org/?join)の教育者向けの無料のパブリックシェルアクセスです。FAQを教える。VMではありませんが、それでも十分です。
HSchmale
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.