Instalando Apache #superset en Debian 12 con #vagrant

Requisitos

    Vagrant
    App de máquinas virtuales, en mi caso Vmware Workstatition
    Para el caso de Vmware necesitaremos el plugin vagrant de Vmware
Info

Descargando la box vagrant de Debian 12

Creamos la carpeta donde vayamos a contener nuestra MV y descargamos la Box, en mi caso Debian 12.
vagrant init generic/debian12

Preparando la box para funcionar directamente con #Docker

Esto no es necesario hacerlo en #Vagrant pero si lo dejamos ya preparado nos puede valer para futuras pruebas con un contenedor #Docker. Para ello modificamos el vagrantfile
# Modificar Vagrantfile
notepad .\Vagrantfile
El aspecto de mi Vagrantfile es este:
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  config.vm.box = "generic/debian12"
  config.vm.hostname = "Debian12conDocker"
  config.vm.provider "vmware_desktop" do |vmware|
    vmware.vmx["memsize"] = "4096"
    vmware.vmx["numvcpus"] = "4"
  end

  config.vm.provision "shell", inline: <<-SHELL
    apt update
    # Add Docker's official GPG key:
    apt install ca-certificates curl
    install -m 0755 -d /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
    chmod a+r /etc/apt/keyrings/docker.asc

    # Add the repository to Apt sources:
    echo \
      "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
      $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
      tee /etc/apt/sources.list.d/docker.list > /dev/null
    apt update
    apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  SHELL
end
Otra alternativa es con el plugin de vagrant-docker:
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  config.vm.box = "generic/debian12"
  config.vm.hostname = "Debian12conDockerPlug"

  # require plugin https://github.com/leighmcculloch/vagrant-docker-compose
  config.vagrant.plugins = "vagrant-docker-compose"

  # install docker and docker-compose
  config.vm.provision :docker
  config.vm.provision :docker_compose

  config.vm.provider "vmware_desktop" do |vmware|
    vmware.vmx["memsize"] = "4096"
    vmware.vmx["numvcpus"] = "4"
  end
end
Creando la máquina virtual. El --debug es para ver por pantalla todo lo que va realizando.
vagrant up --provider=vmware_desktop --debug

Instalando Apache Superset 3

Primero entramos por ssh a nuestra MV recién creada.
vagrant ssh
Entramos como root
sudo su
Clonamos la última version del git de apache #superset
git clone https://github.com/apache/superset.git
Entramos en la carpeta
cd superset
Y podemos arrancar la app. La primera vez tardará más porque tiene que descargar todos los contenedores:
docker compose up
Veremos que tarda porque crea también una base de datos de ejemplos que es perfecto para empezar a cacharrear y ver como crea algunos gráficos y dashboards.
Una vez está todo ok podemos entrar con el navegador a través de http://[ipdelaMV]:8088 con user admin y password admin
Si quieres saber la ip puedes hacerlo con ip -4 a s
A mi de primeras nunca me va la version 3. Así que os voy a poner las cosas que he cambiado.
Primero borramos los contenedores docker compose down -v
Generar SECRET_KEY
openssl rand -base64 42
Añadimos este al final del documento docker/.env-non-dev
SUPERSET_SECRET_KEY=01N441iqyc7HALv82HshIMPYP+KVe7MiIXdb7xD6MDW0jnXdS94qM8W0
Para que funcione con SQL Server hay que añadir un fichero para que instale el driver. Para otros drivers consultar aquí
touch ./docker/requirements-local.txt
echo "pymssql" >> ./docker/requirements-local.txt
Lanzamos de nuevo los contenedores
docker compose -f docker-compose-non-dev.yml up -d
Para ver los logs para ver como va:
docker compose -f docker-compose-non-dev.yml logs -f
Y ahora tras un rato que inicialice la base de datos con ejemplos y otras cosas ya podremos acceder a nuestro Apache Superset.
Ya puedes conectar con tu base de datos y empezar a hacer tus gráficas y dashboards con un programa open source.