- Python (almeno v2.7.9) con abilitato il supporto alle librerie condivise (files *.so)
- git (almeno v1.7.1)
- Apache (almeno v2.2.15)
- Tool RedHat per sviluppatori (yum install "Development Tools" o equivalente)
- Accesso un server PostgreSQL, con indirizzo IP e 2 utenze, una per il db ckan e l'altra per il datastore
- Accesso ad un server SOLR (almeno v6.6.6)
- Accesso ad un server REDIS (almeno v3.2.12)
Nelle seguenti istruzioni si fa riferimento ad un utente di sistema ckan che abbia come gruppo primario ckan ed home directory /opt/opendata/ckan. Se necessario fare riferimento all'utente e directory prescelta al momento dell'installazione.
-
Clonare il repository, creare il virtual environment python, attivarlo ed aggiornarlo
Fare login come utente
ckancd git clone https://github.com/lynxlab/ckan28-lazio.git virtualenv --no-site-packages /opt/opendata/ckan/ckan28-lazio/ckan28 cd ckan28-lazio/ckan28 . bin/activate pip install --upgrade pip pip install --upgrade setuptools wheelATTENZIONE: da questo punto in poi, per tutti i comandi di tipo pip, paster, python si assume che il virtual environment ckan28 sia stato attivato.
-
Installare e compilare i sorgenti ckan
pip install -r requirements.txtSe ci fossero problemi nella compilazione del modulo wsgi per apache probabilmente python non è configurato per supportare le libreire condivise; fare riferimento alla sezione Note di questo file per possibili aiuti. Potrebbe essere necessario installare il pacchetto
httpd-devel(yum install httpd-devel) -
Configurare il file
etc/production.inifacendo massima attenzione alle credenziali di accesso ai DB, a tutte le url coinvolte (solr, redis, etc...) ed alle directory di filesystem necessarie (storage_path, files *.ini, etc...). -
Controllare e sistemare i permessi della directory dello storage (ckan.storage_path) e della cache (cache_dir) in modo che sia leggibile e scrivibile dall'utente di sistema
ckane/o dal gruppo di sistemackan -
Se necessario, creare un nuovo core di solr oppure usare quello esistente, in ogni caso copiare i files
solr-config/solrconfig.xmlesolr-config/schema.xmlnella directory di configurazione del core di solr, da cui è necessario anche rinominare il filemanaged-schemain un nome a piacere, ad esempiomanaged-schema.disabled. Se i file sono stati modificati o sovrascritti, riavviare SOLR. -
Eseguire l'aggiornamento del database ckan alla versione 2.8.4
cd src/ckan paster db upgrade -c ../../etc/production.ini -
Configurazione plugin spatial
paster --plugin=ckanext-spatial spatial initdb 4326 --config=../../etc/production.ini -
Creazione tabelle plugin multilang
paster --plugin=ckanext-multilang multilangdb initdb --config=../../etc/production.ini -
Ricostruzione indice SOLR
Per via di alcuni bug in ckan, è necessario commentare i plugin
multilingual_group,multilingual_tagdal file di configurazione, dopo averlo fatto:paster --plugin=ckan search-index rebuild --config=../../etc/production.iniDecommentare i plugin commentati in precedenza.
-
Configurare apache per usare il modulo wsgi compilato al punto 3 ed il virtualhost per ckan (necessario utente root)
Modificare il file
/opt/opendata/ckan/ckan28-lazio/ckan28/etc/ckan28.wsgiscrivendo a riga 3 il path assoluto in uso.Commentare l'unica riga presente ed aggiungere
LoadModule wsgi_module /opt/opendata/ckan/ckan28-lazio/ckan28/lib/python2.7/site-packages/mod_wsgi/server/mod_wsgi-py27.soal file/etc/httpd/conf.d/wsgi.conf.Nota: La posizione del file e/o la direttiva LoadModule wsgi_module potrebbero variare dipendentemente dall'installazione di apache.
Modificare il file
etc/httpd/conf.d/mod_jk.conf(o il file dove è definito il VirutalHost per ckan) sostiuendo percorsi e nome utente/gruppo giusti, ad esempioWSGIScriptAlias /catalog /opt/opendata/ckan/ckan28-lazio/ckan28/etc/ckan28.wsgie
WSGIDaemonProcess ckan_produzione display-name=ckan_produzione processes=2 threads=15 user=ckan group=ckan WSGIProcessGroup ckan_produzioneNota: Fare attenzione ad usare i percorsi di file e nome/utente gruppo corretti. La posizione del file e/o le configurazioni WSGIScriptAlias, WSGIDaemonProcess potrebbero variare dipendentemente dall'installazione di apache.
ATTENZIONE: Se è in uso il sistema Selinux, disattivarlo oppure configurarlo opportunamente.
Riavviare di apache.
-
Fare login in ckan (alla url configurata nel file production.ini) e dall'interfaccia web creare i seguenti gruppi:
| url | Nome |
|---|---|
| cultura | Cultura |
| agricoltura-pesca | Agricoltura e pesca |
| ambiente | Ambiente |
| attivita-produttive | Attività produttive |
| finanze-patrimonio | Finanze |
| mobilita-infrastrutture | Mobilità e infrastrutture |
| politiche-sociali-giovanili | Politiche sociali e giovanili |
| sanita | Sanità |
| territorio | Territorio |
| turismo-sport | Turismo, sport e tempo libero |
| formazione-lavoro | Formazione e lavoro |
| pubblica-amministrazione | Istituzioni e politica |
ATTENZIONE In questa fase è necessario caricare le icone dei gruppi man mano che si creano.
-
Creazione e popolazione tabelle plugin dcatapit
Nota: Se in questi comandi venisse restituito un errore simile a
Exception TypeError: TypeError("'NoneType' object is not callable",) in <bound method Connection.__del__ of Connection<host=127.0.0.1,port=6379,db=0>> ignored, può essere ignoratocd /opt/opendata/ckan/ckan28-lazio/ckan28/src/ckanext-dcatapit paster --plugin=ckanext-dcatapit vocabulary initdb --config=../../etc/production.ini paster --plugin=ckanext-dcatapit vocabulary load --url "https://op.europa.eu/o/opportal-service/euvoc-download-handler?cellarURI=http%3A%2F%2Fpublications.europa.eu%2Fresource%2Fcellar%2Fe887963f-d894-11e9-9c4e-01aa75ed71a1.0001.05%2FDOC_1&fileName=languages-skos.rdf" --name languages --config=../../etc/production.ini paster --plugin=ckanext-dcatapit vocabulary load --url "https://op.europa.eu/o/opportal-service/euvoc-download-handler?cellarURI=http%3A%2F%2Fpublications.europa.eu%2Fresource%2Fcellar%2F8e06fe1d-261d-11e8-ac73-01aa75ed71a1.0001.02%2FDOC_1&fileName=data-theme-skos.rdf" --name eu_themes --config=../../etc/production.ini paster --plugin=ckanext-dcatapit vocabulary load --url "https://op.europa.eu/o/opportal-service/euvoc-download-handler?cellarURI=http%3A%2F%2Fpublications.europa.eu%2Fresource%2Fcellar%2F3306cc97-4366-11ea-b81b-01aa75ed71a1.0001.02%2FDOC_1&fileName=places-skos.rdf" --name places --config=../../etc/production.ini paster --plugin=ckanext-dcatapit vocabulary load --url "https://op.europa.eu/o/opportal-service/euvoc-download-handler?cellarURI=http%3A%2F%2Fpublications.europa.eu%2Fresource%2Fcellar%2Fe20301fe-928e-11e9-9369-01aa75ed71a1.0001.02%2FDOC_1&fileName=frequencies-skos.rdf" --name frequencies --config=../../etc/production.ini paster --plugin=ckanext-dcatapit vocabulary load --url "https://op.europa.eu/o/opportal-service/euvoc-download-handler?cellarURI=http%3A%2F%2Fpublications.europa.eu%2Fresource%2Fcellar%2F2c036d46-6891-11ea-b735-01aa75ed71a1.0001.04%2FDOC_1&fileName=filetypes-skos.rdf" --name filetype --config=../../etc/production.ini paster --plugin=ckanext-dcatapit vocabulary load --filename ../../etc/regions.rdf --name regions --config=../../etc/production.ini paster --plugin=ckanext-dcatapit vocabulary load --filename examples/eurovoc_mapping.rdf --name subthemes --config=../../etc/production.ini examples/eurovoc.rdf paster --plugin=ckanext-dcatapit vocabulary load --filename examples/licenses.rdf --name licenses --config=../../etc/production.ini -
Far girare lo script lynx che relizza le mappature categoria => tema e gruppo
cd /opt/opendata/ckan/ckan28-lazio/scriptsconfigurare lo script modificando il file
conf.inicon le informazioni necessariepython dbrepair_script.py map-themescontrollare che non ci siano errori e che non siano stati creati file di errore come descritto in
cd /opt/opendata/ckan/ckan28-lazio/scritps/README.md. Se tutto è andato bene, rendere persistenti le modifiche:python dbrepair_script.py map-themes commitNota: Il messaggio stampato dallo script
FAILED 2: {'member': [], 'theme': [], 'extra': []}significa che gli elementi andati in errore degli oggetti member, theme ed extra sono vuoti: cioè non si è verificato nessun errore. -
Ottenere lo script sql per settare i permessi e creare procedure necessarie al datapusher
cd /opt/opendata/ckan/ckan28-lazio/ckan28 paster --plugin=ckan datastore set-permissions -c etc/production.ini > datastore-permissions.sqlTrasmettere il file
datastore-permissions.sqlal DBA con la richiesta di farlo girare nel database del datastore, con permessi di superutente postgres.
-
Disattivare il virtualenvironment ckan28, crearne uno per il datapusher ed attivarlo
cd deactivate virtualenv --no-site-packages /opt/opendata/ckan/ckan28-lazio/datapusher cd ckan28-lazio/datapusher . bin/activate pip install --upgrade pip pip install --upgrade setuptools wheelATTENZIONE: da questo punto in poi, per tutti i comandi di tipo pip, paster, python si assume che il virtual environment datapusher sia stato attivato.
-
Installare il datapusher
pip install -r requirements.txt -
Configurare il virtualhost per il datapusher
Modificare il file
/opt/opendata/ckan/ckan28-lazio/datapusher/etc/datapusher.wsgiscrivendo a righe 5 e 9 il path assoluto in uso.Modificare il file
etc/httpd/conf.d/datapusher.confsostituendo percorsi e nome utente/gruppo giusti, ad esempioWSGIScriptAlias / /opt/opendata/ckan//ckan28-lazio/datapusher/etc/datapusher.wsgie
WSGIDaemonProcess datapusher display-name=datapusher processes=1 threads=15 user=ckan group=ckanNota: Fare attenzione ad usare i percorsi di file e nome/utente gruppo corretti. La posizione del file e/o le configurazioni WSGIScriptAlias, WSGIDaemonProcess potrebbero variare dipendentemente dall'installazione di apache.
ATTENZIONE: Controllare e sistemare i permessi della directory e dei file in uso al datapusher (
/tmp/ckan_service.loge/tmp/job_store.db, i file possono essere cancellati e verrano ricreati)Riavviare di apache.
-
Testare il datapusher (opzionale)
curl http://127.0.0.1:8800
-
Disattivare il virtualenvironment datapusher attivare ckan28
deactivate cd /opt/opendata/ckan/ckan28-lazio/ckan28 . bin/activate cd src/ckan -
Resubmit di tutte le risorse al datapusher
Per via di alcuni bug in ckan, è necessario commentare i plugin
multilingual_group,multilingual_tagdal file di configurazionepaster --plugin=ckan datapusher resubmit -c ../../etc/production.ini -
Creazione/aggiornamento delle viste delle risorse
Per via di alcuni bug in ckan, è necessario commentare i plugin
multilingual_group,multilingual_tagdal file di configurazionepaster views create --config=../../etc/production.ini -
Ricostruzione indice SOLR
Per via di alcuni bug in ckan, è necessario commentare i plugin
multilingual_group,multilingual_tagdal file di configurazionepaster --plugin=ckan search-index rebuild --config=../../etc/production.ini -
Decommentare i plugin commentati in precedenza.
-
Riavviare apache
-
Compilazione, installazione di python2.7.9 e mod_wsgi
# ./configure --enable-shared # make altinstallCi potrebbero dei problemi relativi ai percori di installazione delle librerie condivise di python, capire dove il sistema le cerca e fare un link simbolico, ad esempio:
# ln -s /usr/local/lib/libpython2.7.so.1.0 /usr/lib64/