How To: Vagrant - erste Schritte
mastercad
21.04.2014 23:42:12
Heute möchte ich mit einer kleinen Reihe über Vagrant beginnen, da ich derzeit meinen Media Server neu aufgesetzt habe und mich während dessen dazu entschieden habe, jeden Zuständigkeitsbereich des Servers in einzelne Virtuelle Server zu kapseln um das System im allgemeinen Stabiler zu machen und jedem Server seine Aufgabe zukommen zu lassen ohne die anderen Funktionalitäten des Servers zu kompromittieren.
Beginnen wir mit einem Problem, was ich auf meinem Server mit dem OS Ubuntu 12.04 i686 LTS hatte.
Wir installieren zu erst Vagrant aus dem Ubuntu Repo:
nach der installation versuchte ich eine box anzulegen:
diese Meldung besagt eigentlich nichts, außer das ein Vagrantfile angelegt wurde mit den eben getätigten angaben.
mit einem beherzten vagrant up kam folgendes:
ich habe danach noch einige weitere Schritte unternommen um zu versuchen, precise32 zu installieren, erfolglos. Rückblickend sehe ich gerade beim durchsehen der Logs, das ich scheinbar auch bei weiteren versuchen einem Syntaxfehler unterlag. Fakt ist, ein einfaches
tat es einfach nicht und das stellte mich nicht zufrieden, im Internet las ich in diversen Foren, das es in der Version 1.0.x Probleme bei diesem vorgehen gab, da ich in der Hinsicht ziemlich schmerzbefreit bin, war ich natürlich sofort bereit mich von dieser Version zu trennen, zumal es mittlerweile Version 1.5.3 gibt...
meine aktuelle version:
also nix wie runter ...
dann habe ich unter folgendem Link das Ubuntu *.deb Paket geladen, es ist einmal als 32bit und als 64bit Version verfügbar.
danach installieren wir erst einmal das neue Paket
und sind damit bereit für unsere ersten wirklichen Gehversuche ohne ein hoffnungslos veraltetes Vagrant.
An die Übersicht aller möglichen Befehle von Vagrant kommt man mit folgendem Aufruf:
Also erneut der Versuch ein erstes Image bereit zu stellen und eine erste Box aufzusetzen:
Voila, es ist vollbracht, wir haben hiermit unser erstes Image gezogen und es unter unserem aktuellen User für alle weiteren Vagrant Inits zur Verfügung gestellt. Es wurde abgelegt unter ~/.vagrant.d/boxes/precise32/0/virtualbox/. In diesem Ordner befinden sich jetzt folgende Dateien:
löschen läßt sich so ein Image übrigens mit:
Aber nicht so voreilig ..., wir können nun damit unsere erste Box erstellen:
danach können wir sie direkt starten:
das verbinden dauerte bei mir ungewöhnlich lang, nachdem die Box aber beim 2. Versuch, sie zu starten, auch lief, gab es keine weiteren Probleme.
Dieser Beitrag wird im Laufe der nächsten Zeit durch weitere ergänzt, unter anderem, wie man einen LDAP Server aufsetzt, einen Git und SVN Server, wie man einen FTP aufsetzt, wie man XBMC Frodo und Gotham installiert und wie man diese ganzen Vagrant Boxen parallel auf einem Rechner laufen läßt und diese Multiboxen managed.
Seid gespannt... ;)
Beginnen wir mit einem Problem, was ich auf meinem Server mit dem OS Ubuntu 12.04 i686 LTS hatte.
Wir installieren zu erst Vagrant aus dem Ubuntu Repo:
BASH code
sudo apt-get install vagrant
nach der installation versuchte ich eine box anzulegen:
BASH code
vagrant init hashicorp/precise32 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.
diese Meldung besagt eigentlich nichts, außer das ein Vagrantfile angelegt wurde mit den eben getätigten angaben.
mit einem beherzten vagrant up kam folgendes:
BASH code
vagrant up There was a problem with the configuration of Vagrant. The error message(s) are printed below: vm: * The box 'hashicorp/precise32' could not be found.
ich habe danach noch einige weitere Schritte unternommen um zu versuchen, precise32 zu installieren, erfolglos. Rückblickend sehe ich gerade beim durchsehen der Logs, das ich scheinbar auch bei weiteren versuchen einem Syntaxfehler unterlag. Fakt ist, ein einfaches
BASH code
vagrant init precise32 ... vagrant up
tat es einfach nicht und das stellte mich nicht zufrieden, im Internet las ich in diversen Foren, das es in der Version 1.0.x Probleme bei diesem vorgehen gab, da ich in der Hinsicht ziemlich schmerzbefreit bin, war ich natürlich sofort bereit mich von dieser Version zu trennen, zumal es mittlerweile Version 1.5.3 gibt...
meine aktuelle version:
BASH code
vagrant -v Vagrant version 1.0.3
also nix wie runter ...
BASH code
sudo apt-get remove --purge vagrant
dann habe ich unter folgendem Link das Ubuntu *.deb Paket geladen, es ist einmal als 32bit und als 64bit Version verfügbar.
BASH code
cd ~/Downloads wget https://dl.bintray.com/mitchellh/vagrant/vagrant_1.5.3_i686.deb --2014-04-21 19:46:43-- https://dl.bintray.com/mitchellh/vagrant/vagrant_1.5.3_i686.deb Resolving dl.bintray.com (dl.bintray.com)... 5.153.24.114 Connecting to dl.bintray.com (dl.bintray.com)
5.153.24.114
:443... connected. HTTP request sent, awaiting response... 200 OK Length: 54110140 (52M) [application/octet-stream] Saving to: `vagrant_1.5.3_i686.deb` 100%[===================================================================>] 54,110,140 1.80M/s in 33s Last-modified header invalid -- time-stamp ignored. 2014-04-21 19:47:18 (1.55 MB/s) - `vagrant_1.5.3_i686.deb` saved [54110140/54110140]
danach installieren wir erst einmal das neue Paket
BASH code
sudo dpkg -i ~/Downloads/vagrant_1.5.3_i686.deb
und sind damit bereit für unsere ersten wirklichen Gehversuche ohne ein hoffnungslos veraltetes Vagrant.
An die Übersicht aller möglichen Befehle von Vagrant kommt man mit folgendem Aufruf:
BASH code
vagrant -h Usage: vagrant [options] <command> [<args>] -v, --version Print the version and exit. -h, --help Print this help. Common commands: box manages boxes: installation, removal, etc. connect connect to a remotely shared Vagrant environment destroy stops and deletes all traces of the vagrant machine halt stops the vagrant machine help shows the help for a subcommand init initializes a new Vagrant environment by creating a Vagrantfile login log in to Vagrant Cloud package packages a running vagrant environment into a box plugin manages plugins: install, uninstall, update, etc. provision provisions the vagrant machine reload restarts vagrant machine, loads new Vagrantfile configuration resume resume a suspended vagrant machine share share your Vagrant environment with anyone in the world ssh connects to machine via SSH ssh-config outputs OpenSSH valid configuration to connect to the machine status outputs status of the vagrant machine suspend suspends the machine up starts and provisions the vagrant environment For help on any individual command run `vagrant COMMAND -h` Additional subcommands are available, but are either more advanced or not commonly used. To see all subcommands, run the command `vagrant list-commands`.
Also erneut der Versuch ein erstes Image bereit zu stellen und eine erste Box aufzusetzen:
BASH code
vagrant box add precise32 http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-i386-vagrant-disk1.box ==> box: Adding box 'precise32' (v0) for provider: box: Downloading: http://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-i386-vagrant-disk1.box ==> box: Successfully added box 'precise32' (v0) for 'virtualbox'!
Voila, es ist vollbracht, wir haben hiermit unser erstes Image gezogen und es unter unserem aktuellen User für alle weiteren Vagrant Inits zur Verfügung gestellt. Es wurde abgelegt unter ~/.vagrant.d/boxes/precise32/0/virtualbox/. In diesem Ordner befinden sich jetzt folgende Dateien:
BASH code
ls -lisa ~/.vagrant.d/boxes/precise32/0/virtualbox/ total 342924 2906811 4 drwxrwxr-x 2 xbmc xbmc 4096 Apr 21 20:09 . 2906810 4 drwxrwxr-x 3 xbmc xbmc 4096 Apr 21 20:09 .. 2906806 342896 -rw------- 1 xbmc xbmc 351124992 Apr 21 20:09 box-disk1.vmdk 2906804 12 -rw------- 1 xbmc xbmc 10506 Apr 21 20:09 box.ovf 2906808 4 -rw-rw-r-- 1 xbmc xbmc 25 Apr 21 20:09 metadata.json 2906805 4 -rw-r--r-- 1 xbmc xbmc 505 Apr 21 20:09 Vagrantfile
löschen läßt sich so ein Image übrigens mit:
BASH code
vagrant destroy precise32 Removing box 'precise32' (v0) with provider 'virtualbox'...
Aber nicht so voreilig ..., wir können nun damit unsere erste Box erstellen:
BASH code
vagrant init precise32 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.
danach können wir sie direkt starten:
BASH code
Bringing machine 'default' up with 'virtualbox' provider... ==> default: Clearing any previously set forwarded ports... ==> default: Clearing any previously set network interfaces... ==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat ==> default: Forwarding ports... default: 22 => 2222 (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: Warning: Connection timeout. Retrying... default: Warning: Connection timeout. Retrying... default: Warning: Connection timeout. Retrying... default: Warning: Connection timeout. Retrying... default: Warning: Connection timeout. Retrying... default: Warning: Remote connection disconnect. Retrying... default: Warning: Remote connection disconnect. Retrying... default: Warning: Remote connection disconnect. Retrying... default: Warning: Remote connection disconnect. Retrying... default: Warning: Remote connection disconnect. Retrying... default: Warning: Remote connection disconnect. Retrying... ==> default: Machine booted and ready! ==> default: Checking for guest additions in VM... ==> default: Mounting shared folders...
das verbinden dauerte bei mir ungewöhnlich lang, nachdem die Box aber beim 2. Versuch, sie zu starten, auch lief, gab es keine weiteren Probleme.
Dieser Beitrag wird im Laufe der nächsten Zeit durch weitere ergänzt, unter anderem, wie man einen LDAP Server aufsetzt, einen Git und SVN Server, wie man einen FTP aufsetzt, wie man XBMC Frodo und Gotham installiert und wie man diese ganzen Vagrant Boxen parallel auf einem Rechner laufen läßt und diese Multiboxen managed.
Seid gespannt... ;)