Packer proprement une box vagrant

Dans cet article on va voir comment packer une box vagrant après configuration.

Imaginez-vous, passant des heures à configurer votre perfect box, vous avez installé des dizaines de packages, configurez vos services, vos environnements. Il est temps d'en faire une box pour qu'elle soit réutilisable pour vous et peut-être pour d'autres!

Connectez-vous sur votre VM et réalisez les commandes suivantes:

Changer le default editor

Pour plus de facilité et parce que j'aime avoir quelques choses par défault qui fonctionne, on va changer l'éditeur par défaut:

$ sudo update-alternatives --config editor

Ajouter vagrant au Sudoer file

On va ensuite ajouter l'utilisateur vagrant au sudoer file sans mot de passe:

$ sudo su -
$ visudo
# Add the following line to the end of the file.
vagrant ALL=(ALL) NOPASSWD:ALL  

Update package

Je ne pense pas qu'il y ait d'explication à donner sur cette partie, on update notre vm avec les dernières mises à jours.

$ sudo apt-get update -y
$ sudo apt-get upgrade -y
# Restart the machine
$ sudo shutdown -r now

Install vagrant public key

On install la public key vagrant qui va nous permettre de partager cette box:

$ mkdir -p /home/vagrant/.ssh
$ wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys
# Ensure we have the correct permissions set
$ chmod 0700 /home/vagrant/.ssh
$ chmod 0600 /home/vagrant/.ssh/authorized_keys
$ chown -R vagrant /home/vagrant/.ssh

`

OpenSSH

On install openSSH.

$ sudo apt-get install -y openssh-server
$ sudo vi /etc/ssh/sshd_config

Ensure the following is set.

Port 22  
PubKeyAuthentication yes  
AuthorizedKeysFile %h/.ssh/authorized_keys  
PermitEmptyPasswords no

# Save & close the file then restart SSH.

$ sudo service ssh restart

update du grub

On a besoin de change la config GRUB pour le boot screen.

$ sudo vi /etc/default/grub
# changez ou ajoutez les valeurs :
# GRUB_TIMEOUT=1
# GRUB_HIDDEN_TIMEOUT_QUIET=true
# GRUB_CMDLINE_LINUX_DEFAULT="quiet"
# Save & close
$ sudo update-grub

Cleaning de la box

On va supprimer les fichiers inutiles pour alléger la box

$ sudo dd if=/dev/zero of=/EMPTY bs=1M
$ sudo rm -f /EMPTY
# Shutdown the machine
$ sudo shutdown -h now

Packing

Il ne nous reste plus qu'a nous déconnecter de la box et de la pack avec:

$ vagrant package namebox

Et c'est tout!