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を再起動します。

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

Source: https://habr.com/ru/post/J213351/


All Articles