Instalación

Teniendo en cuenta la dificultad de implementación e incluso la cantidad de pasos para lograr un deploy existoso, existen dos formas de instalar esta distribución de CKAN.

Dependencias

Instalación simplificada de andino

La idea detrás de esta implementación de CKAN es que sólo te encargues de tus datos, nada más. Por eso, si "copiás y pegás" el comando de consola, en sólo unos momentos, tendrás un Andino listo para usar. Esta clase de instalación no requiere que clones el repositorio, ya que usamos contenedores alojados en DockerHub

Para la instalación, usamos un script de python llamado install.py. El mismo requiere algunos parámetros específicos, y existen otros que son opcionales:

# Parametros de install.py
    [-h]                    Mostrar la ayuda del script
    --error_email           Email donde se mandaran los errores del portal de ser necesario
    --site_host             Dominio o IP del la aplicación *sin el protocolo*
    --database_user         Nombre del usuario de la base de datos a crear
    --database_password     Contraseña de la base de datos a crear
    --datastore_user        Nombre del usuario de la base de datos del datastore a crear
    --datastore_password    Contraseña de la base de datos del datastore a crear
    [--nginx-extended-cache]
        Configura nginx con una configuración extendida y configura el hook de
        invalidación de cache de Andino para notificar a nginx
    [--nginx_port NGINX_PORT]
        Puerto del servidor "Host" que se desea que se tome para recibir llamadas HTTP.
        Por defecto es el 80.
    [--datastore_port DATASTORE_PORT]
        Puerto del servidor "Host" que se desea que se tome para recibir llamadas HTTP al "datastore".
        Por defecto es el 8800.
    [--install_directory INSTALL_DIRECTORY]
        Directorio donde se desea instalar la aplicación.
        Por defecto es `/etc/portal` (recomendado)

Para esta instalación de ejemplo, usaremos estos parámetros para la aplicación. Para los demás, usaremos los valores por defecto:

NOTA: Si usamos una IP para la variable HOST, el envio de mails no funcionará. Postfix require un "fully-qualified domain name (FQDN)". Ver la documentación de Postfix para más detalles.

# Primero especificamos los valores necesarios

EMAIL=admin@example.com
HOST=andino.midominio.com.ar
DB_USER=my_database_user
DB_PASS=my_database_pass
STORE_USER=my_data_user
STORE_PASS=my_data_pass

wget https://raw.github.com/datosgobar/portal-andino/master/install/install.py

sudo python ./install.py \
    --error_email "$EMAIL" \
    --site_host="$HOST" \
    --database_user="$DB_USER" \
    --database_password="$DB_PASS" \
    --datastore_user="$STORE_USER" \
    --datastore_password="$STORE_PASS"

Instalación avanzada de andino

La instalación avanzada está pensada para usuarios que quieren ver cómo funciona internamente Andino

Para instalar y ejecutar Andino, seguiremos estos pasos:

sudo mkdir /etc/portal
cd /etc/portal
sudo git clone https://github.com/datosgobar/portal-andino.git .

NOTA: Debemos usar un dominio válido para la variable DOMINIO, de otra forma el envio de mails no funcionará. Postfix require un "fully-qualified domain name (FQDN)". Ver la documentación de Postfix para más detalles.

DB_USER=<my user>
DB_PASS=<my pass>
DOMINIO=andino.midominio.com.ar
ANDINO_VERSION=<version que deseamos instalar>
sudo su -c "echo POSTGRES_USER=$DB_USER > .env"
sudo su -c "echo POSTGRES_PASSWORD=$DB_PASS >> .env"
sudo su -c "echo NGINX_HOST_PORT=80 >> .env"
sudo su -c "echo DATASTORE_HOST_PORT=8800 >> .env"
sudo su -c "echo maildomain=$DOMINIO >> .env"
sudo su -c "echo ANDINO_TAG=$ANDINO_VERSION >> .env"
EMAIL=admin@example.com
HOST=datos.gob.ar
DB_USER=<my db user>
DB_PASS=<my db pass>
STORE_USER=<my datastore user>
STORE_PASS=<my datastore password>
docker-compose -f latest.yml exec portal /etc/ckan_init.d/init.sh -e "$EMAIL" -h "$HOST" \
        -p "$DB_USER" -P "$DB_PASS" \
        -d "$STORE_USER" -D "$STORE_PASS"

Desinstalar andino

Esta secuencia de comandos va a ELIMINAR TODOS LOS CONTENEDORES, IMÁGENES y VOLUMENES de la aplicación de la vm donde está instalada la plataforma.

Esta operación no es reversible. Perderás todos tus datos si realizas esta operación.

app_dir="/etc/portal/"
cd $app_dir
docker-compose -f latest.yml down -v
cd ~/
sudo rm $app_dir -r