Vagrant – Custom box

Création d’une box custom Centos 7.5

 

Téléchargement de l’image ISO minimale de la distribution Centos 7

L’image ISO minimale Centos 7.5 est téléchargée à l’adresse suivant : CentOS-7-x86_64-Minimal-1804.iso
L’image fait 906 Mo et son checksum SHA256 est disponible à l’adresse suivante : sha256sum.txt

714acc0aefb32b7d51b515e25546835e55a90da9fb00417fbee2d03a62801efd  CentOS-7-x86_64-Minimal-1804.iso

Vérification du checksum SHA256 :

$ sha256sum CentOS-7-x86_64-Minimal-1804.iso
714acc0aefb32b7d51b515e25546835e55a90da9fb00417fbee2d03a62801efd *CentOS-7-x86_64-Minimal-1804.iso

 

Installation traditionnelle d’une VM Centos 7 avec VirtualBox

Informations relatives à l’installation :

  • Nom : centos7-minimal
  • Type : Linux
  • Version : Red Hat (64-bit)
  • Mémoire : 1024 Mo
  • Type disque dur: VMDK
  • Taille disque dur : 40 Go dynamiquement alloués

Réglages de la VM avant installation :

  • Décocher Activer le son
  • Décocher Activer le contrôleur USB
  • Règle de redirection de port : Vagrant SSH TCP 2222 -> 22 (Réseau > Avancé > Redirection de ports)

Étapes de l’installation proprement dite :

  • Lancer l’installation de la VM à partir de l’image ISO minimale CentOS-7-x86_64-Minimal-1804.iso.
  • Langue : Français (French) > Français (France)
  • Destination de l’installation : simplement valider avec Terminé
  • Nom d’hôte et réseau : connecter l’interface Ethernet enp0s3 et centos75 pour hostname (Appliquer)
  • Mot de passe administrateur : vagrant
  • Création de l’utilisateur : vagrant / vagrant / Faire de cet utilisateur un administrateur / Un mot de passe est requis pour utiliser ce compte / vagrant / vagrant

 

Paramétrage une fois l’installation terminée (après reboot)

Se loguer en tant de que vagrant/vagrant
Mise à jour initiale des paquets installés :

$ sudo yum update -y

Installation de paquets complémentaires :

$ sudo yum install -y nano yum-utils wget

Définition de l’éditeur nano comme éditeur par défaut pour l’utilisateur vagrant :

$ nano ~/.bash_profile

Ajout de la ligne suivante :

export EDITOR=/usr/bin/nano

Modification du fichier sudoers :

$ sudo su -
# export EDITOR=/usr/bin/nano
# visudo

Ajout de la ligne suivante (sous Defaults specification) :

Defaults !requiretty

Puis, plus bas, ajouter la ligne suivante :

Defaults    env_keep += "SSH_AUTH_SOCK"

Décommenter la ligne suivante (l’utilisateur vagrant appartient déjà au groupe wheel) :

%wheel     ALL=(ALL)    NOPASSWD: ALL

Modification du fichier sshd_config global :

# exit
$ sudo nano -c /etc/ssh/sshd_config

Autour de la ligne 47 :

AuthorizedKeysFile       %h/.ssh/authorized_keys

Autour de la ligne 115 :

UseDNS no

Modification du grub pour accélérer le démarrage de la VM :

$ sudo nano /etc/default/grub

Modifier la ligne suivante :

GRUB_TIMEOUT=1

Mise à jour du grub après modification :

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Ajout de la clé publique Vagrant parmi les clés autorisées :

$ mkdir /home/vagrant/.ssh
$ wget --no-check-certificate https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys
$ chmod 0600 /home/vagrant/.ssh/authorized_keys
$ chmod 0700 /home/vagrant/.ssh/

Suppression d’éventuels anciens kernels :

$ sudo package-cleanup --oldkernels --count=2

Installation des dépendances nécessaires à la construction des modules des Guest Addition Tools :

$ sudo yum install -y kernel-devel kernel-headers dkms gcc gcc-c++ bzip2 make kernel-devel-$(uname -r)

Insertion du disque contenant les Guest Addition Tools :
Périphériques > Insérer l’image CD des Additions Invité
Installation des Guest Addition Tools (des erreurs liées au serveur X seront retournées dans les logs) :

$ sudo su -
# mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom
# cd /mnt/cdrom
# ./VBoxLinuxAdditions.run
# reboot

Vérification que le module vboxguest est chargé :

$ lsmod | grep vboxguest
vboxguest          302033  3  vboxsf

Désinstallation de certaines dépendances nécessaires à la construction des modules des Guest Addition Tools :

$ sudo yum remove -y kernel-headers gcc make

Remplir l’espace libre avec des zéros (défragmentation) :

$ sudo dd if=/dev/zero of=/EMPTY bs=1M
$ sudo rm -f /EMPTY
$ halt -p

 

Création d’un box custom à partir de la VM Centos 7.5

Packager la VM en utilisant le nom d’affichage de la VM sur VirtualBox (et non son hostname) :

$ mkdir vagrant-box
$ cd vagrant-box
$ vagrant package --base centos7-minimal --output Centos75-server.box
$ du -sh Centos75-server.box
622M    Centos75-server.box
$ vagrant box add Centos75-server.box --name centos75
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos75' (v0) for provider:
    box: Unpacking necessary files from: file://D:/vagrant/projects/vagrant-box/Centos75-server.box
    box:
==> box: Successfully added box 'centos75' (v0) for 'virtualbox'!
$ vagrant box list
centos75                        (virtualbox, 0)

On obtient ainsi une box de 622 Mo.
 

Création d’une VM à partir de la box centos75 ainsi créée

$ cd ..
$ mkdir centos75-test
$ cd centos75-test
$ vagrant init centos75
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos75'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos75-test_default_1541080503500_71665
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
[default] GuestAdditions 5.2.8 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => D:/vagrant/projects/centos75-test
$ vagrant ssh
Last login: Thu Nov  1 14:57:10 2018 from 10.0.2.2
[vagrant@centos75 ~]$
Fermer le menu
%d blogueurs aiment cette page :