OS X、Vagrant、およびParallels Desktop。 veeweeでボックスを構築する

この記事では、OS XでVagrantボックスを作成した経験をParallels Desktop仮想化システムと共有したいと思います。 興味がある場合は、アンダーカットを歓迎します。







VagrantChefにはすでに良いポストがありました: VagrantとChefを使用した開発環境



ただし、私のように、Parallels Desktopを使用すると、問題が発生します。 実際、ParallelsとVirtualBoxを同時に起動することはできません。 したがって、 vagrant-parallels仮想マシンプロバイダーを使用できます



インストールおよび使用手順は、Githubのプラグインページで詳細に説明されていますが、念のためプロセスを複製します。



個人的には、 Homebrewを使用してさまざまな便利なアプリケーションをインストールします。これを使用します。



eric@Copoka-3 ~> brew tap phinze/cask eric@Copoka-3 ~> brew cask install vagrant eric@Copoka-3 ~> vagrant plugin install vagrant-parallels
      
      





一般的に、すべての作業の準備ができています。 小さなものが欠落しています-実際のボックス。 プラグインのあるサイトにはdevboxへのリンクがありますが、もっと多様なものが欲しいです。



そしてveeweeシーンに入ります。 残念ながら、既製のveeweeパッケージはないため、自分でビルドします。



不要なgemでシステムを詰まらせないために、 rvmをインストールします



 eric@Copoka-3 ~> \curl -sSL https://get.rvm.io | bash -s stable eric@Copoka-3 ~> rvm install 2.1.0 eric@Copoka-3 ~> rvm use 2.1.0
      
      







Rubyの準備ができました。 今実際にveewee:



 eric@Copoka-3 ~> cd Work eric@Copoka-3 ~/Work> git clone https://github.com/jedi4ever/veewee.git eric@Copoka-3 ~/Work> cd veewee eric@Copoka-3 ~/W/veewee> rvm use 2.1.0@veewee --create eric@Copoka-3 ~/W/veewee> gem install bundler --no-ri --no-rdoc eric@Copoka-3 ~/W/veewee> bundle install eric@Copoka-3 ~/W/veewee> rake install
      
      







ボックスの作成を開始するには、 SDKリンクからダウンロードしてParallels SDKをインストールする必要があります

ダウンロード、インストール、続行できます。



 eric@Copoka-3 ~> cd Work eric@Copoka-3 ~/Work> mkdir boxes eric@Copoka-3 ~/Work> cd boxes
      
      







ボックスを作成するには、テンプレートを使用することをお勧めします。 テンプレートのリストは次のように取得できます。



 eric@Copoka-3 ~/W/boxes> veewee parallels templates
      
      







リストはかなり大きいので、説明しません。 ここでは、古き良きUbuntu 12.04 LTSを使用します。



 eric@Copoka-3 ~/W/boxes> veewee parallels define 'precise64' 'ubuntu-12.04.3-server-amd64'
      
      







次に、 veewee parallels build



チームでアセンブリを開始するように招待されますが、失敗します。 Parallelsの操作にテンプレートを使用したように見えますが、このテンプレートはVirtualBoxとVMWareのゲストツールをインストールしようとしますが、Parallelsについては何も知りません。 この欠陥を修正します。



 eric@Copoka-3 ~/W/boxes> cd definitions/precise64/ eric@Copoka-3 ~/W/b/d/precise64>
      
      







ここでは、次の内容のparallels.sh



ファイルを作成する必要があります(ubuntu-13.10-server-amd64のテンプレートを覗きましたが、別の問題があります。後で説明します)。



 # Install the Parallels Tools PARALLELS_TOOLS_ISO=prl-tools-lin.iso mount -o loop $PARALLELS_TOOLS_ISO /media/cdrom /media/cdrom/install --install-unattended-with-deps --progress umount /media/cdrom
      
      







次に、 definition.rb



編集し、virtualboxとvmfusionのpostinstall_files



メンションのリストから削除し、 parallels.sh



を追加parallels.sh



ます。

これで続行できます。



 eric@Copoka-3 ~/W/b/d/precise64> cd ../.. eric@Copoka-3 ~/W/boxes> veewee parallels build precise64
      
      







あなたは昼食をとることができます、プロセスは非常に長いです。 最終的に、すべてが楽しく終了し、次のようなものが表示されます。



 ...- ... The box precise64 was built successfully! You can now login to the box with: ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 22 -l vagrant 10.211.55.7 eric@Copoka-3 ~/W/boxes>
      
      







この段階で、マシンにアクセスして( vagrant



パスワード)、すべてが正常であることを確認し、何か(ロシア語のサポートなど)を追加します。 すべてが適切にインストールされていることを確認したら、Vagrant用のボックスに梱包できます。

しかし、ここでもう1つの落とし穴が待っています。 エクスポートしようとすると、次のエラーが表示されます。



エラー:シェルコマンドを実行しましたが、終了ステータスは0ではありませんでした
 -コマンド:prl_disk_tool compact --buildmap --hdd /Users/eric/Documents/Parallels/precise64.pvm/harddisk.hdd
 -終了コード:2。
 -出力:
操作の進行状況5%ディスクを圧縮できません。




これは既知のエラーです。解決するには、ファイルgems/veewee-0.3.12/lib/veewee/provider/parallels/box/export.rb



(使用されているgemsetのバージョンに関連)の行optimize_disk



をコメントアウトする必要があります文字列。



その後、エクスポートは正常に機能し、現在のディレクトリに大切なボックスが表示されます。



 eric@Copoka-3 ~/W/boxes> ll total 1252512 drwxr-xr-x+ 3 eric staff 102B 20  17:44 definitions drwxr-xr-x+ 4 eric staff 136B 20  17:39 iso -rw-r--r--+ 1 eric staff 612M 20  18:46 precise64.box eric@Copoka-3 ~/W/boxes>
      
      







貯金箱に追加します。



 eric@Copoka-3 ~/W/boxes> vagrant box add 'precise64' '/Users/eric/Work/boxes/precise64.box'
      
      







ここで、テストを実行する場所を選択し、結果のボックスを開始します。



 eric@Copoka-3 ~/W/boxes> cd ~/Work eric@Copoka-3 ~/Work> mkdir testbox eric@Copoka-3 ~/Work> cd testbox eric@Copoka-3 ~/W/testbox> vagrant init precise64 eric@Copoka-3 ~/W/testbox> vagrant up --provider=parallels eric@Copoka-3 ~/W/testbox> vagrant ssh Welcome to Ubuntu 12.04.4 LTS (GNU/Linux 3.8.0-29-generic x86_64) * Documentation: https://help.ubuntu.com/ Last login: Thu Feb 20 18:33:11 2014 from 10.211.55.2 vagrant@precise64:~$
      
      







彼らが何を得たかった。



Ubuntu 13.10。について そこでは、テンプレートは実際には変更を必要としません。definition.rbのParallelsの行のコメントを外し、それに応じてVirtualBoxをコメントアウトするだけです。 その後、すべてがまったく同じです。



それでも、13.10からボックスをvagrant up



しようとすると、マシンは正常に起動しますが、マシンの起動を待つタイムアウトが発生します。 これは、LinuxのParallelsドライバーエラーが原因です。 Parallelsはこのエラーを認識しており、次のアップデートで修正することを約束しています。 vagrant-parallels課題トラッカーでそれについて読む



一時的な解決策として、起動時に手動で浮浪者を支援することが提案されています。コンソールからマシンに入り、eth0でdhclientを再起動します。



私のやや厄介なメモが誰かにとって有用であり、時間を節約することを願っています。



All Articles