Vagrant Box

vagrant box

Vagrant Box Howto

Vagrant ist ein hervoragendes Tool für Entwickler aber auch generell für IT Test- Entwicklungssysteme. Es gibt einige Möglichkeiten vorkonfigurierte Vagrant Box aus dem Internet zu laden. Da ich aber lieber Kontrolle über die Maschinen habe die ich einsetzte habe ich nach einer brauchbaren Dokumentation gesucht wie man sich eine eigene Vagrant Box baut.

1. Downloade und installiere VirtualBox

vagrant box

2. Downloade ein CentOS iso image

vagrant box

3. Baue eine neue VM in VirtualBox:

Name = „vagrant-centos7
Linuxversion = Red Hat
Extra = deaktivieren von audio und usb

 

4. Boote die VM und installiere CentOS 7:

Setze das Root Passwort „vagrant“:
Als „normalen“ Benutzer legst die „vagrant“ mit dem Password „vagrant“ an
Der Hostname ist „vagrant-centos7“

 

5. Nach erfolgreicher Installation solltest du dich in die VM einloggen und als erstes den Openssh-Server installieren.

root@vagrant-centos7$ yum install openssh-server
root@vagrant-centos7$ service sshd start
root@vagrant-centos7$ chkconfig sshd on
root@vagrant-centos7$ netstat -tulpn | grep :22

 

6. Anschliessend erlauben wir der VM das Portforwarding für SSH. Dafür gibt es zwei Wege:

a. Stoppe die VM und von der CMD Line oder Terminal führst du folgenden Befehl aus:

you@host$ VBoxManage modifyvm "vagrant-centos7" --natpf1 "guestssh,tcp,,2222,,22"

b. Stoppe die VM und setze das Portforwarding in der Gui von VirtualBox.

vagrant box

 

7. Jetzt können wir uns testweise per SSH einlogen:

you@host$ ssh -p 2222 root@127.0.0.1

 

8. Installieren von Basis Paketen für die VM

root@vagrant-centos7$ yum install nano wget gcc bzip2 make kernel-devel-`uname -r`

 

9. Instalierne der VirtualBox Gäste Tools (Gui oder in der VM gemountet?)

 

10. Füge den Benutzer Vagrant der Gruppe Admin hinzu:

root@vagrant-centos7$ groupadd admin
root@vagrant-centos7$ usermod -G admin vagrant

 

11. Passe die sudoers Datei an:

Add SSH_AUTH_SOCK to the env_keep option
Comment out the Defaults requiretty line
Add the line %admin ALL=NOPASSWD: ALL

Der Benutzer Vagrant sollte jetzt in der Lage sein das sudo Kommando ohne Passwort Abfrage zu verwenden

vagrant@vagrant-centos62$ sudo ls

 

12.Füge den Public key von vagrant hinzu, damit sihc der User vagrant ohne Passwort per SSH verbinden kann. Wird für das Kommando <code>vagrant ssh</code> gebraucht.

vagrant@vagrant-centos7$ mkdir .ssh
vagrant@vagrant-centos7$ curl -k httpss://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub > .ssh/authorized_keys
vagrant@vagrant-centos7$ chmod 0700 .ssh
vagrant@vagrant-centos7$ chmod 0600 .ssh/authorized_keys

 

13. Das Netzwerkinterface anpassen

vagrant@vagrant-centos62$ vi /etc/sysconfig/network-scripts/ifcfg-eth0

Change:

ONBOOT=no

To parameters and values:

ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

 

14. zum Abschluss räumern wir in der VM noch etwas auf und packen die Vagrant Base-Box.

vagrant@vagrant-centos62$ sudo yum clean all && sudo halt

you@host$ vagrant package --output centos7.box --base centos7_default_1434544491721_62573
you@host$ vagrant box add centos7 centos7.box

Der Name der hinter –base; sollte identisch sein mit dem Namen der VM in Virtual Box.

centos_base_box_export

Du solltest jetzt die neu erstellte Vagrant Base-Box in der Liste der Boxen in vagrant finden.

you@host$ vagrant box list
centos7.box

Ab hier kannst du in jedem Ordner ganz einfach eine neue VM kreieren.

you@host$ /home/user/my_vm $ vagrant init centos7
you@host$ /home/user/my_vm $ vagrant up
you@host$ /home/user/my_vm $ vagrant ssh

Um die VM auf einer neuen Maschine nutzen zu können kopiere dir die Datei centos7.box dorthin und führe folgende Schritte aus.

you@otherhost$ /home/user/my_vm $ vagrant box add centos7 centos7.box

you@otherhost$ /home/user/my_vm $ vagrant init centos7

you@otherhost$ /home/user/my_vm $ vagrant up

you@otherhost$ /home/user/my_vm $ vagrant ssh

E Voilà. Das wars. Jetzt hast du eie Base Box die du als Grundlage für deine Tests benutzen kannst.

 

 

15. VirtualBox Guest Addittions

Leider hatte ich vergessen die Gast Erweiterungen in die Box zu installieren. Das müssen wir noch nachholen. Als erstes solltest du das passende Paket herunterladen. Binde das Iso file unter „Geräte => Optische Laufwerke => Abild auswählen“ aus. Dann moute es folgendermassen.

mount -r /dev/cdrom /media

Binde das EPEL Repository ein
rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

und installiere die folgende Pakete
yum install gcc kernel-devel kernel-headers dkms make bzip2 perl

und erstelle die KERN_DIR environment variable
KERN_DIR=/usr/src/kernels/`uname -r`
export KERN_DIR

Jetzt kannst du die Gäste Erweiterung installieren und danach rebooten
./VBoxLinuxAdditions.run && reboot

Danach solltest due die Box erneut exportieren wie oben genannt.

Quelle:

httpss://github.com/ckan/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box
https://docs.vagrantup.com/v2/getting-started/