Poster taggade med ‘linux’

Sida 1/2:12

Vagrant är ett verktyg för att på ett smidigt sätt via kommandoraden kunna hantera olika virtuella boxar (Oracle VirtualBox). Vagrant används för att skapa och konfigurera lättviktiga, reproducerbara och portabla utvecklingsmiljöer.

Grundkrav

Sätt igång

Då är vi redo att börja. För att skapa en ny virtuell box med Ubuntu 12.04 LTS kör du bara följande kommandon:

$ vagrant box add precise64 http://files.vagrantup.com/precise64.box
$ mkdir -p testenv
$ cd testenv
$ vagrant init precise64
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.

Kommandot på rad 1 laddar ned en färdig box med Ubuntu 12.04 LTS. Denna box namnges till precise64 och kan sedan återanvändas för flera virtuella maskiner. Nedladdning sker endast en gång. Rad 2 och 3 skapar en katalog där din virtuella maskin sparas. Kommandot på rad 4 skapar en så kallad Vagrantfile som beskriver hur just din box ska konfigureras (bland annat port forwarding). Vagrant själva skriver att:

A Vagrantfile is to Vagrant as a Makefile is to Make

Innehållet i vår nyskapade Vagrantfile ser ut ungefär så här:

Vagrant::Config.run do |config|
  # Setup the box
  config.vm.box = "precise64"
end

Den katalogen som innehåller Vagrantfile mappas (per default) upp som en shared folder så din maskin och den virtuella boxen kan dela filer där på ett smidigt sätt.

För att sedan starta vår virtuella server används följande kommando:

$ vagrant up

Och för att koppla upp dig via SSH mot servern körs detta kommando:

$ vagrant ssh

När du kopplat upp dig via SSH kan du accessa dina delade filer i foldern /vagrant

Om du gör förändringar av din virtuella box som du sedan vill återanvända kan du skapa egna paket (boxar) som du senare kan utgå från. Detta sker enkelt via kommandot:

$ vagrant package

Då skapas en box – package.box – som kan läggas till bland dina befintliga boxar med hjälp av

$ vagrant box add my_box /path/to/package.box

När du känner att du är färdig med din virtuella box kan du använda följande kommando för att stänga ned maskinen (och därmed spara CPU/RAM):

$ vagrant halt

Alternativt, om du bara vill göra en suspend (det går snabbare att starta maskinen senare isf):

$ vagrant suspend

För att starta maskinen efter halt eller suspend är det bara att köra:

$ vagrant up

Om du vill ta bort din virtuella box från disken helt och hållet kör du bara kommandot:

$ vagrant destroy

Vagrant erbjuder också stöd för mer avancerade features såsom provisioning mha Chef eller Puppet. Allt detta finns att läsa på Vagrants hemsida.

Så, superenkel hantering av virtuella boxar med hjälp av Vagrant – rekommenderas varmt!

Lathund:

$ vagrant init Skapar en Vagrantfile
$ vagrant up Startar en virtuell box
$ vagrant halt Stoppar den virtuella boxen
$ vagrant suspend Pausar den virtuella boxen
$ vagrant destroy Stoppar och tar bort den virtuella boxen från disken
$ vagrant package Skapar ett nytt box-paket baserat på en befintlig box
$ vagrant box add my_box /path/to/package.box Lägger till en ny box-typ (my_box) som pekas ut via path eller HTTP
$ vagrant box list Listar tillgängliga boxar för din lokala miljö. En lista över boxar nedladdningsbara boxar finns här.

Rewrite-modulen för Apache brukar av någon outgrundlig anledning aldrig fungera bra för mig. Nu har jag återigen spenderat någon timme med att konfa upp den för wordpress och skriver därför ner vad jag gjort för att komma ihåg det till nästa gång.

Innehållet för min site mysite pekas ut av en konfigurationsfil i /etc/apache2/sites-available (virtual host-fil). Den innehåller följande: Läs mer >>

Tänkte tipsa om ett trevligt verktyg vid namn Ack som jag hittade häromdagen. Det är en ”bättre version” av det gamla klassiska grep-kommandot.

Ponera följande, om du vill hitta alla förekomster av strängen ”Test” i dina javafiler men hoppa över alla filer i dina dolda subversion-kataloger kan du köra följande grep-kommando:

grep Test $(find . -name '*.java' | grep -v .svn)

Med verktyget ack ser kommandot ut så här:

ack-grep --java Test

Lite trevligare tycker jag. Ack stöder en rad filtyper såsom perl, java, C# etc och installationen är smidig – i alla fall om du kör Ubuntu. Dessutom är output:en från kommandot lite lättare att tolka…

Kolla in Ack vetja!

Rena kommandoradsapplikationer i Java kanske inte hör till vanligheterna nu mera, men det finns tillämpningar. Jag håller för tillfället på med ett sådant program. Det är en slags (av prestandaskäl) multitrådad övervakningsapplikation. Varje tråd ligger och pollar en databas efter något att arbeta med i ganska täta (några sekunders) intervall. När tråden hittar något att processa, så pratar den bl.a. JDBC med en stordatorapplikation.

Denna typ av beteende skulle vara ganska svårt att få till inom ramen för en appserver. Att starta trådar är ju inte aktuellt. Att använda Quartz eller ha ett cron-jobb som anropar en EJB via wget eller liknande skulle vara möjligt men verkar lite krystat, speciellt då den pollar så pass ofta.

En vanlig Java-applikation fick det bli, således. Vad bör man tänka på när man skriver en sådan applikation? Den är ju nästan som en slags server, som skall köra kontinuerligt. Den får inte gå ner så lättvindigt och den kommer sannolikt köra på en Linuxburk i ett serverrum någonstans utan något egentligt användargränssnitt. Här kommer således några tips för den standalone-inriktade.
Läs mer >>

Efter det att jag uppgraderat till Ubuntu 9.10 så uppstod det lite problem med min Eclipse 3.5 installation, vissa knappar i olika dialoger slutade att fungera. Efter en snabb googling så visade det sig att det är en bug i Eclipse som är fixad i Eclipse 3.6 M2. För att få Eclipse 3.5 att fungera i Ubuntu 9.10 så kan man starta Eclipse med följande lilla skript:

#!/bin/sh
export GDK_NATIVE_WINDOWS=1
/path/to/your/eclipse/installation/dir/eclipse

Sida 1/2:12