Macos Catalinaを浮浪者の箱に入れます。
いくつかのシーケンスが短縮されました。オリジナルの実行時間14.5分。
「vmware_fusion」、「vmware_desktop」、「parallels」、または「virtualbox」形式のいずれかでボックスの作成をサポートします。
次のソフトウェアが必要です。言及されたもの以外のバージョンは機能する場合がありますが、これらはテストされた最新のバージョンです。
macinboxによって作成されたボックスを起動するには、Vagrantが必要になります。
ボックスを作成するには、MacOSインストーラーアプリケーションが必要になります。カタリナホストを使用している場合は、カタリナインストーラーを使用する必要があります。
Catalina Hostsは、以前に(Macos 10.14 Mojaveなど)インストーラーを使用できず、MojaveホストはCatalinaインストーラーを使用できません。
Mojaveホストを使用している場合は、Mojaveインストーラーを使用する必要があります。
ホストとインストーラーに同じバージョンを使用することをお勧めしますが、MacOSインストーラーの以前のバージョン(MacOS 10.13 High Sierraなど)もMojaveホストと、その逆で動作する場合があります。
注:仮想化の許容性について質問がある場合は、使用している仮想化ソフトウェアのドキュメントとMacOSのソフトウェアライセンス契約を確認することをお勧めします。
次の仮想化アプリケーションのいずれかが必要です。
「vmware_fusion」または「vmware_desktop」形式でボックスを作成して起動するには、次のようになります。
「Parallels」形式でボックスを作成して起動するには、次のことです。
「VirtualBox」形式でボックスを作成して起動するには、次のことが必要です。
宝石をインストールします:
$ sudo gem install macinbox
sudoと引数なしで実行されるmacinboxツールは、「Vagrant」ユーザーのデスクトップにフルスクリーンを起動する「Macinbox」という名前のVagrant VMwareボックスを作成して追加します。
$ sudo macinbox
しばらく時間がかかるかもしれないので、我慢してください。 (2.5 GHz Macbookpro11,5では、約11分かかります。30秒かかります。)ツールが完了した後、ボックスで新しい浮浪者環境を作成して開始できます。
$ vagrant init macinbox && vagrant up
このコマンドを実行してからしばらくすると、仮想マシンのディスプレイがフルスクリーンに表示されるのがわかります。 (コマンドコントロール-Fを押してフルスクリーンモードを終了します。)仮想マシンがブートを完了すると(約1〜2分)、「Vagrant」ユーザーのデスクトップが表示され、仮想マシンの使用を開始できます。
デスクトップボックスに類似したボックスを作成するには、 --box-formatオプションを渡します。
$ sudo macinbox --box-format parallels
高度なオプションを確認するには、 --helpオプションを渡します。
Usage: macinbox [options]
--box-format FORMAT Format of the box (default: vmware_desktop)
-n, --name NAME Name of the box (default: macinbox)
-d, --disk SIZE Size (GB) of the disk (default: 64)
-t, --fstype TYPE Type for disk format (default: APFS)
-m, --memory SIZE Size (MB) of the memory (default: 2048)
-c, --cpu COUNT Number of virtual cores (default: 2)
-s, --short NAME Short name of the user (default: vagrant)
-f, --full NAME Full name of the user (default: Vagrant)
-p, --password PASSWORD Password of the user (default: vagrant)
--installer PATH Path to the macOS installer app
--installer-dmg PATH Path to a macOS installer app disk image
--vmware PATH Path to the VMware Fusion app
--parallels PATH Path to the Parallels Desktop app
--user-script PATH Path to user script
--no-auto-login Disable auto login
--no-skip-mini-buddy Show the mini buddy on first login
--no-hidpi Disable HiDPI resolutions
--no-fullscreen Display the virtual machine GUI in a window
--no-gui Disable the GUI
--use-qemu Use qemu-img (vmware_desktop only)
--verbose Enable verbose mode
--debug Enable debug mode
-v, --version
-h, --help
デバッグモードを有効にすると、クリーンアップではなく、ツールが終了した後、中間ファイル(ディスクイメージ、VMDK、およびボックス)が保存されます。警告!!!これらの中間ファイルは非常に大きく、このオプションを使用すると、ディスクスペースを非常に迅速に使い果たすことができます。
この高度な例は、4つのコア、8 GBまたはRAM、および128 GBディスクを備えた「Macinbox-Large-Nogui」という名前のボックスを作成および追加します。自動ログインをオフにします。 VMが開始されたときにVMware GUIが表示されないようにします。
$ sudo macinbox -n macinbox-large-nogui -c 4 -m 8192 -d 128 --no-auto-login --no-gui
Vagrant_home Environment変数セットがあり、作成されたボックスをその場所の「ボックス」ディレクトリに追加したい場合は、Macinboxに渡すようにSudoに伝える必要があります。
$ sudo "VAGRANT_HOME=${VAGRANT_HOME}" macinbox
デフォルトでは、 macinbox 、HIDPI解像度を有効にするようにゲストOSを構成し、ネイティブディスプレイ解像度を使用するように仮想マシンを構成します。 --no-hidpiオプションを使用してこの動作を無効にすることができます。
デフォルトでは、 macinbox 、VMwareツールがプリインストールされた「VMWare_DeskTop」形式でVagrantボックスを作成します。
ボックス形式が--box-formatオプションを使用して「並列」に設定されている場合、代わりにパラレルツールがプリインストールされます。
ボックス形式が「VirtualBox」に設定されている場合、ゲスト拡張機能はインストールされていません。 VirtualBoxでは、一部の機能が異なる動作をすることに注意してください。画面解像度は1280x800に設定されており、HIDPI解像度はサポートされていません。 --no-hidpiオプションが使用されない限り、GUIスケール係数は2.0に設定されます(VMがRetinaディスプレイのあるホストに適切に表示されるように)。最後に、ホストがゲストに接続できるように、SSHポートフォードはデフォルトで有効になっています。
追加のボックスのカスタマイズが必要な場合は--user-scriptオプションを使用してユーザースクリプトを指定できます。スクリプトは、OSがインストールされた後に実行され、最初の唯一の引数としてインストール場所へのパスが提供されます。スクリプトは実行可能であり、コードゼロで終了する必要があります。または、ボックスの作成が中止されます。
--installer-dmgオプションを使用すると、macosインストーラーを含むディスク画像へのパスを示すことができ、 --installerオプションをオーバーライドします。指定されたディスクイメージはまだ取り付けられていません。 macinbox 、必要に応じてマウントしてマウントします。この機能を使用すると、 macinboxワークフローの一部としてInstallInstallmacos.pyによって作成されたインストーラーディスク画像を使用できます。
このツールは次のアクションを実行します。
このツールによって作成されたボックスには、次のデフォルトのVagrantの動作を無効にする組み込みのVagrantFileが含まれています。
デフォルトのSSHポートの転送を再度に再度可能にするには、次の行を環境のVagrantFileに追加できます。
config.vm.network :forwarded_port, guest: 22, host: 2222, id: "ssh"
デフォルトの同期フォルダーを再度有効にするには、次の行を環境のVagrantFileに追加できます。
config.vm.synced_folder ".", "/vagrant"
このツールは、最初のブーツの前にMacOSの新鮮なインストールに必要なすべてを行うことを目的としており、シームレスなユーザーエクスペリエンスでMacOSをブートするVagrantボックスに変えます。ただし、このツールは、可能な限り最小の構成量を実行することも目的としています。代わりに、VagrantFileまたはPackerテンプレートのプロビジョニングステップに延期できるものは何もありません。
このプロジェクトは、他の人の偉大な作品に触発されました。
このプロジェクトは、ロボット氏のエピソードからインスピレーションを得ています。エピソードでは、エリオットは、信頼できないCD-ROMの内容を調べるために、新鮮なLinuxデスクトップ環境を実行している仮想マシンのように見えるものをすばやく起動します。私が見たように、私は「私はMacosでそのようなことをすることができるようになりたいです!」と思った。確かに、私はインターネットから信頼されていないソフトウェアをダウンロードし、私の主要な作業環境を危険にさらすことなくそれを評価する簡単な方法があることを望んでいたのは確かではありませんか?
このプロジェクトは、私のVagrant-Box-Macosプロジェクトの直接の後継者であり、それ自体がTim SuttonのOSX-VM-Templatesプロジェクトに大きなインスピレーションを受けました。
MacOS 10.12.4のリリースにより、MacOSインストールをカスタマイズするための一般的な手法は、すべてのパッケージがAppleが署名するという新しいインストーラー要件によって妨げられました。 vagrant-box-macos MacOS 10.13 High Sierraをサポートできるようにさまざまなテクニックを試みた後、私はボックス作成に対する別のアプローチが必要であると判断し、 macinboxが生まれました。
sudo gem install bundlerとbundle install実行することから始めます。
gemをインストールせずにgitワークスペースのルートからmacinbox直接実行するには、 sudo bundle exec macinboxを実行します。
この宝石をローカルマシンにインストールするには、 sudo bundle exec rake install実行します。
また、実験を可能にするインタラクティブなプロンプトのbin/consoleを実行することもできます。例えば:
opts = Macinbox::CLI::DEFAULT_OPTION_VALUES
opts[:collector] = Macinbox::Collector.new
opts[:full_name] = "Vagrant"
opts[:password] = "vagrant"
opts[:image_path] = "macinbox.sparseimage"
opts[:boxes_dir] = File.expand_path "~/.vagrant.d/boxes"
$debug = $verbose = true
include Macinbox::Actions
opts[:macos_version] = CheckMacosVersions.new(opts).run
CreateImageFromInstaller.new(opts).run
opts[:vmdk_path] = "macinbox.vmdk"
CreateVMDKFromImage.new(opts).run
opts[:box_format] = "vmware_desktop"
opts[:box_path] = "vmware_desktop.box"
CreateBoxFromVMDK.new(opts).run
InstallBox.new(opts).run
opts[:hdd_path] = "macinbox.hdd"
CreateHDDFromImage.new(opts).run
opts[:box_format] = "parallels"
opts[:box_path] = "parallels.box"
CreateBoxFromHDD.new(opts).run
InstallBox.new(opts).run
opts[:vdi_path] = "macinbox.vdi"
CreateVDIFromImage.new(opts).run
opts[:box_format] = "virtualbox"
opts[:box_path] = "virtualbox.box"
CreateBoxFromVDI.new(opts).run
InstallBox.new(opts).run
opts[:collector].cleanup!
新しいバージョンをリリースするには、 version.rbのバージョン番号を更新してから、バージョンbundle exec rake release gitタグを作成し、gitコミットとタグをプッシュし、 .gemファイルをRubygems.orgにプッシュします。
バグレポートとプルリクエストは、https://github.com/bacongravy/macinboxのGithubで大歓迎です。