How To: Vagrant - erste Schritte
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
sudo apt-get install vagrant
nach der installation versuchte ich eine box anzulegen:
BASH
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
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
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
vagrant -v
Vagrant version 1.0.3
also nix wie runter ...
BASH
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
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
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
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
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
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
vagrant destroy precise32
Removing box 'precise32' (v0) with provider 'virtualbox'...
Aber nicht so voreilig ..., wir können nun damit unsere erste Box erstellen:
BASH
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
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... ;)