Skip to content
Snippets Groups Projects
Jean-Francois Rey's avatar
Jean-Francois Rey authored
31c1ebd2
History
Name Last commit Last update
answer_file
scripts
LICENSE
README.md
packer_win10.json

Packer | Windows

Création et configuration d'une Machine Virtuelle VirtualBox avec l'outil Packer.

Ce dépôt s'inspire du projet packer-windows

Dépendances

Packer et Template json

Packer nous permet de créer des machines identiques depuis une ISO 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_win10.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.
Les Communications se fait principalement via SSH et WinRM (pour Windows).

Installation Windows

Pour créer une VirtualBox avec l'OS Windows, il faut disposer d'une ISO de la version de Windows voulu ainsi que les fichiers de ce dépôt.
Le fichier le plus important, qui permet d'installer Windows en mode automatique sans interation, et le fichier xml autounattend.xml.

autounattend.xml

Permet l'installation de Windows sans interraction.

Documentation Windows pour créer le fichier:

il faut créer le fichier depuis Windows, oui c'est reloux, sinon le trouver sur un dépôt et le modifier. Comme ici answer_file/autounattend.xml.

Dans notre version: Windows est parametré en français et sans licence (version d'évaluation de 90 jours Windows 10 Pro) avec l'utilisateur vagrant et mot de passe vagrant.
Entre la balise <FirstLogonCommand> plusieurs commandes/scripts sont exécutés pour configurer Windows telque la mise à jour, l'activation de WinRM, la configuration réseau... Certains scripts sont disponible ici scripts, ils sont montés par packer dans la MV.

Les scripts

les scripts ont des noms explicites.
scripts/enable-guest-additions.ps1 permet d'installer et d'activer les fonctionnalitées VirtualBox. (Packer va automatiquement upload le fichier VBoxGuestAdditions.iso dans la MV.)

Build

Pour lancer Packer il suffit de lancer la commande packer build <Template.json>

Voici la commande utilisé pour ce dépôt :

packer build --only=virtualbox-iso \
  --var iso_url=./19041.264.200511-0456.vb_release_svc_refresh_CLIENTENTERPRISEEVAL_OEMRET_x64FRE_fr-fr.iso \
  --var iso_checksum=2965FD214FE77D3C80BADCF0B907399DA6636675422C64AE3C0D5DABB2B90C66 \
  --var autounattend=./answer_files/autounattend.xml \
  --var cloud-token=VagrantToken \
  packer_win10.json

Cela va créer un fichier packer_virtualbox_windows10.box.

Post Build | Vagrant Box

Packer permet de publier notre MV sur VagrantCloud. Sans rentrer dans les détails, Packer va créer une box (format Vagrant) qui n'est autre qu'un tar de notre MV avec le fichier de parametrisation.
Par la suite, notre MV est accessible depuis VagrantCloud en public et utilisable par l'outil Vagrant.

;-)