オフサイトからの指示に従って、3つのコマンドを完了するだけで、稼働中の仮想マシンを取得できます。
vagrant box add lucid32 http://files.vagrantup.com/lucid32.box vagrant init lucid32 vagrant up
同時に、vagrantはサイトからboxをダウンロードし、それに基づいて仮想マシンを作成します。 Boxは、仮想マシンと追加の構成を含むtarアーカイブです。 また、サイトwww.vagrantbox.esには、 多数の定義済みボックスがあります。
ただし、独自のボックスを作成し、それに基づいて仮想マシンを作成する必要がある場合があります。 浮浪者のWebサイトでは、ボックスの作成プロセスについて説明しています。 この記事では、 veeweeユーティリティを使用してこの部分を自動化する方法を示したいと思います。
私はルビーに慣れていないことをすぐに予約しますので、ルビー環境を構成する簡単な方法があると思われる場合は、コメントで建設的な提案をさせていただきます。
例として、Ubuntu 12.04を動作中のOSとして使用し、仮想環境ではCentOS 6を選択します。
vagrantの設定は、vegweeディレクトリのvagrant、veeweeディレクトリにそれぞれ保存されます。
私が最初に遭遇した問題:veeweeは、Ubuntuリポジトリからインストールされたrubyバージョンの使用を拒否しました。
OSからruby-rvmを削除し、英語でより詳細な最新バージョンをインストールする必要がありました。
sudo apt-get --purge remove ruby-rvm sudo rm -rf /usr/share/ruby-rvm /etc/rvmrc /etc/profile.d/rvm.sh curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable --auto-dotfiles
次に、rubyといくつかの依存関係をインストールします。
source ~/.rvm/scripts/rvm sudo apt-get install libxslt-dev libxml2-dev rvm install ruby-1.9.2-p320
rubyのインストール時に、rvmは配布キットをftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p320.tar.bz2のアドレスにダウンロードしようとし、404の応答を受け取りました。 同じ問題がある場合は、ファイル〜/ .rvm / config / dbを開き、ruby_1.9_url行を見つけてhttp://をftp://に置き換えてから、rubyのインストールを再試行します。
次に、ボックスの作成に直接進みます。 必要なディレクトリを作成します。
mkdir {vagrant,veewee}
veeweeの現在のバージョンをダウンロードします。
cd veewee git clone https://github.com/jedi4ever/veewee . bundle install
veeweeには、Windowsを含むほとんどの一般的なOSバージョンのテンプレートが含まれています。
bundle exec veewee vbox templates | grep -i centos-6.4
選択したテンプレートに基づいてOS構成ファイルを作成します。 OSを「centos6-x86_64-minimal」と呼びます。 したがって、CentOS 6のveeweeテンプレートは「CentOS-6.4-x86_64-minimal」を指定します。
bundle exec veewee vbox define 'centos6-x86_64-minimal' 'CentOS-6.4-x86_64-minimal'
ファイル 'definitions / centos6-x86_64-minimal / definition.rb'では、メモリサイズ、ディスクサイズなど、仮想マシンのさまざまな設定を指定できます。
Virtual Boxの仮想マシンを作成します。
bundle exec veewee vbox build 'centos6-x86_64-minimal' --workdir=.
事前にダウンロードしたCentOS-6.4-x86_64-minimal.isoディストリビューションがある場合は、現在のディレクトリのisoディレクトリにコピーできます。 VirtualBoxのバージョンに合わせてVBoxGuestAdditions.isoをコピーすることもできます。 veeweeがインストールされたOCのisoイメージを見つけられない場合、ユーティリティは仮想マシンの作成中にそれをダウンロードすることを提案します。
Veeweeは仮想マシンを作成します。これはVirtual Box GUIからも利用できます。 必要に応じて、必要なソフトウェアをインストールし、OSを構成するなどして、それに基づいて浮浪者ボックスを作成できます。 これは手動または自動で実行できます。 Veeweeはポストインストールスクリプトをサポートしています-これは、インストール後すぐに仮想マシンで実行されるコマンドセットです。
また、veeweeは、仮想マシンでポート22を作成し、メインOSのポート7222に転送します。
これで、浮浪者ボックスを作成できます。
bundle exec bundle exec veewee vbox export 'centos6-x86_64-minimal'
ファイル「centos6-x86_64-minimal.box」が現在のディレクトリに作成されます。
vagrantに新しいボックスを追加します。
vagrant box add 'centos6-x86_64-minimal' centos6-x86_64-minimal.box
現在のディレクトリから「centos6-x86_64-minimal.box」を削除できます。
これで、作成したボックスに基づいて仮想マシンを作成できます。
cd ../vagrant mkdir centos6-x86_64-minimal cd centos6-x86_64-minimal vagrant init 'centos6-x86_64-minimal' vagrant up vagrant ssh
ボックスの設定を変更する必要がある場合、現在のボックスを削除し、仮想マシンをセットアップし、veeweeを使用してボックスを再構築することほど簡単です。
仮想OSのVagrantfileの例。
# -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.define :vm1 do |vm1config| vm1config.vm.box = "centos6-x86_64-minimal" vm1config.vm.network :private_network, ip: "192.168.11.10" vm1config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "1024"] end end end
構成でvm1を意図的に示しました。 したがって、同じボックスから異なるパラメーターで複数の仮想マシンを実行することが可能です。 これはmultivmと呼ばれ、 ここで説明されています 。
ご清聴ありがとうございました。