> Création et configuration d'une Machine Virtuelle VirtualBox avec l'outils Packer.
> Création et configuration d'une Machine Virtuelle VirtualBox avec l'outil __Packer__.
Ce dépôt s'inspire du projet [packer-windows](https://github.com/StefanScherer/packer-windows)
...
...
@@ -17,36 +17,36 @@ Ce dépôt s'inspire du projet [packer-windows](https://github.com/StefanScherer
__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](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 _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.
Les Communications se fait principalement via SSH et WinRM (pour Windows).
## Install 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 du dépôt.
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](answer_file/autounattend.xml).
### autounattend.xml
Permet l'installation de Windows sans interraction.
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](answer_file/autounattend.xml).
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](answer_file/autounattend.xml).
Dans notre version, Windows est parametré en français et sans licence (version de test 90 jours) 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, configuration réseau. Certains scripts sont disponible ici [scripts](scripts/), ils sont montés par packer dans la MV.
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](scripts/), ils sont montés par packer dans la MV.
### Les scripts
les [scripts](scripts) ont des noms explicite.
les [scripts](scripts) ont des noms explicites.
[scripts/enable-guest-additions.ps1](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 <fichier.json>```
Pour lancer __Packer__ il suffit de lancer la commande ```packer build <Template.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__.
__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__.
* Le dépôt windows : [GAEV/win10](https://app.vagrantup.com/GAEV/boxes/win10)
* Le dépôt de notre box Windows 10 Pro : [GAEV/win10](https://app.vagrantup.com/GAEV/boxes/win10)
* Le dépôt du projet : [https://app.vagrantup.com/GAEV](https://app.vagrantup.com/GAEV)