Macの環境構築をAnsibleで自動化させたいと思い立ったので、動作確認用のVM環境を構築してみました。今回は既にParallelsを持っていたことと、VM構築も自動化させたかったので、「Parallels + Vagrant」構成で環境を作ります。

動作環境

  • ホストOS
    • OSX Mavericks 10.9.5
    • Homebrew 0.9.5
    • Parallels Desktop 10 for Mac (バージョン 10.1.4 / 28883)
    • Vagrant 1.7.2
    • Vagrant Parallels Provider 1.3.9
  • ゲストOS
    • OSX Mavericks, OSX Yosemite

Vagrantのインストール

Vagrantのホームページから、OSX用のdmgファイルをダウンロードし、インストーラの指示に従ってインストールします。「/Applications」配下にVagrantがインストールされます。

Vagrant Parallels Providerのインストール

Vagrantの初期構成では、Parallelsを動かすことができないので、別途プラグインをインストールする必要があります。インストール手順は、下記URLのREADME.mdを参照してください。

OSXインストーラのダウンロード

Mac AppStoreから、OSXのインストーラをダウンロードします。現行バージョンのYosemiteは「おすすめ」、Mavericks以下の過去バージョンは「購入済み」からダウンロードします。

Vagrant Boxの作成

まずは、ISOファイルを作成します。

$ git clone https://github.com/timsutton/osx-vm-templates
$ sudo sh osx-vm-templates/prepare_iso/prepare_iso.sh /Applications/Install\ OS\ X\ Yosemite.app/Contents/SharedSupport/InstallESD.dmg .

コマンドの実行に成功すると、MD5とISOが生成されます。

-- Checksumming output image..
-- MD5: 81da7c3129f0925e2c468de9c327fef0
-- Done. Built image is located at ./OSX_InstallESD_10.10.2_14C109.dmg. Add this iso and its checksum to your template.

次に、packerコマンドを利用して、ISOからVagrant boxへ変換します。「iso_checksum」「iso_url」に指定する値は、先ほど生成された値を利用します。変換には30分以上かかりますので、気長に待ちましょう。変換が完了すると、カレントディレクトリに、「packer_parallels-iso_parallels.box」というファイルが作成されます。

$ brew tap homebrew/homebrew-binary
$ brew install packer
$ cd osx-vm-templates/packer
$ packer build -var iso_checksum=81da7c3129f0925e2c468de9c327fef0 -var iso_url=../OSX_InstallESD_10.10.2_14C109.dmg -var autologin=true template.json

Vagrantの実行

boxファイルが作成されたら、後は通常のvagrantの使い方と同じ手順で、VMを起動します。

$ vagrant box add osx-yosemite packer_parallels-iso_parallels.box
$ mkdir vm_yosemite
$ cd vm_yosemite
$ vagrant init
$ vi Vagrantfile
[Vagrantfile]

Vagrant.configure(2) do |config|
  config.vm.box = "osx-yosemite"  # 1. baseからvagrant box addで指定した名前へ変更
  config.ssh.insert_key = false   # 2. 左記を追加
$ vagrant up
$ vagrant ssh

ちなみに、vagrantからVMを起動した状態で、Parallels Desktopを起動すると、GUIからOSXにアクセスすることも可能です。デフォルトでは、英語環境、メモリ2GB、VRAM256MBのようです。

vagrant_osx_yosemite

後片付け

「/tmp」に、boxファイル作成に使ったキャッシュが溜まっているので、rebootして削除してください。

参考



Comments

comments powered by Disqus