CKAN: Instalación y configuración
Despliegue de CKAN con Ansible
Clona este repositorio en tu máquina local y edita las variables del archivo playbook/host_vars/production_01.yml
:
git clone https://github.com/mjanez/ckan-ansible.git && cd ckan-ansible
Recuerda cambiar las variables de configuración de CKAN antes de ejecutar el playbook de Ansible. Específicamente la información del usuario/contraseña del host (ansible_user
, ansible_password
, etc.) y la configuración de CKAN: ckan_sysadmin_name
, ckan_sysadmin_password
y ckan_sysadmin_email
. También el proxy_server_name
y nginx_port
para un despliegue correcto.
Edita las variables de los hosts en la carpeta inventory
y añade las direcciones IP o el hostname
de los servidores de despliegue objetivo para el entorno específico.
Personaliza las configuraciones de despliegue en host_vars/*
para que coincidan con tus requisitos. Modifica cualquier variable necesaria, como las credenciales de la base de datos, las versiones de CKAN y otros ajustes específicos.
También, si estás utilizando una autenticación de contraseña SSH para repositorios privados, crea un par de claves SSH y copia las claves en ./playbook/roles/common/files/keys
. Los nombres de los archivos del par de claves deben comenzar con id_ (por ejemplo, id_rsa
+ id_rsa.pub
)
Ejemplo de despliegue
-
Selecciona el entorno que quieres desplegar, por ejemplo:
rhel
. -
Edita el archivo
playbook/host_vars/production_01.yml
. Indica la ruta a la clave privada SSH si no estás utilizando autenticación por contraseña (ansible_ssh_private_key_file
/ansible_ssh_pass
). -
Ejecuta el playbook de Ansible para desplegar CKAN en el servidor objetivo. El siguiente comando desplegará CKAN en el servidor objetivo utilizando la configuración del playbook. La bandera
-vvv
se utiliza para una salida detallada:# Ubicación del archivo ansible.cfg basado en el directorio clonado
export ANSIBLE_CONFIG=$(pwd)/playbook/ansible.cfg
# Ubicación si ckan-ansible se clona en el directorio home
export ANSIBLE_CONFIG=$HOME/ckan-ansible/playbook/ansible.cfg
# Ejecuta el playbook de ansible, Verbose con -vvv
ansible-playbook $HOME/ckan-ansible/playbook/playbook.ymlLa variable de entorno
ANSIBLE_CONFIG
se utiliza para especificar la ubicación del archivoansible.cfg
. Esto es útil cuando tienes varias configuraciones de Ansible y quieres especificar cuál usar, por ejemplo,rhel-9
,ubuntu-20.04
, etc.
El archivo
*/host_vars/*.yml
contiene variables de configuración personalizables para el despliegue, incluyendo las credenciales de la base de datos, la versión de CKAN y la configuración del servidor web. Revisa y modifica estas antes de ejecutar el playbook de Ansible.
Comprobar que los servicios están en funcionamiento
Después del despliegue, puedes comprobar el estado de los servicios utilizando el comando supervisorctl
. Este comando proporciona una interfaz de línea de comandos al sistema de control de procesos Supervisor, que te permite controlar y monitorizar tus servicios.
Los servicios generados por ckan-Ansible incluyen:
ckan
, un sistema de gestión de datos de código abierto para alimentar hubs de datos y portales de datos que se sirve a través de uWSGI y NGINX.ckan-pycsw
, un servicio web completo para catalogar datos geoespaciales. Software para lograr la interoperabilidad con los portales de datos abiertos basados en CKAN. Para hacer esto,ckan2pycsw
lee datos de una instancia usando la API de CKAN, genera metadatos INSPIRE ISO-19115/ISO-19139 [^3] usando pygeometa, o otro esquema personalizado, y llena una instancia de pycsw que expone los metadatos usando CSW y OAI-PMH.ckan-xloader
, trabajador para cargar rápidamente datos en DataStore. Un reemplazo para DataPusher.- Trabajadores utilizados para la recolección remota. El trabajador
ckan_harvester_run
se utiliza para ejecutarse periódicamente, los recolectores y el trabajadorckan_harvester_fetch
se utiliza para recuperar los datos de los servidores remotos y prepararlos para el trabajadorckan_harvester_run
. También el trabajadorckan_harvester_gather
se utiliza para identificar los recursos remotos que necesitan ser recolectados. Finalmente, el trabajadorckan_harvester_clean_log
se utiliza para limpiar periódicamente los registros de los recolectores.
Para comprobar el estado de estos servicios, puedes utilizar el comando supervisorctl status
. Aquí tienes un ejemplo:
$ supervisorctl status
ckan_fetch_consumer RUNNING pid 2684195, uptime 0:00:50
ckan_gather_consumer RUNNING pid 2684193, uptime 0:00:50
ckan_harvester_clean_log STOPPED Not started
ckan_harvester_run EXITED May 07 01:12 PM
ckan_pycsw RUNNING pid 2684197, uptime 0:00:50
ckan_uwsgi:ckan_uwsgi-00 RUNNING pid 2684194, uptime 0:00:50
ckan_xloader:ckan_xloader-00 RUNNING pid 2684198, uptime 0:00:50