LINUX

Cómo implementar el entorno CKAN con complementos de datos de documentos y GIS

implementar CKANEsta guía lo guiará a través de la implementación y configuración de un repositorio CKAN usando Ubuntu 16.04. CKAN es un repositorio de conjuntos de datos de código abierto que se utiliza para recopilar y distribuir grandes colecciones de datos de todo tipo de fuentes, incluidos datos de censos, hojas de cálculo, datos geográficos, gubernamentales y de investigación.

Una vez que haya completado esta guía, tendrá un servidor de producción con CKAN 2.7 que está listo para importar un nuevo conjunto de datos, pero si desea comenzar con CKAN, debe verificar la documentación oficial para configurar un entorno de desarrollo.

Para completar esta guía necesitará:

  • Un VPS en la nube o una máquina virtual que ejecute Ubuntu 16.04 de 64 bits con una IP pública
  • Un nombre de dominio asociado a su VPS (también puede usar un subdominio)
  • Alguna experiencia trabajando con entornos virtuales de Python y el shell de línea de comandos
  • Algunos conocimientos sobre Apache, Nginx y Tomcat
  • Un conjunto de datos de muestra estructurado en formato CSV o Excel (Opcional)

1. Configure el sistema

Primero configuremos la máquina ubuntu con los paquetes requeridos:

una. Actualiza el servidor

$ sudo ssh root@$REMOTE_SERVER

apt update && apt upgrade

B. Crea una secuencia de comandos de respaldo

$ cat > /usr/bin/backme.sh
#! /bin/bash  -e

backme () {
  TIMESTAMP=$( date +'%s')
  for SOURCE_FILE in $*
  do
    cp -av $SOURCE_FILE ${SOURCE_FILE}-${TIMESTAMP}
  done
}

backme $*

exit $?
$ sudo chmod +x /usr/bin/backme.sh

C. Actualice la configuración del nombre de host del servidor, deberá reemplazar «xxxx» con la dirección IP de su servidor, también reemplace yourdomain.com con el dominio asignado a su servidor.

backme.sh /etc/hosts /etc/hostname

echo "ckanproduction.yourdomain.com" > /etc/hostname

echo -e "nx.x.x.x ckanproduction.yourdomain.com ckanproduction" >> /etc/hosts

$ sudo hostname ckanproduction.yourdomain.com

exit

$ sudo ssh root@$REMOTE_SERVER

D. Configurar una cuenta de usuario para implementar CKAN

adduser ckanadmin  

# USE THE INTERACTIVE PROGRAM TO SETUP A NEW USER AND PASSWORD TO MANAGE CKAN

echo -e "nckanadmin ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers

Además, puede utilizar «visudo» para configurar los permisos de usuario.

$ su - ckanadmin

mkdir .ssh 

$ cat > .ssh/authorized_keys
# INSERT A PUBLIC KEY TO ACCESS YOUR SERVER AS THE USER ckanadmin
chmod 700 .ssh

exit

$ ssh ckanadmin@$REMOTE_SERVER

mi. Instale las dependencias del paquete de software para CKAN

$ cat > packagelist
apache2
build-essential
git
git-core
jq
libapache2-mod-rpaf
libapache2-mod-wsgi
libffi-dev
libgeos-c1
libgeos-dev
libjts-java
libpq5
libpq-dev
libtomcat6-java
libxml2-dev
libxslt1-dev
links
openjdk-8-jdk
postgresql
postgresql-9.3-postgis-2.1
python-dev
python-jinja2
python-pastescript
python-pip
python-virtualenv
python-werkzeug
redis-server
solr-tomcat
tomcat8
unzip
virtualenvwrapper
zlib1g-dev
postfix
unzip
unrar
p7zip-full
python-gdal
$ sudo apt install -y $( cat packagelist )

$ sudo service apache2 stop

$ sudo apt install nginx -y

$ sudo service nginx stop

Nota: Utilice apt search packagename* para buscar la versión del paquete que sea compatible con su versión actual de Ubuntu y, en consecuencia, actualice el archivo ‘lista de paquetes’.

2. Descargue e instale el paquete CKAN para producción

Tenemos que descargar el archivo respectivo del sitio web de empaquetado de ckan usando el comando wget.

$ sudo wget http://packaging.ckan.org/python-ckan_2.7-trusty_amd64.deb

$ sudo dpkg -i python-ckan_2.7-trusty_amd64.deb

3. Configure una base de datos PostgreSQL

una. Verifique que PostgreSQL se instaló correctamente, Verifique que la codificación de las bases de datos sea UTF8

sudo -u postgres psql -l

B. A continuación, deberá crear un usuario de base de datos (utilice una contraseña diferente)

$ sudo -u postgres createuser -S -D -R -P ckan_default    

password: f!+hRnztXgDtKSLW9kY

C. Cree una nueva base de datos PostgreSQL,

$ sudo -u postgres createdb -O ckan_default ckan_default -E utf-8

database: ckan_default  

5. Configurar Solr

una. Edite el archivo de configuración de Tomcat

$ sudo backme.sh  /etc/tomcat8/server.xml

$ sudo sed -r -i "/Connector port="8080"/ s/$/address="127.0.0.1"/" /etc/tomcat6/server.xml

$ sudo sed -r -i "/port=.8080./ s/8080/8983/g" /etc/tomcat8/server.xml

$ diff /etc/tomcat8/server.xml /etc/tomcat8/server.xml.last   

sudo service tomcat8 restart

B. Reemplace el archivo schema.xml predeterminado con un enlace simbólico al esquema CKAN

$ sudo mv -v /etc/solr/conf/schema.xml /etc/solr/conf/schema.xml.orig.back

$ sudo ln -s /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml /etc/solr/conf/schema.xml

$ sudo service tomcat8 restart

C. Cambie la configuración de solr_url en su archivo de configuración de CKAN

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/solr_url/ s/^#//" /etc/ckan/default/production.ini

$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last

$ sudo ln -s /usr/bin/rotatelogs /usr/sbin/rotatelogs

$ sudo service tomcat8 restart

$ sudo service apache2 restart

links http://localhost:8983/solr/

$ ssh -L 8983:localhost:8983 ckanadmin@ckanproduction.yourdomain.com

Use a web browser to check http://localhost:8983/solr/

6. Actualice la configuración e inicialice la base de datos.

D. Configuración ckan.site_id

sudo backme.sh /etc/ckan/default/production.ini

sudo sed -i "/ckan.site_id/ s/default/tenosolution/" /etc/ckan/default/production.ini

diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last

mi. Configuración de ckan.site_url

sudo backme.sh /etc/ckan/default/production.ini

sudo sed -r -i "/ckan.site_url/ s/$/ http://ckanproduction.yourdomain.com/" /etc/ckan/default/production.ini  

diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last

C. Edite la configuración de sqlalchemy.url (sqlalchemy.url = postgresql: // ckan_default: pass @ localhost / ckan_default)

sudo backme.sh /etc/ckan/default/production.ini

sudo sed -i "/sqlalchemy/ s/pass/f!+hRnztXgDtKSLW9kY/"  /etc/ckan/default/production.ini

diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last

C. Inicialice su base de datos CKAN

$ sudo ckan db init

D. Reinicie los servidores web

$ sudo service apache2 restart

$ sudo service nginx restart    

7. Configuración de la cuenta de administrador y los datos de prueba

una. Inicializar el entorno virt

$ . /usr/lib/ckan/default/bin/activate

$ cd /usr/lib/ckan/default/src/ckan

B. Creación de un usuario administrador del sistema (configure una contraseña diferente)

paster sysadmin add mycompanyadmin -c /etc/ckan/default/production.ini

password: mycompanyadmin

C. Creando datos de prueba

$ paster create-test-data -c /etc/ckan/default/production.ini


D. Configure la propiedad de CKAN para instalar extensiones más tarde …

$ cd /usr/lib/ckan

$ sudo chown -R ckanadmin: default/

8. Configurar ckanext-space

una. Instalar PostGIS:

cd /usr/lib/ckan/default/src/ckan

$ sudo apt-get install postgresql-9.3-postgis-2.1 python-dev libxml2-dev libxslt1-dev libgeos-c1

B. crear las tablas y funciones necesarias en la base de datos

$ sudo -u postgres psql -d ckan_default -f /usr/share/postgresql/9.3/contrib/postgis-2.1/postgis.sql

$ sudo -u postgres psql -d ckan_default -f /usr/share/postgresql/9.3/contrib/postgis-2.1/spatial_ref_sys.sql

C. Cambiar el propietario de las tablas espaciales al usuario CKAN

sudo -u postgres psql -d ckan_default -c 'ALTER VIEW geometry_columns OWNER TO ckan_default;'

$ sudo -u postgres psql -d ckan_default -c 'ALTER TABLE spatial_ref_sys OWNER TO ckan_default;'

D. vea si PostGIS se instaló correctamente:

$ sudo -u postgres psql -d ckan_default -c "SELECT postgis_full_version()"

mi. Instala la extensión

$ cd /usr/lib/ckan/default/src

$ git clone https://github.com/okfn/ckanext-spatial.git

$ cd ckanext-spatial

$ sudo pip install -r pip-requirements.txt

$ python setup.py develop

F. Configure la extensión:

$ cd /usr/lib/ckan/default/src/ckanext-spatial

$ paster --plugin=ckanext-spatial spatial initdb 4326 -c /etc/ckan/default/production.ini

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/ckan.plugins =/ s/$/ spatial_metadata spatial_query/" /etc/ckan/default/production.ini

$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last

deactivate

9. Configure el FileStore

D. Crea el directorio de almacenamiento de archivos

$ sudo mkdir -p /var/lib/ckan/default

$ sudo chown -R www-data: /var/lib/ckan/default

$ sudo chmod -u+rwx /var/lib/ckan/default

mi. Habilitar FileStore y la carga de archivos

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -i "/ckan.storage_path/ s/^#//" /etc/ckan/default/production.ini

$ diff /etc/ckan/default/production.ini /etc/ckan/default/production.ini.last

$ sudo chown -R www-data: /var/lib/ckan

10. Instalar extensiones

una. Inicializar el entorno virt

$ . /usr/lib/ckan/default/bin/activate

una. Instale ckanext-spacesialUI (http://extensions.ckan.org/extension/spatialui/)

$ cd /usr/lib/ckan/default/src

$ git clone https://github.com/XVTSolutions/ckanext-spatialUI

$ cd ckanext-spatialUI

$ python setup.py develop

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/ckan.plugins =/ s/$/ spatialUI/" /etc/ckan/default/production.ini 

$ diff  /etc/ckan/default/production.ini  /etc/ckan/default/production.ini.last

B. Instale ckanext-pdfview (http://extensions.ckan.org/extension/pdfview/)

$ cd /usr/lib/ckan/default/src

$ git clone https://github.com/ckan/ckanext-pdfview.git

$ cd ckanext-pdfview

$ python setup.py develop

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/ckan.plugins =/ s/$/ resource_proxy pdf_view/" /etc/ckan/default/production.ini  

$ diff  /etc/ckan/default/production.ini  /etc/ckan/default/production.ini.last

C. Instale ckanext-officedocs (http://extensions.ckan.org/extension/officedocs/)

$ cd /usr/lib/ckan/default/src

$ git clone https://github.com/jqnatividad/ckanext-officedocs.git

$ cd ckanext-officedocs

$ python setup.py install

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/ckan.plugins =/ s/$/ officedocs_view/" /etc/ckan/default/production.ini 

$ diff  /etc/ckan/default/production.ini  /etc/ckan/default/production.ini.last

D. Instale ckanext-dictionary (http://extensions.ckan.org/extension/dictionary/)

$ cd /usr/lib/ckan/default/src

$ git clone https://github.com/cmuphillycapstone/ckanext-dictionary.git

$ cd ckanext-dictionary

$ python setup.py develop

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/ckan.plugins =/ s/$/ dictionary/" /etc/ckan/default/production.ini 

$ diff  /etc/ckan/default/production.ini  /etc/ckan/default/production.ini.last

gramo. Instale ckanext-geoview (https://github.com/ckan/ckanext-geoview)

$ cd /usr/lib/ckan/default/src

$ git clone https://github.com/ckan/ckanext-geoview.git

$ cd ckanext-geoview

$ python setup.py develop

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/ckan.plugins =/ s/$/ geo_view geojson_view wmts_view/" /etc/ckan/default/production.ini 

$ sudo sed -r -i "/ckan.views.default_views =/ s/$/ geo_view geojson_view wmts_view/" /etc/ckan/default/production.ini 

$ diff  /etc/ckan/default/production.ini  /etc/ckan/default/production.ini.last

h. Instale ckanext-geopusher (https://github.com/datacats/ckanext-geopusher)

$ cd /usr/lib/ckan/default/src

$ git clone https://github.com/datacats/ckanext-geopusher.git

$ cd ckanext-geopusher

$ backme.sh requirements.txt

$ sed -r -i "/celery/ s/$/==3.1.25/" requirements.txt

$ pip install -r requirements.txt

$ python setup.py develop

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/ckan.plugins =/ s/$/ geopusher/" /etc/ckan/default/production.ini 

$ sudo sed -i "100ickanext.geoview.ol_viewer.formats = wms kml geojson wfs" /etc/ckan/default/production.ini

$ diff  /etc/ckan/default/production.ini  /etc/ckan/default/production.ini.last

$ sudo service apache2 reload

deactivate

11. Configuración de DataStore (ejecútelo en una nueva terminal)

$ . /usr/lib/ckan/default/bin/activate

una. Habilitar el complemento del almacén de datos

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/ckan.plugins =/ s/$/ datastore/" /etc/ckan/default/production.ini

$ diff  /etc/ckan/default/production.ini  /etc/ckan/default/production.ini.last

B. Configure la base de datos, cree un database_user llamado datastore_default. (Utilice una contraseña diferente)

$ sudo -u postgres psql -l

$ sudo -u postgres createuser -S -D -R -P -l datastore_default

$ password: 7DN4ta2igWVlFj

$ sudo -u postgres createdb -O ckan_default datastore_default -E utf-8

C. Configure su configuración de CKAN

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i -e "/ckan.datastore.write_url/ s/^#//" -e "/ckan.datastore.write_url/ s/ckan_default:pass/ckan_default:f!+hRnztXgDtKSLW9kY/" /etc/ckan/default/production.ini

$ sudo sed -r -i -e "/ckan.datastore.read_url/ s/^#//" -e "/ckan.datastore.read_url/ s/datastore_default:pass/datastore_default:7DN4ta2igWVlFj/" /etc/ckan/default/production.ini

$ diff  /etc/ckan/default/production.ini  /etc/ckan/default/production.ini.last

D. Establezca permisos, use este comando para una instalación de código fuente

$ sudo ckan datastore set-permissions | sudo -u postgres psql --set ON_ERROR_STOP=1

mi. Configurar datapusher

$ sudo backme.sh /etc/ckan/default/production.ini

$ sudo sed -r -i "/ckan.plugins =/ s/$/ datapusher/" /etc/ckan/default/production.ini 

$ sudo sed -r -i "/datapusher/ s/^#ckan/ckan/" /etc/ckan/default/production.ini

$ diff  /etc/ckan/default/production.ini  /etc/ckan/default/production.ini.last  

12. Reinicie los servicios web.

$ sudo -i

$ service tomcat8 restart; service apache2 restart;  service nginx restart

Debería poder acceder a su repositorio de CKAN en http://ckanproduction.yourdomain.com e iniciar sesión con el usuario administrador creado anteriormente.

Por favor refiérase a ckan docs para obtener más detalles sobre cómo administrar y configurar su nuevo sitio.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar