okffi / katalogi

Suomen yhteisövetoinen datakatalogi
10 stars 0 forks source link

Capistrano skripti CKANin asentamiseen #4

Open pe3 opened 11 years ago

pe3 commented 11 years ago

Pyritään ottamaan CKAN-instanssi mahdollisimman täydellisesti versionhallinnan ja toistettavuuden piiriin. Tavoitteena on, että ajossa olevasta instanssista voi tehdä itselleen täydellisen lokaalin kopion yhdellä skriptillä.

Tämä tarkoittaa manuaalisen konffaililun sijaan ylläpitoskriptien kirjoittamista jollakin deployment-kehikolla. Projektista kiinnostuneilla ihmisillä on kokemusta Capistranosta. Ruvetaan selvittelemään sen soveltuvuutta.

Ennen Capistranon käyttöönottoa voi olla fiksua opetella asentamaan CKAN itsellee pulimanuaalisesti Rakella. Capistranon webbisivulla todetaan: "Capistrano extends the Rake DSL with methods specific to running commands on() servers". Rake vois siksi olla helppo ensimmäinen askel lokaaliin kokeiluun. Sen jälkeen ainakin OSX:ssä voi helposti laittaa oman SSH-serverin pystyyn, jolle voi ruveta juttelemaan Capistranolla. Capistranon kokeilemisen voi aloittaa helpohkolla serverin tilan kyselyllä.

kyyberi commented 11 years ago

Muutama linkki, joissa tietoa halukkaille: http://guides.beanstalkapp.com/deployments/deploy-with-capistrano.html http://www.linuxjournal.com/magazine/using-capistrano

Deploying With Capistrano Without Rails - http://ryanflorence.com/deploying-with-capistrano-without-rails/

pe3 commented 11 years ago

@kyyberi tarkoittaako tämä nyt sitä, että ensimmäinen hommamme on muuntaa ckan:in asennusohje capistrano-skriptiksi?

pe3 commented 11 years ago

Tutkailin eilen pikaisesti asentelua - hyvä etenemistapa vois olla ensin asentaa CKAN itselleen lokaalisti puolimanuaalisesti kirjoittamalla asennusohje Rake-skriptiksi. Capistrano on aika lähellä Rakea, sitten kun haluaa siirtyä etätoimintoihin. Rupesin jo kirjoittamaan skriptiä joka hakee kaikkien CKANin vaatimien ohjelmistojen versionumerot, mutta se jäi kesken.

kyyberi commented 11 years ago

Hyvä! Tarvitsemme joka tapauksessa Rubyä, joten...

Asensin servulle RVM:n, jonka kautta hallitaan Ruby asennuksia. Ehdotan että serverillä ajetaan ohjelmia käyttäjällä: 'kayttaja'. Sen profilessa on nyt defaultina ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux]

RVM on nyt single user, ei siis kaikilla käytössä.

pe3 commented 11 years ago

Olin kirjoittanu läppärilleni tämmöisen ja unohtanu sen sinne homehtumaan. Kopsaan sen tähän talteen ja tiedoksi muille. Kirjoitin tän alunperin englanniksi, kun ajattelin, että tästä saattaa jossakin vaiheessa kehkeytyä kansainvälisestikin kiinnostava proggis.


Bigger plan

We want to customize and set up our own CKAN 2 instance. We want to use a distributed development model where individual developers who we dont even know can test and improve on the full system on their own computers (and send us pull requests). We might have a separate staging machine where contributions are first tested or maybe one of the server administrators does the double checking on his laptop.

In the spirit of DevOps it is important to automate different operational processes as much as possible. An upgrade should be fully automated and there should be an undo so that it is possible to quickly return to a previous deployment. For example Capistrano seems to provide this kind of functionality (at least for Rails projects). More research on this is needed.

I know it is a lot of work. Luckily we don't have to cover all manual operations at first but we can improve the deployment scripts gradually. Hoverver over time this may become very interesting.

The first step is to enable easy development environment set up.

Install CKAN on OSX

It seems that CKAN's software requirements can be met with an OSX machine relying on Homebrew packet management.

Requirement Description Brew package
Python The Python programming language, v2.6 or 2.7 python
PostgreSQL The PostgreSQL database system, v8.4 or newer postgresql
libpq The C programmer’s interface to PostgreSQL postgresql [1]
pip A tool for installing and managing Python packages pip [2]
virtualenv The virtual Python environment builder available as pip [3]
Git A distributed version control system git
Apache Solr A search platform solr
Jetty An HTTP server (used for Solr) jetty
OpenJDK 6 JDK The Java Development Kit osx default? [4]

[1] = libpq is included in the postgresql brew package

[2] = pip is included in the python brew package

[3] = can be installed with pip install virtualenv

[4] = I haven't found openjdk as a package. Could OSX default JDK be used? Terminal java -version says java version "1.6.0_51" Is that different from OpenJDK 6 JDK?