Fleksibelt utviklingsmiljø med Vagrant

Bruker du uendelig med tid til oppsett av utviklermiljø / serveroppsett for prosjektene dine, HVER GANG du finner på noe nytt du vil kode? Sammarbeider du med andre, men sliter med å holde testoppsett i sync? Vagrant er løsningen for deg!

Med Vagrant får du en ferdig satt opp virtuell ubuntuboks på bare et par tastetrykk, fiks ferdig til dine utviklingsbehov. La meg forklare:

Vagrant baserer seg på ei mappe, med ei fil kalt Vagrantfile. I denne filen ligger det enkel konfigurasjon for din virtuelle maskin, blant annet navn og link til fiks, ferdig template for virtuel maskin som settes opp. Har du installert en virtualiseringsløsning på maskinen din (Vagrant benytter seg av virtualbox for enklest mulig setup) samt Vagrant i seg selv, skriver du bare “vagrant up” i terminalen din og vagrant leser automagisk fila si, laster ned og setter opp maskinen på sekunder, fiks ferdig. Det eneste du nå trenger å gjøre er å skrive “vagrant ssh” og du får SSH rett inn til den nye virtuelle maskinen din, ferdig satt opp. Du trenger ikke løfte en finger.

“Så hva kan vi bruke dette til da?” spør du sikkert. La meg demonstrere mitt bruksområde: webprogrammering. På min Githubside har jeg lastet opp et ferdig template som lett benyttes for et nytt webprosjekt. Templatet linker til en virtuell Vagrant – boks som settes opp, før et skript starter automatisk og installerer en fullverdig LAMP – boks, og symlinker /var/www/ mappa på serveren til Vagrant – mappa på din lokale maskin, som deles elegant til Vagrant- serveren. Nå er det bare å kode i vei, og slenge alt i Vagrant – mappa di. “Men hvordan ser jeg resultetet?” Jo, i Vagrantfila har jeg spesifisert at port 8080 sendes til port 80 på Vagrantmaskinen, så et HTTP kall til localhost:8080 sender deg rett til index.html. Snedig? Åja.

Jobber du i team og vil ha lik funksjonalitet hos alle, legger du bare innholdet i Vagrant – fila sammen med kildekoden din i versjonskontroll-systemet dere bruker, og VIPS har alle til en hver tid samme oppsett, over hele linja.

En kjapp how-to for mitt oppsett:

  • sudo apt-get install -y virtualbox ; sudo apt-get install -y Vagrant
  • git clone https://github.com/andmos/Vagrant.git
  • vagrant up
  • vagrant ssh

og ferdig!

Yubikey for Unix

Fordi Bjens er sånn en kjernekar og skriver om Yubikey og Windows, tar jeg stafettpinnen videre og skrive et par stavelser om Yubikey og UNIX!
Lets face it… Vi i TIHLDE Drift er glad i Unix og Linux baserte systemer, så da er det på sin PLASS at også Yubikeyen skal få gjennomgå av oss også!

Som Bjens har også JEG en Yubikey. Den ser slik ut:

Systemene jeg bruker er OS X på desktopen og Ubuntu på serverne. Plunder og heft med Yubikey på denne comboen? Såklart ikke!
Unix – baserte systemer benytter seg av en autentiseringsmetode som kalles PAM. I pam.d – mappa di ligger regler for de forskjellige brukernivåene på maskinen din: Det er ei fil for sudo, su, common – brukere osv osv. Så hvor kommer Yubikeyen inn i dette? Jo med et par pakker kan denne PAMen få støtte for Yubikey – autentisering! Så la oss begynne:

På Ubuntu:

sudo add-apt-repository ppa:fredrikt/yubico  // Vi rapper koden hos hyggelige Fredrikt som har mekka git for oss
sudo apt-get update
sudo apt-get install libpam-yubico

PAM – mappa di har nå yubikey – støtte. Fett? Ikke helt enda:

Naviger deg til https://upgrade.yubico.com/getapikey/.

Her skal du skrive inn en epostadresse og en Yubikeynøkkel. Denne får du enkelt ved å sette inn brikken din og trykke på knappen.
Du får nå servert en klient – ID og en nøkkel. Ta vare på denne infoen, den skal vi bruke senere!
Nå skal vi lage en fil for hvilke brukere som skal ha lov til å bruke denne nøkkelen. For all enkelhets skyld legger vi denne i /etc/ mappa:
vim yubikey
legg så til brukernavn og de 12 (viktig! må være 12) første tegnene på yubikeyen din slik:
brukernavn:tegnene
denne fila skal vi bruke videre!

Nåviger så til /etc/pam.d/. Her skal du åpne en av filene, jeg velger meg sudo – fila. Denne fila bestemmer hvordan du skal autentisere deg for å få sudo – rettigheter.
Legg til følgende linje:
auth    required        pam_yubico.so authfile=/etc/yubikeys id= key=
ID og key er opplysningene du noterte deg tidligere.
Lagre fila di, logg ut og åpne en terminal. Når du nå kjører en sudo -s vil du bli spurt etter passord OG yubikey. Fett?? EKSTREMT!
Det er verdt å merke seg at dette er en online – verifisering, og dekker ikke challange – respons. Dette vil si: er du offline, no sudo for you.
Men kult LÆL.

På Mac OS X:

Her kreves det litt triksing. Du kan endten hente ned koden fra github selv på https://github.com/Yubico/yubico-pam, kompilere og så følge skrittene over,
eller gjøre som meg og installere Macports (du vil jo ha pakkehåntering på macen din lizm) og kjøre en sudo port install yubico-pam.
Så er det bare å følge samme skrittene som på Ubuntuen. Det funker rett og slett!