datasektionen / cashflow-old

Inköp/skuld-hantering
2 stars 0 forks source link

Virtualiserad utvecklingsmiljö #39

Closed vonbirdie closed 12 years ago

vonbirdie commented 12 years ago

För tillfället måste man installera väldigt många olika gems och program för att kunna hacka cashflow. Det hade varit väldigt nice om vi virtualiserade hela utvecklingsmiljön så man slapp installera det mesta och kunde komma igång på en ny maskin snabbare. Vagrant är ett verktyg som kan användas för just detta!

Frost commented 12 years ago

jag försökte och misslyckades.

Det enda du egentligen borde behöva för att hacka cashflow, är att ha en fungerande rails-miljö, och sen bara köra bundle install efter att ha klonat repot.

Vad är det mer du anser dig behöva installera?

Koronen commented 12 years ago

Vagrant är trevligt, men jag ser inte riktigt behovet. RVM/rbenv och bundler gör det hela väldigt enkelt.

(säg åt RVM/rbenv att använda ruby 1.9.2)
git clone git@github.com:datasektionen/cashflow.git
cd cashflow
bundle install
rake db:setup
Frost commented 12 years ago

Iofs, man behöver väl bygga en database.yml och ha en databasmotor installerad också, men om man skriver sin database.yml så att den använder sqlite3 är det inte ett problem på exempelvis OSX.

Frost commented 12 years ago

Däremot, om du väldigt gärna vill bygga en vagrant-config, är du givetvis välkommen att göra det.

Jag gjorde ett halvhjärtat försök för ungefär ett år sedan, blev aldrig färdig, och tyckte mest det var jobbigt att försöka få till delade kataloger mellan ditt vanliga filsystem och den virtuella maskinen.

...och om detta ska göras, bör det givetvis göras så att man kan utveckla samtliga appar i den maskinen, så att man slipper dra igång en maskin för varje app.

vonbirdie commented 12 years ago

I Gemfile står mysql2 som en dep som vill ha mysql headers installerat på datorn vilket jag inte har någon lust att installera. Ett alternativ som skulle lösa just detta är att ändra i Gemfile till:

# Make sure you have MySQL header files installed then run
# $ bundle install --without sqlite
group :mysql do
  gem "mysql2", '~> 0.2.0'
end

# Make sure you have SQLite header files installed then run:
# $ bundle install --without mysql
group :sqlite do
  gem 'sqlite3-ruby', :require => 'sqlite3'
end

Jag bör lära mig puppet för jobbet så jag tänkte detta var ett bra tillfälle att lära sig!

Jag tycker inte att det ska vara samma maskin, jag tror inte ens om det går med Vagrant. Det tar visserligen en del minne att dra igång 2 maskiner men för de fall när man absolut behöver det tycker jag det är värt det. I de flesta fall bör man väl kunna testa saker offline eller mot en staging fall. I de fall då man verkligen behöver ha en lokal är det väl bara att dra igång en till under den tid man behöver ha den?

Frost commented 12 years ago

Du har iofs en poäng med mysql-headers. Däremot finns det vissa tillfällen då man absolut vill ha mysql lokalt också, och det är bland annat om man använder saker som sqlite inte stöder. Nu minns jag inte exakt vad det var för saker, men jag vet att jag stött på det på någon av sektionens projekt.

Puppet är awesome, kan jag ju säga. Jag har pillat lite med det på jobbet, och jag är verkligen helt kär i det för serverconfigstuff. Jag kommer se till så att vi börjar använda det på sektionens server, även om det är i väldigt liten skala. Det underlättar så ofantligt mycket när man vill sätta upp en ny miljö.

vonbirdie commented 12 years ago

Att man ibland vill köra MySQL istället för SQLite säger jag inget om. Men jag vill fortfarande inte ha det installerat lokalt på mitt system ifall jag någonsin behöver en annan version av någon anledning eller jag lägger ner ett projekt och har någon tjänst installerat som drar minne om man inte hanterar processen manuellt.

Jo, jag har kollat lite på chef innan men efter någon timme med puppet verkar det väldigt mycket skönare att ha och göra med!

Frost commented 12 years ago

...sagt som en riktig sysadmin...

Jag har fått höra att "va? men du är ju railsutvecklare, de brukar tycka bättre om chef..." av mina sysadmin-polare. Jag anser dock inte att man behöver ha tillgång till hela ruby (vilket man har i chef), utan det räcker finfint med puppets egna configspråk. Har man tillgång till för mycket "makt" brukar man tendera till att göra mer och mer galna saker, och puppet/chef bör hålla sig till sånt det är bra på, och inte börja göra en massa annat.

Btw, det går rätt snabbt att komma in i puppet, iaf om man bara försöker skriva moduler/manifest för en maskin och sen köra dem med puppet apply. Jag antar dock att du kommer prata med någon form av MQ när det gäller jobb-grejerna ;p

Koronen commented 12 years ago

Ingen verkar bry sig om att fixa detta centralt längre. Jag stänger denna.

Frost commented 12 years ago

Jag tycker det är en fett bra idé, men jag har inget behov av det själv, och jag orkar inte göra allt, så om någon känner sig manad, tycker jag återöppnar denna och fixar det, annars håller jag med dig om att den bara ligger och skräpar.

Egentligen tycker jag dock att det borde vara lite mer centralt än bara cashflow, dvs att man drar ner en virtualbox-image eller något, som man sen kan utveckla alla datasektionen-projekt i.

Koronen commented 12 years ago

Precis min mening.

Frost commented 12 years ago

...och jag petade precis lite på @chav02 om saken... Vi får hoppas att det fastnar.