Vagrant est un outil génial développé par HashiCorp pour créer et configurer des environnements de développement légers, reproductibles et portables construits sur la technologie standard de l'industrie et contrôlés par un flux de travail unique et cohérent pour aider à maximiser la productivité et la flexibilité.
Il s'agit d'un wrapper de niveau supérieur autour de logiciels de virtualisation tels que VirtualBox, VMware, KVM et Linux Containers (LXC), et autour de logiciels de gestion de configuration tels qu'Ansible, Chef, Salt et Puppet. Vagrant permet de faire tourner très facilement des machines virtuelles locales à l'aide de VirtualBox. Il utilise l'environnement de virtualisation et déploie les machines virtuelles de son choix et gère l'utilisateur pour avoir un accès direct et gérer plusieurs machines virtuelles en plus.
Dans ce didacticiel, nous allons apprendre à créer une boîte de base CentOS 7 vagabonde à partir de zéro à l'aide de VirtualBox.
1. Installer VirtualBox
Tout d'abord, nous allons télécharger la dernière version c'est à dire la 4.3.28 virtual box pour la virtualisation de vagrant. Nous le téléchargerons à partir de la page de téléchargement officielle de VirtualBox à l'aide de notre navigateur Web ou nous pouvons utiliser wget en utilisant le terminal. Ici, nous exécutons Ubuntu 14.04 sur notre machine hôte, nous allons donc télécharger le paquet debian pour Ubuntu.
# wget http://download.virtualbox.org/virtualbox/4.3.28/virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb
--2015-06-16 17:49:13-- http://download.virtualbox.org/virtualbox/4.3.28/virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb
Resolving download.virtualbox.org (download.virtualbox.org)... 137.254.120.26
Connecting to download.virtualbox.org (download.virtualbox.org)|137.254.120.26|:80... connected.
...
HTTP request sent, awaiting response... 200 OK
Length: 65115674 (62M) [application/x-debian-package]
Saving to: ‘virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb’
100%[===============================>] 65,115,674 36.8MB/s in 1.7s
2015-06-16 17:49:15 (36.8 MB/s) - ‘virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb’ saved
Après avoir téléchargé le fichier debian, nous allons l'installer à l'aide du gestionnaire de paquets dpkg.
# dpkg -i virtualbox-4.3_4.3.28-100309~Ubuntu~raring_amd64.deb
Ensuite, pour corriger les dépendances requises, nous allons exécuter la commande ci-dessous.
# apt-get -f install
2. Installer Vagrant
Comme nous exécutons Ubuntu 14.04 sur notre machine hôte, nous allons maintenant télécharger la dernière version de vagrant, c'est-à-dire 1.7.2 depuis notre page de téléchargement officielle de Vagrant en utilisant wget ou en utilisant notre navigateur Web préféré.
# wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.7.2_x86_64.deb
Après le téléchargement, nous allons maintenant l'installer à l'aide du gestionnaire de packages dpkg.
# dpkg -i vagrant_1.7.2_x86_64.deb
Selecting previously unselected package vagrant.
(Reading database ... 117170 files and directories currently installed.)
Preparing to unpack vagrant_1.7.2_x86_64.deb ...
Unpacking vagrant (1:1.7.2) ...
Setting up vagrant (1:1.7.2) ...
3. Préparation de la machine virtuelle
Téléchargement du fichier image CentOS
Comme nous faisons tout à partir de zéro dans ce tutoriel, nous allons créer notre machine virtuelle par notre propre installation et configuration dans la Virtual Box. Donc, avant de commencer la configuration de la machine virtuelle, nous devrons télécharger notre propre fichier iso centos 7. Nous pouvons le télécharger à partir de http://mirror.centos.org/centos/7/isos/x86_64/ en sélectionnant le miroir à proximité de chez nous et le fichier image requis. Ici, nous allons télécharger l'iso minimal de CentOS 7. Maintenant que notre fichier image iso est prêt, nous allons maintenant continuer plus loin pour la création de la machine virtuelle dans la boîte virtuelle.
Créer une machine virtuelle
Maintenant, nous allons lancer la boîte virtuelle que nous venons d'installer dans notre système d'exploitation hôte. Ensuite, nous cliquons sur Nouveau Bouton. Ensuite, nous donnerons à la machine virtuelle un nom sous la forme centos-7 alors nous choisirons Linux sous Type.
Et choisissez Red Hat (64 bits) comme version. Sous Taille de la mémoire , nous allons laisser la RAM à 512 Mo en tant que vagabond a la capacité de le changer.
Maintenant, nous allons sélectionner Créer un disque dur virtuel maintenant , puis cliquez sur Créer . Nous laisserons le nom par défaut sous Emplacement du fichier . Définissez ensuite la taille du fichier du disque dur sur 40,00 Go et sélectionnez VDI (VirtualBox Disk Image) comme type de fichier de disque dur .
Ensuite, nous sélectionnerons Allocation dynamique et cliquez sur Créer . Hourra. nous avons créé avec succès la machine virtuelle dans notre Virtual Box.
Configuration plus poussée de la machine virtuelle
Ensuite, pour une configuration plus poussée, nous cliquerons sur le nom de la machine virtuelle et cliquerons sur Paramètres . Allez ensuite dans le Stockage et cliquez sur Vide juste sous Controller IDE , puis sur le côté droit de la fenêtre, cliquez sur l'icône CD , et sélectionnez choisir un fichier de disque CD/DVD virtuel . Accédez à l'emplacement de l'image iso CentOS 7 a été téléchargé, sélectionnez-le et cliquez sur Ouvrir . Ensuite, nous voudrons cliquer sur Ok pour fermer les Paramètres menu.
4. Installation de CentOS 7 sur une machine virtuelle
Enfin, nous allons installer notre CentOS 7 dans la machine virtuelle que nous venons de créer. Le processus d'installation est assez simple et facile à installer comme d'habitude et la plupart des options par défaut peuvent être utilisées. Vous pouvez également suivre http://linoxide.com/how-tos/centos-7-step-by-step-screenshots/ pour la partie installation du système d'exploitation.
Maintenant, une fois le système d'exploitation installé, nous allons maintenant configurer le système d'exploitation pour qu'il fonctionne avec Vagrant.
Maintenant, nous allons ouvrir une console à l'intérieur de la machine virtuelle et nous connecter en tant que root.
Comme eth0 est désactivé par défaut, nous devrons le rattraper.
# ifup eth0
Maintenant, nous allons installer des packages supplémentaires tels que openssh, nano, ntp, curl à partir du référentiel à l'aide du gestionnaire de packages yum.
# yum install -y openssh-clients nano wget ntp curl
Ensuite, nous activerons le service ntpd pour qu'il démarre à chaque démarrage.
# chkconfig ntpd on
Après cela, nous voudrons régler l'heure à partir du serveur time.nist.gov.
# service ntpd stop
# ntpdate time.nist.gov
# service ntpd start
Maintenant, nous allons permettre au service ssh de démarrer au démarrage afin que nous puissions nous connecter en ssh à la machine dès qu'elle démarre.
chkconfig sshd on
Nous allons désactiver le démarrage des services iptables et ip45.55.88.66tables au démarrage.
# chkconfig iptables off
# chkconfig ip6tables off
Ensuite, nous définirons SELinux sur permissif.
# sed -i -e 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
Après cela, nous voudrons ajouter un nouvel utilisateur nommé vagrant afin que nous puissions l'utiliser avec vagrant.
# useradd vagrant
Maintenant, nous allons créer le dossier .ssh de l'utilisateur vagabond afin que les clés et les informations ssh y soient stockées.
# mkdir -m 0700 -p /home/vagrant/.ssh
Si nous voulons utiliser notre propre clé publique/privée SSH, nous voudrons créer une clé publique/privée SSH sur notre poste de travail et copier la clé publique dans /home/vagrant/.ssh/authorized_keys sur la machine virtuelle.
Sinon, si nous voulons utiliser la clé publique/privée SSH fournie par Vagrant, nous pouvons simplement exécuter la commande suivante :
# curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub >> /home/vagrant/.ssh/authorized_keys
Maintenant, nous allons changer les permissions sur les fichiers authorized_keys pour être plus restrictifs avec chmod
# chmod 600 /home/vagrant/.ssh/authorized_keys
Ensuite, nous fixerons la propriété du dossier .ssh à l'utilisateur et au groupe vagabonds à l'aide de chown.
# chown -R vagrant:vagrant /home/vagrant/.ssh
Maintenant, voici le principal changement important que nous devons faire, nous devrons commenter requiretty dans /etc/sudoers. Ce changement est important car il permet à ssh d'envoyer des commandes à distance à l'aide de sudo. Si cela n'est pas fait, vagrant ne pourra pas appliquer les modifications au démarrage. Cela peut être fait en exécutant la commande suivante.
# sed -i 's/^\(Defaults.*requiretty\)/#\1/' /etc/sudoers
Nous autoriserons l'utilisateur vagrant à utiliser sudo sans entrer de mot de passe en exécutant la commande suivante.
# echo "vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Ensuite, nous ouvrirons /etc/sysconfig/network-scripts/ifcfg-eth0 et faites en sorte qu'il ressemble exactement à ce qui suit
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
Maintenant, supprimez les règles réseau persistantes udev fichier à l'aide de la commande rm.
# rm -f /etc/udev/rules.d/70-persistent-net.rules
Maintenant, nous allons nettoyer yum en utilisant la commande suivante.
# yum clean all
Maintenant, nous allons supprimer le tmp répertoire et rendez-le propre.
# rm -rf /tmp/*
Nettoyez ensuite les journaux des derniers utilisateurs connectés.
# rm -f /var/log/wtmp /var/log/btmp
Nous allons nettoyer l'historique.
# history -c
Après cela, nous arrêterons la machine virtuelle.
# shutdown -h now
Une fois la machine virtuelle arrêtée, nous cliquerons sur Paramètres pour la machine virtuelle. Allez ensuite dans le Stockage puis sélectionnez Controller IDE et cliquez sur le carré vert avec l'icône moins rouge dans le coin inférieur droit de la section Arborescence de stockage de l'onglet Stockage. Cliquez ensuite sur OK pour fermer le menu Paramètres. Après cela, nous allons créer la Vagrant Box.
5. Création d'une boîte de vagabond
Assurez-vous que la valeur de la base le commutateur de ligne de commande correspond au nom de la machine virtuelle dans VirtualBox :
# vagrant package --output centos-7.box --base centos-7
6. Ajout de la boîte Vagrant
Ajoutez la Vagrant Box nouvellement créée à vagrant (cela copiera la Vagrant Box à un autre emplacement) :
# vagrant box add centos-7 centos-7.box
De plus, la machine virtuelle VirtualBox peut être supprimée.
7. Créer un projet Vagrant et configurer Vagrantfile
Les projets vagabonds peuvent être créés autant que nous le voulons. Chacun contiendra différents fichiers Vagrant contenant la définition du projet Vagrant et différentes machines virtuelles. Pour ce faire, nous allons créer un répertoire nommé vagrant sous le répertoire linoxide pour stocker le Vagrantfile et les machines virtuelles associatives.
# mkdir -p ~/linoxide/vagrant
# cd ~/linoxide/vagrant
Maintenant, nous allons créer le Vagrantfile comme suit.
# vagrant init centos-7
Nous avons maintenant un Vagrantfile qui pointe vers la boîte de base centos-7 que nous venons de créer ci-dessus. Si nous utilisons notre propre clé privée/publique SSH, et non la clé privée/publique SSH fournie par Vagrant, nous devons indiquer à Vagrantfile où trouver la clé privée SSH. Pour ce faire, nous devrons ajouter les éléments suivants dans le fichier Vagrant que nous venons de créer.
# nano Vagrantfile
config.ssh.private_key_path = "~/.ssh/id_rsa"
Si vous ne souhaitez pas partager de dossiers entre votre machine virtuelle et le système d'exploitation hôte, désactivez-le simplement en ajoutant ce qui suit à votre Vagrantfile.
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
8. Vagabond de départ
Maintenant, comme nous avons complètement effectué toutes les étapes ci-dessus, nous allons enfin lancer notre première machine virtuelle vagabonde prête à l'emploi. Pour exécuter notre machine virtuelle vagabonde avec le système d'exploitation centos 7, nous n'aurons qu'à exécuter la commande suivante.
# vagrant up
Si tout s'est bien passé comme prévu, nous devrions pouvoir voir notre boîte de vagabondage en cours d'exécution lors de l'exécution de la commande d'état de vagabondage.
# vagrant status
Si nous voulons accéder en ssh à la boîte vagrant et contrôler la machine virtuelle, nous exécuterons simplement vagrant ssh
# vagrant ssh
Une fois que nous avons terminé notre travail et que nous voulons supprimer ou détruire notre boîte virtuelle vagabonde en cours d'exécution, nous pouvons simplement exécuter la destruction vagabonde qui la détruira.
# vagrant destroy
Conclusion
Enfin, nous avons créé notre boîte Vagrant exécutant CentOS 7 à partir de Scratch en utilisant Virtual Box. Cet article nous permet de créer facilement une boîte Vagrant si vous avez déjà un fichier image centos 7 ou un DVD ou une machine virtuelle et que vous ne voulez pas télécharger l'image de la boîte centos 7 pour vagrant. Cette méthode vous aide également à créer une boîte Vagrant si vous ne disposez pas d'une connexion Internet à ce moment-là, mais que vous disposez d'une image ou d'un DVD de CentOS 7.
Le tutoriel ci-dessus est vraiment un guide simple et facile à faire pour créer notre boîte de base vagrant Centos 7 à partir de zéro, nous pouvons même créer une boîte vagrant de n'importe quelle distribution Linux avec des étapes similaires ci-dessus. Donc, si vous avez des questions, des commentaires, des commentaires, veuillez écrire dans la zone de commentaire ci-dessous et faites-nous savoir ce qui doit être ajouté ou amélioré.