Installer n'importe quel système d'exploitation Linux dans libvirt / qvm et se connecter à celui-ci pour la personnalisation
$ sudo nano /root/.profile # ~/.profile: exécuté par des shells de connexion compatibles Bourne. if ["$ BASH"]; then if [-f ~/.bashrc]; then .~/.bashrc Fi Fi mesg n # remplace cette ligne par "tty -s && mesg n"
Note: Ceci évite un avertissement, au lancement de vagrant plus tard.
vi /etc/hostname dgfip-base
vi /etc/hosts 127.0.0.1 dgfip-base localhost #Les lignes suivantes sont souhaitables pour les hôtes compatibles IPv6 :: 1 localhost ip6-localhost ip6-loopback ff02 :: 1 ip6-allnodes ff02 :: 2 ip6-allrouters
[root] # adduser vagrant [root] # passwd vagrant Changement de mot de passe pour l'utilisateur vagrant. Nouveau mot de passe : MOT DE PASSE INCORRECT : basé sur un mot du dictionnaire MOT DE PASSE INCORRECT : est trop simple Retapez le nouveau mot de passe : passwd : mise à jour réussie de tous les jetons d'authentification.
L'utilisateur vagrant doit être qutorisé à exécuter des commandes sudo sans une invite de mot de passe
sudo visudo -f /etc/sudoers.d/vagrant
et coller
vagrant ALL=(ALL) NOPASSWD:ALL
yum install -y openssh-server
mkdir -p /home/vagrant/.ssh chmod 0700 /home/vagrant/.ssh scp user@xx.xx.xxx.xxx:/opt/vagrant/embedded/gems/gems/vagrant-1.8.1/keys/vagrant.pub /home/vagrant/.ssh/authorized_keys chmod 0600 /home/vagrant/.ssh/authorized_keys chown -R vagrant /home/vagrant/.ssh
modifier /etc/ssh/sshd_config
PubKeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys UseDNS no
installer des packages de développement supplémentaires pour les outils pour compiler et installer correctement
yum install-y gcc build-essentiel kernel-headers kernel-headers-devel automake autoconf
Intégrer dans le message d'accueil le numéro de version
vi /etc/motd - Bienvenue dans la version 0.1.0 de dgfip-base!
Redémarrer le serveur invité
shutdown -r now
Se connecter avec le compte vagrant et vérifier que le message du jour (motd) mis en place s'affiche:
Last login: Thu Apr 26 10:26:24 2018 from xx.xx.xxx.xx - Bienvenue dans la version 0.1.0 de dgfip-base! - -(jeu. avril 26 10:53:58)--(dgfip-base:~)-
shutdown -h now
Sur la machine hôte dans laquelle VM est en cours d'exécution aller dans /var/lib/libvirt/images/ et choisir l'image brute dans laquelle ont été faites les modifications et copier quelque part par exemple /test
cp /var/lib/libvirt/images/test.img ~/VagrantBoxes
Passer dans le répertoire VagrantBoxes.
cd ~/VagrantBoxes
créer deux fichiers metadata.json et Vagrantfile
vi metadata.json { "provider" : "libvirt", "format" : "qcow2", "virtual_size" : 40 }
vi Vagrantfile Vagrant.configure("2") do |config| config.vm.provider :libvirt do |libvirt| libvirt.driver = "kvm" libvirt.host = 'localhost' libvirt.uri = 'qemu:///system' end config.vm.define "new" do |dgfipbase| custombox.vm.box = "dgfip-base" custombox.vm.provider :libvirt do |test| test.memory = 1024 test.cpus = 1 end end end
Les noms d'étiquettes entre les pipes ne doivent comporter que des caractères alphabétiques.
sudo qemu-img convert -f raw -O qcow2 test.img invite.qcow2
mv invite.qcow2 box.img
tar cvzf dgfip-base-0.1.0.box ./metadata.json ./Vagrantfile ./box.img
L'empaquetage prendra un certain temps.
Note: Afin de pouvoir construire plusieurs versions de la vm dgfip-base, le numéro de version ets ajouter dans le nom du fichier box.
cd ~/VagrantTest
vagrant box add 'dgfip-base' file://~/VagrantBoxes/dgfip-base-0.1.0.box
En cas de succès, on doit voir une sortie comme ceci:
==> box: Box file was not detected as metadata. Adding it directly... ==> box: Adding box 'dgfip-base' (v0) for provider: box: Unpacking necessary files from: file:///root/VagrantBoxes/dgfip-base-0.1.0.box ==> box: Successfully added box 'dgfip-base' (v0) for 'libvirt'!
Notez le v0. Il n'y a pas encore de version spécifiée.
vagrant init dgfip-base A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant
Maintenant, il y a un fichier Vagrantfile avec les paramètres par défaut dans votre répertoire actuel.
Modifier ce fichier Vagrantfile en utilisant un éditeur de texte
# Modifier la ligne suivante de config.vm.box = "base" # à config.vm.box = "devops" # enregistrer le fichier
Note: base est le nom par défaut du vagrant pour une boîte. Mais nous avons dit à la boîte vagabonde ajouter le nom Devops.
vagrant up --provider=libvirt