-
Jean-Francois Rey authoredJean-Francois Rey authored
Packer | MacOS
Création et configuration d'une Machine Virtuelle VirtualBox sous Mac OS pour le développement.
Dépendances
## Prérequis
Apple autorise la virtualisation mais sur du matériel Apple. De ce faite, cela ne permet pas l'installation d'instance virtualisé de MacOS si on ne dispose pas d'un matériel Apple.
Donc il faut déjà disposer une machine sous MacOS.
Il est quand même possible de virtualiser un MacOS mais uniquement pour un but de fournir un environnement de développement et de tests.
Depuis un MacOS
non testé
Création d'une ISO bootable:
# Create a macOS Big Sur Virtual Disk Image
hdiutil create -o /tmp/bigsur -size 10250m -volname bigsur -layout SPUD -fs HFS+J
# Mount this Image to macOS
hdiutil attach /tmp/bigsur.dmg -noverify -mountpoint /Volumes/bigsur
# Use macOS Big Sur Createinstallmedia Tool to create a Installer Image
sudo /Applications/Install\ macOS\ Beta.app/Contents/Resources/createinstallmedia --volume /Volumes/bigsur --nointeraction
# Unmount Volume Install macOS Beta
hdiutil eject -force /Volumes/Install\ macOS\ Beta
# Convert the bigsur.dmg to a bigsur.iso for Virtual Machine
hdiutil convert /tmp/bigsur.dmg -format UDTO -o ~/Desktop/bigsur.cdr
# Move and Rename bigsur Image to Desktop
mv ~/Desktop/bigsur.cdr ~/Desktop/bigsur.iso
Reste à voir comment automatiser l'install de l'iso... Regarder par là -> https://github.com/timsutton/osx-vm-templates
From scratch
Version préféré pour le développement et les tests.
Le projet macos-virtualbox a pour but d'automatiser l'installation d'une version de MacOS dans une machine virtuelle VirtualBox.
Une version du script est disponible pre_script/macos-guest-virtualbox.sh. Il y a des dépendances, regarder dans le header du script.
Au jour d'aujourd'hui, le script permet d'automatiser la création de la machine virtuelle mais pas la configuration de l'OS. Après l'execution du script, il faut démarrer la MV et la configurer (ssh + compte utilisateur vagrant/vagrant). Ensuite l'exporter en format OVA.
Packer et Template JSON
Packer nous permet de créer des machines identiques depuis une ISO (ou autre) pour de multiple platforms depuis un simple fichier (Template).
Le fichier Template est une fichier json qui décrit comment créer la machine virtuelle. cf : packer_macos.json.
Les Builders (Providers) sont réponsable de construire l'image de la machine pour une plateforme specifique (VMWare, VirutalBox, Azure, AWS...).
Les Provisioners installent et configurent une machine. Packer permet du provisioning simple (copies fichier,script, install package), il est préférable d'utiliser un autre outils de provisioning type Vagrant, Ansible.
La Communication se fait principalement via SSH.