Aug
7
2011

Ubuntu VM installieren und konfigurieren

Tach zusammen.

Ich bin vor kurzem schweren Herzens von Ubuntu auf Mac OS X umgestiegen, da ich natürlich auch mit dem Mac a bissl programmieren wollte musste ein Entwicklungssystem her. Unter Ubuntu war das kein Problem, da konnte ich mir alles mal fix installieren und benutzen, diesen Luxus wollte ich mir natürlich nicht entgehen lassen und habe deshalb XAMPP und MAMP ausgeschlossen. Auch der Mac interne Apache samt PHP sagte mir nicht zu weil
a) es ungewohnt war
b) nicht immer die aktuellen Pakete verfügbar sind

c) wollte ich die Entwicklungsumgebung gerne unabhängig vom Betriebssystem haben

Also entschloss ich mich eine Ubuntu 11.04 Server VM als Entwicklungsumgebung herzunehmen. Wie ich bei der Einrichtung des Systems vorgegangen bin, möchte ich euch im folgenden Beitrag ein bisschen erläutern.

Zunächst meine Anforderungen an das Entwicklungssystem:

  • Ubuntu 11.04 Server
  • Internet- und dadurch Updatefähig
  • Steuerung/Verwaltung über das Host System per ssh
  • mein /var/www auf dem Entwicklungssystem sollte ein Ordner auf dem Hostsystem sein um ohne lästiges rsyncen den aktuellen code auf dem Entwicklungssystem zu haben
  • Entwickeln sollte auch ohne Internet möglich sein

Nachdem die Anforderungen klar waren ging es dann auch gleich los:

  1. VirtualBox installieren
  2. Ubuntu 11.04 Server Iso ziehen
  3. Ubuntu mit sämtlichen benötigten Paketen installieren
  4. Netzwerk Einstellungen an der VirtualBox vornehmen
    1. Damit die VM Zugang zum Internet hat, muss zunächst ein NAT Adapter eingerichtet werden. Dieser ist in der Regel bereits per Default aktiv.
    2. Um jetzt die Kommunikation mit dem Host System zu ermöglichen muss ein weiterer Host-Only Adapter eingerichtet werden. Dazu muss zunächst ein Host-Only Network angelegt werden. Die Option findet ihr unter VirtualBox -> Preferences ->Network

      Jetzt müsst ihr dem Adapter nur noch eine IP Adresse geben und den DHCP Server deaktivieren.
  5. Netzwerkeinstellungen in der VM vornehmmen
    1. Wechselt nun wieder in eure VM und legt ein Neues Network Interface an. Dazu bearbeitet ihr einfach die /etc/network/interfaces. Beachtet dabei, dass die IP Adresse die ihr vergebt im gleichen Subnetz wie der vorher angelegte Host Only Adapter sein muss.

      So könnte die Datei aussehen:

      # This file describes the network interfaces available on your system
      # and how to activate them. For more information, see interfaces(5).
      
      # The loopback network interface
      auto lo
      iface lo inet loopback
      
      # The primary network interface
      auto eth0
      iface eth0 inet dhcp
      
      auto eth1
      iface eth1 inet static
      address 192.168.100.101
      netmask 255.255.255.0
    2. Startet den server mit shutdown -r now neu
    3. Überprüft nach dem Neustart per ifconfig ob das neue interface auch korrekt angelegt wurde.
    4. Wenn alles geklappt hat könnt ihr euch nun per ssh auf die VM schalten.
  6. Die /var/www Freigabe einrichten
    1. Nachdem ich mich vergeblich mit AFP und SMB herumgeschlagen habe, bin ich bei NFS hängen geblieben. Das Erstellen von NFS Freigaben gestaltet sich unter Mac OS X ziemlich einfach:
    2. Öffnet als Admin die Datei /etc/exports mit einem Editor eurer Wahl.
      sudo vi /etc/exports
    3. Fügt nun eine Zeile mit folgendem Schema in Datei ein und speichert sie anschließend:
      Users/pew/Development -mapall=pew -network 192.168.100.0 -mask 255.255.255.0

      Users/pew/Development ist das Verzeichnis welches freigegeben werden soll, mapall mappt alle nfs Benutzer auf den lokalen Benutzer pew, 192.168.100.0 ist das Host-Only Netzwerk mit der entsprechenden Subnetzmaske.

    4. Um zu überprüfen ob alles korrekt funktioniert gebt auf der Konsole
      showmount -e

      ein. Es sollte eine ähnliche Ausgabe erscheinen:

      pew-mbp:~ pew$ showmount -e
      Exports list on localhost:
      /Users/pew/Development              192.168.100.0

      Falls nicht, kann man die Einträge manuell mit

      sudo nfsd update

      einlesen.

      Falls immer noch nichts geht kann man per

      sudo nfsd checkexports

      schauen ob alles mit Einträgen korrekt ist.

      Manchmal läuft der NFS Deamon auch noch nicht, dass kann per

      sudo nfsd status

      überprüft und ggf. mit

      sudo nfsd enable

      eingeschaltet werden

  7. Die NFS Freigabe in der VM mounten
    1. Gleich ist es geschafft, wir müssen nun nur noch die NFS Freigabe mounten. Zunächst installiert ihr das NFS Paket
      sudo apt-get install nfs-common

      Jetzt kann die Freigabe per

      mount -t nfs 192.168.100.100:Users/pew/Development /var/www

      gemounted und munter drauf los entwickelt werden ;) (Wenn man nicht jedes Mal per Hand mounten will, empfehle ich noch den Eintrag die /etc/fstab)

So einfach war das, ich hoffe ich konnte mit diesem Beitrag dem ein oder anderen helfen.

11 Kommentare Kommentar schreiben

  • Bezüglich Paketmanager, schau dir mal Homebrew an. http://mxcl.github.com/homebrew/
    Man kann die Pakete auch problemlos selbst erstellen, ist eine super Geschichte. :)

  • Oder man nimmt Vagrant [1]. Es erleichtert das Setup, macht es dank der Vagrantfile automatisierbar (für später oder Kollegen) und man kann auf Puppet oder Chef zugreifen :)

    [1] http://vagrantup.com/

  • [...] den Originalbeitrag weiterlesen: Entwickeln unter Mac Os X | dev.Talk Bookmarken Sie uns, Danke! Mit Klick auf diese Icons kann man diese Webseite mit anderen [...]

  • “Entwickeln unter MacOS X” und dann wird beschrieben wie man eine Ubuntu Virtual Box nutzt ;)

    • @cmi: Genau das dachte ich auch ;-)

      @patrick: Und warum schweren Herzens? Wurdest du gezwungen? Ich nutze übrigens auf dem Mac den Zend Server Community Edition, läuft super.

      • Im Nachhinein ist der Titel nicht ganz 100%, dennoch wird eine Art und Weise vorgestellt mit der man unter Mac OS X entwickeln kann.

        @Michael Gezwungen nicht, nur gefällt mir die Richtung in die Ubuntu seit 11.04 geht nicht sonderlich gut, auch war unter den Derivaten nicht das Richtige für mich dabei und das hat sich dann auch auf die Wahl eines neuen Laptops ausgewirkt.

  • Also ich finde den Titel auch mehr als unglücklich. Erstens hat es nix mit Mac OSX zu tun und schon gar nicht mir “Entwickeln”. Auch auf die Installation einer Entwicklungsumgebung wird verzichtet. Was du hier beschreibst, ist das Installieren und Konfigurieren von Ubuntu in einer VM. Nicht mehr und nicht weniger.

  • So, um Verwirrungen aus dem Weg zu gehen, habe ich den Artikel umbenannt.

  • Ahh, eine schöne, nützliche Anleitung. Werde ich mir mal bei der Arbeit auch so einrichten. Bin im Moment nämlich leider an OS X + MAMP gebunden :(

  • Nur zwei Kleinigkeiten: Erstens shutdown -r now => reboot macht das gleiche und zweitens das funktioniert auch weitgehend so mit Windows. :-)

  • Noch zwei kleine Anmerkungen:

    In der Datei /etc/exports wurde auf meinem Os X Lion ein absoluter Pfad, also /User/… gefordert. Checkexports hat einen entsprechenden Tipp gegeben,

    Der Part mit den zwei Netzwerk-Interfaces sollte etwas hervorgehoben werden. Der ist wichtig. Ich habe ihn nur überflogen und hab das selber herausfinden müssen :)

Kommentar schreiben