push comp
	
		
			
	
		
	
	
		
			
				
	
				oginstaller/pipeline/head There was a failure building this commit
				
					Details
				
			
		
	
				
					
				
			
				
	
				oginstaller/pipeline/head There was a failure building this commit
				
					Details
				
			
		
	
							parent
							
								
									8162f5b3c3
								
							
						
					
					
						commit
						5a7952efe3
					
				| 
						 | 
				
			
			@ -0,0 +1,150 @@
 | 
			
		|||
#!/usr/bin/bash 
 | 
			
		||||
 | 
			
		||||
# Paso 1: Seleccionar los componentes
 | 
			
		||||
# Los componentes a instalar se encuentran en el directorio /tmp/opengnsys-installer-configs
 | 
			
		||||
 | 
			
		||||
# Set configuration 
 | 
			
		||||
 | 
			
		||||
function install_docker() {
 | 
			
		||||
    apt-get -y update
 | 
			
		||||
    apt-get -y install ca-certificates curl
 | 
			
		||||
    install -m 0755 -d /etc/apt/keyrings
 | 
			
		||||
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
 | 
			
		||||
    chmod a+r /etc/apt/keyrings/docker.asc
 | 
			
		||||
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
 | 
			
		||||
    tee /etc/apt/sources.list.d/docker.list > /dev/null
 | 
			
		||||
    apt-get -y update
 | 
			
		||||
    apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
 | 
			
		||||
    systemctl enable docker  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function install_ogcore_docker() {  
 | 
			
		||||
cat <<EOF > /etc/systemd/system/ogcore.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Servicio para ejecutar Docker Compose de ogCore
 | 
			
		||||
After=docker.service
 | 
			
		||||
Requires=docker.service
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
WorkingDirectory=/opt/opengnsys/ogCore/repo/
 | 
			
		||||
ExecStart=/usr/bin/docker compose -f /opt/opengnsys/ogCore/etc/docker-compose-deploy.yml up
 | 
			
		||||
ExecStartPost=/opengnsys-installer/provision_ogcore.sh
 | 
			
		||||
ExecStop=/usr/bin/docker compose -f /opt/opengnsys/ogCore/etc/docker-compose-deploy.yml stop
 | 
			
		||||
Restart=always
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
    systemctl daemon-reload
 | 
			
		||||
    systemctl enable --now ogcore
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function install_oggui_docker() {
 | 
			
		||||
    # Sacar la IP del ogCore de la configuración
 | 
			
		||||
    oggui_version=$(jq -r '.container_version' /opt/opengnsys/ogGui/installer/config.json)
 | 
			
		||||
    # Exportar los valores como variables de entorno
 | 
			
		||||
    ENV_DIR=/opt/opengnsys/ogGui/etc/
 | 
			
		||||
    ENV_FILE=$ENV_DIR/.env
 | 
			
		||||
 | 
			
		||||
    cat <<EOF > /etc/systemd/system/oggui-app.service
 | 
			
		||||
[Unit]
 | 
			
		||||
Description=Servicio para contenedor Docker de OgGui
 | 
			
		||||
After=docker.service
 | 
			
		||||
Requires=docker.service
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
Restart=always
 | 
			
		||||
ExecStartPre=/opengnsys-installer/provision_oggui.sh
 | 
			
		||||
ExecStart=/usr/bin/docker run --rm --name ogGui-app -p 4200:4200 -v $ENV_FILE:/app/.env opengnsys/oggui:$oggui_version
 | 
			
		||||
ExecStop=/usr/bin/docker stop ogGui-app
 | 
			
		||||
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
EOF
 | 
			
		||||
 | 
			
		||||
    systemctl daemon-reload
 | 
			
		||||
    systemctl enable --now oggui-app
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
COMPONENTS="ogCore ogGui ogDhcp ogBoot ogRepository"
 | 
			
		||||
CONFIGS_DIR=/opengnsys-installer/
 | 
			
		||||
PAT_FILE=/opengnsys-installer/pat.txt
 | 
			
		||||
PAT=$(cat $PAT_FILE | tr -d '\n\r\t')
 | 
			
		||||
 | 
			
		||||
OPENGNSYS_BASE_URL="https://$PAT@ognproject.evlt.uma.es/gitea/opengnsys"
 | 
			
		||||
 | 
			
		||||
OGBOOT_REPO="$OPENGNSYS_BASE_URL/ogboot.git"
 | 
			
		||||
OGCORE_REPO="$OPENGNSYS_BASE_URL/ogcore.git"
 | 
			
		||||
OGDHCP_REPO="$OPENGNSYS_BASE_URL/ogdhcp.git"
 | 
			
		||||
OGGUI_REPO="$OPENGNSYS_BASE_URL/oggui.git"
 | 
			
		||||
OGREPOSITORY_REPO="$OPENGNSYS_BASE_URL/ogrepo.git"
 | 
			
		||||
 | 
			
		||||
export GIT_SSL_NO_VERIFY=1
 | 
			
		||||
echo ======================================== > /etc/issue 
 | 
			
		||||
echo "OpenGnSys Installer" >> /etc/issue
 | 
			
		||||
echo "Componentes instalados:" >> /etc/issue
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
for component in $COMPONENTS
 | 
			
		||||
do 
 | 
			
		||||
    config_file="config_${component}.json"
 | 
			
		||||
    if [ -f $CONFIGS_DIR/$config_file ]; then
 | 
			
		||||
        echo "Componente $component seleccionado, instalando configuración..."
 | 
			
		||||
        component_dir=/opt/opengnsys/$component
 | 
			
		||||
        mkdir -p $component_dir/installer
 | 
			
		||||
        mkdir -p $component_dir/repo
 | 
			
		||||
        cp $CONFIGS_DIR/$config_file /opt/opengnsys/$component/installer/config.json
 | 
			
		||||
 | 
			
		||||
        case $component in
 | 
			
		||||
            ogCore)
 | 
			
		||||
                echo "Instalando ogCore..."
 | 
			
		||||
                OGCORE_BRANCH=main
 | 
			
		||||
                container_version=$(jq -r '.container_version' /opt/opengnsys/ogCore/installer/config.json)
 | 
			
		||||
                git clone --branch "$OGCORE_BRANCH" "$OGCORE_REPO" "$component_dir/repo"
 | 
			
		||||
                # Copy the docker-compose-deploy.yml file to /opt/opengnsys/ogCore/etc/
 | 
			
		||||
                mkdir -p $component_dir/etc/
 | 
			
		||||
                cp $component_dir/repo/docker-compose-deploy.yml $component_dir/etc/
 | 
			
		||||
                sed -i "s/static/$container_version/g" $component_dir/repo/docker-compose-deploy.yml
 | 
			
		||||
                echo - ogCore >> /etc/issue
 | 
			
		||||
                install_docker
 | 
			
		||||
                install_ogcore_docker
 | 
			
		||||
                ;;
 | 
			
		||||
            ogGui)
 | 
			
		||||
                echo "Instalando ogGui..."
 | 
			
		||||
                OGGUI_BRANCH=main
 | 
			
		||||
                git clone --branch "$OGGUI_BRANCH" "$OGGUI_REPO" "$component_dir/repo"
 | 
			
		||||
                echo - ogGui >> /etc/issue
 | 
			
		||||
                install_docker
 | 
			
		||||
                install_oggui_docker
 | 
			
		||||
                ;;
 | 
			
		||||
            ogDhcp)
 | 
			
		||||
                echo "Instalando ogDhcp..."
 | 
			
		||||
                git clone "$OGDHCP_REPO" "$component_dir/repo"
 | 
			
		||||
                echo - ogDhcp >> /etc/issue
 | 
			
		||||
                ;;
 | 
			
		||||
            ogBoot)
 | 
			
		||||
                echo "Instalando ogBoot..."
 | 
			
		||||
                git clone "$OGBOOT_REPO" "$component_dir/repo"
 | 
			
		||||
                echo - ogBoot >> /etc/issue
 | 
			
		||||
                ;;
 | 
			
		||||
            ogRepository)
 | 
			
		||||
                echo "Instalando ogRepository..."
 | 
			
		||||
                git clone "$OGREPOSITORY_REPO" "$component_dir/repo"
 | 
			
		||||
                echo - ogRepository >> /etc/issue
 | 
			
		||||
                ;;
 | 
			
		||||
            *)
 | 
			
		||||
                echo "Componente $component no reconocido"
 | 
			
		||||
                ;;
 | 
			
		||||
        esac
 | 
			
		||||
        continue
 | 
			
		||||
    fi
 | 
			
		||||
done 
 | 
			
		||||
 | 
			
		||||
echo ======================================== >> /etc/issue
 | 
			
		||||
rm -f $PAT_FILE
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
#
 | 
			
		||||
set -x
 | 
			
		||||
 | 
			
		||||
cd /opt/opengnsys/ogCore/repo/
 | 
			
		||||
 | 
			
		||||
# Preparar el fichero .yaml
 | 
			
		||||
CONF_DIR=/opt/opengnsys/ogCore/etc/
 | 
			
		||||
mkdir -p $CONF_DIR
 | 
			
		||||
 | 
			
		||||
# Copiar el fichero de configuración a CONF_DIR
 | 
			
		||||
cp docker-compose-deploy.yml $CONF_DIR/
 | 
			
		||||
 | 
			
		||||
if [ -f /opt/opengnsys/ogCore/installer/.deployed ]; then
 | 
			
		||||
    echo "ogCore ya instalado"
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
while ! docker compose -f $CONF_DIR/docker-compose-deploy.yml ps --format json |jq -r '"\(.Name) \(.State)"' |grep -q 'ogcore-php running'; do
 | 
			
		||||
    sleep 2
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
adminuser=$(jq -r '.username' /opt/opengnsys/ogCore/installer/config.json)
 | 
			
		||||
adminpass=$(jq -r '.password' /opt/opengnsys/ogCore/installer/config.json)
 | 
			
		||||
 | 
			
		||||
docker compose -f $CONF_DIR/docker-compose-deploy.yml exec php composer install
 | 
			
		||||
docker compose -f $CONF_DIR/docker-compose-deploy.yml exec php php bin/console lexik:jwt:generate-keypair --overwrite
 | 
			
		||||
docker compose -f $CONF_DIR/docker-compose-deploy.yml exec php php bin/console doctrine:migrations:migrate --no-interaction
 | 
			
		||||
## TODO we need to feed $adminuser and $adminpass to doctrine:fixtures:load somehow
 | 
			
		||||
docker compose -f $CONF_DIR/docker-compose-deploy.yml exec php php bin/console doctrine:fixtures:load --no-interaction
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Provision user admin
 | 
			
		||||
bearer=$(curl -k -X 'POST'   'https://localhost:8443/auth/login'   -H 'accept: application/json'   -H 'Content-Type: application/json'   -d "{ \"username\": \"ogadmin\",  \"password\": \"12345678\" }" | jq .token | sed 's/"//g' )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if [ $adminuser == "ogadmin" ]; then
 | 
			
		||||
    echo "Cambiando password a ogadmin no puede ser el usuario administrador"
 | 
			
		||||
    ogadmin_uuid=$(curl -q -k -L https://localhost:8443/users/?username=ogadmin -H 'accept: application/json' -H "Authorization: Bearer $bearer" | jq .[0].uuid | sed 's/"//g')
 | 
			
		||||
    curl  -k -L -X PUT "https://localhost:8443/users/$ogadmin_uuid/reset-password" -H 'accept: application/ld+json' -H 'Content-Type: application/ld+json' -d "{\"currentPassword\": \"12345678\", \"newPassword\": \"$adminpass\", \"repeatNewPassword\": \"$adminpass\"}" -H "Authorization: Bearer $bearer"
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
curl -k -L --location 'https://localhost:8443/users' \
 | 
			
		||||
--header 'Content-Type: application/json' \
 | 
			
		||||
--header "Authorization: Bearer $bearer" \
 | 
			
		||||
--data "{ \"username\": \"$adminuser\", \"password\": \"$adminpass\", \"roles\": [\"ROLE_SUPER_ADMIN\"] }"
 | 
			
		||||
 | 
			
		||||
touch /opt/opengnsys/ogCore/installer/.deployed
 | 
			
		||||
exit 0 
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,42 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
#
 | 
			
		||||
set -x
 | 
			
		||||
 | 
			
		||||
# preparar el fichero .env
 | 
			
		||||
ENV_DIR=/opt/opengnsys/ogGui/etc/
 | 
			
		||||
ENV_FILE=$ENV_DIR/.env
 | 
			
		||||
mkdir -p $ENV_DIR
 | 
			
		||||
 | 
			
		||||
# Comprobar si ya se ha instalado ogCore
 | 
			
		||||
#if [ -f /opt/opengnsys/ogGui/installer/.deployed ]; then
 | 
			
		||||
#    echo "ogCore ya instalado"
 | 
			
		||||
#    exit 0
 | 
			
		||||
#fi
 | 
			
		||||
 | 
			
		||||
# Sacar la IP del ogCore de la configuración
 | 
			
		||||
ogcore_ip=$(jq -r '.ogcore_ip' /opt/opengnsys/ogGui/installer/config.json)
 | 
			
		||||
export OGCORE_IP="$ogcore_ip"
 | 
			
		||||
 | 
			
		||||
# Si no se ha configurado la IP del ogCore, se intenta obtener de la interfaz de red
 | 
			
		||||
if [ -z "$ogcore_ip" ]; then
 | 
			
		||||
    # Obtiene el nombre del interfaz asociado a la ruta por defecto
 | 
			
		||||
    interface=$(ip route | grep default | awk '{print $5}')
 | 
			
		||||
 | 
			
		||||
    # Si se encuentra el interfaz, obtiene su dirección IP
 | 
			
		||||
    if [ -n "$interface" ]; then
 | 
			
		||||
        ip_address=$(ip -o -4 addr show "$interface" | awk '{print $4}' | cut -d'/' -f1)
 | 
			
		||||
        ogcore_ip=$ip_address
 | 
			
		||||
        # Si no se ha configurado la IP del ogCore, se escribe en el fichero .env
 | 
			
		||||
        echo  "NG_APP_BASE_API_URL=https://$ogcore_ip:8443" > $ENV_FILE
 | 
			
		||||
        exit 0
 | 
			
		||||
    else
 | 
			
		||||
        echo "No se pudo determinar el interfaz asociado a la ruta por defecto."
 | 
			
		||||
        exit 1
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Si se ha configurado la IP del ogCore, se escribe en el fichero .env
 | 
			
		||||
echo "NG_APP_BASE_API_URL=$OGCORE_IP" > $ENV_FILE
 | 
			
		||||
 | 
			
		||||
touch /opt/opengnsys/ogGui/installer/.deployed
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,134 @@
 | 
			
		|||
import curses
 | 
			
		||||
import json
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
CONFIGS_DIR = "/tmp/opengnsys-installer-configs"
 | 
			
		||||
os.makedirs(CONFIGS_DIR, exist_ok=True)
 | 
			
		||||
 | 
			
		||||
def main(stdscr):
 | 
			
		||||
    # Inicializar colores
 | 
			
		||||
    curses.start_color()
 | 
			
		||||
    curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE)  # Texto blanco sobre fondo azul
 | 
			
		||||
    stdscr.bkgd(' ', curses.color_pair(1))  # Aplicar fondo azul a la pantalla
 | 
			
		||||
 | 
			
		||||
    curses.curs_set(0)  # Ocultar el cursor en el menú de selección
 | 
			
		||||
    stdscr.clear()
 | 
			
		||||
 | 
			
		||||
    # Paso 1: Seleccionar componentes
 | 
			
		||||
    components = ["ogCore", "ogGui", "ogDhcp", "ogBoot", "ogRepository"]
 | 
			
		||||
    selected_components = []
 | 
			
		||||
    current_index = 0  # Índice para saber en qué componente está el cursor
 | 
			
		||||
 | 
			
		||||
    # Mostrar instrucciones y opciones de componentes
 | 
			
		||||
    stdscr.addstr(1, 2, "Selecciona los componentes (usa Flechas para navegar, Espacio para seleccionar, Enter para continuar):", curses.color_pair(1) | curses.A_BOLD)
 | 
			
		||||
 | 
			
		||||
    while True:
 | 
			
		||||
        # Mostrar el estado actual de selección de cada componente
 | 
			
		||||
        for idx, comp in enumerate(components):
 | 
			
		||||
            if comp in selected_components:
 | 
			
		||||
                stdscr.addstr(idx + 3, 4, f"[X] {comp}", curses.color_pair(1))
 | 
			
		||||
            else:
 | 
			
		||||
                stdscr.addstr(idx + 3, 4, f"[ ] {comp}", curses.color_pair(1))
 | 
			
		||||
 | 
			
		||||
        # Mueve el cursor visualmente para resaltar la selección actual
 | 
			
		||||
        stdscr.addstr(current_index + 3, 4, f"> {components[current_index]}", curses.color_pair(1))
 | 
			
		||||
 | 
			
		||||
        key = stdscr.getch()
 | 
			
		||||
 | 
			
		||||
        if key == curses.KEY_UP and current_index > 0:  # Navegar hacia arriba
 | 
			
		||||
            current_index -= 1
 | 
			
		||||
        elif key == curses.KEY_DOWN and current_index < len(components) - 1:  # Navegar hacia abajo
 | 
			
		||||
            current_index += 1
 | 
			
		||||
        elif key == ord(" "):  # Marcar/desmarcar con espacio
 | 
			
		||||
            component = components[current_index]
 | 
			
		||||
            if component in selected_components:
 | 
			
		||||
                selected_components.remove(component)
 | 
			
		||||
            else:
 | 
			
		||||
                selected_components.append(component)
 | 
			
		||||
        elif key == ord("\n"):  # Confirma la selección con Enter
 | 
			
		||||
            break
 | 
			
		||||
 | 
			
		||||
        stdscr.refresh()
 | 
			
		||||
 | 
			
		||||
    # Ahora pasamos a la configuración específica de cada componente seleccionado
 | 
			
		||||
    curses.echo()  # Activar eco para mostrar la entrada
 | 
			
		||||
    for component in selected_components:
 | 
			
		||||
        stdscr.clear()
 | 
			
		||||
        stdscr.addstr(1, 2, f"Configuración para {component}:", curses.color_pair(1) | curses.A_BOLD)
 | 
			
		||||
        curses.curs_set(1)  # Mostrar el cursor para las entradas de configuración
 | 
			
		||||
 | 
			
		||||
        config_data = {}
 | 
			
		||||
        if component == "ogCore":
 | 
			
		||||
            stdscr.addstr(3, 4, "Usuario administrador:", curses.color_pair(1))
 | 
			
		||||
            user = stdscr.getstr(3, 26, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(4, 4, "Contraseña:", curses.color_pair(1))
 | 
			
		||||
            password = stdscr.getstr(4, 26, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(5, 4, "Tag del contenedor:", curses.color_pair(1))
 | 
			
		||||
            container_tag = stdscr.getstr(5, 26, 20).decode("utf-8")
 | 
			
		||||
 | 
			
		||||
            config_data = {"username": user, "password": password, "container_version": container_tag}
 | 
			
		||||
 | 
			
		||||
        elif component == "ogGui":
 | 
			
		||||
            stdscr.addstr(3, 4, "IP del servidor de ogCore:", curses.color_pair(1))
 | 
			
		||||
            ogcore_ip = stdscr.getstr(3, 32, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(4, 4, "Tag del contenedor:", curses.color_pair(1))
 | 
			
		||||
            container_version = stdscr.getstr(4, 32, 20).decode("utf-8")
 | 
			
		||||
 | 
			
		||||
            config_data = {"ogcore_ip": ogcore_ip, "container_version": container_version}
 | 
			
		||||
 | 
			
		||||
        elif component == "ogDhcp":
 | 
			
		||||
            stdscr.addstr(3, 4, "Configuración IP servidor de Boot:", curses.color_pair(1))
 | 
			
		||||
            ogbootIP = stdscr.getstr(3, 37, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(4, 4, "Interfaces Boot (separadas por coma):", curses.color_pair(1))
 | 
			
		||||
            interfaces = stdscr.getstr(4, 40, 20).decode("utf-8")
 | 
			
		||||
            json_array_interfaces = interfaces.split(",")
 | 
			
		||||
 | 
			
		||||
            config_data = {"ogbootIP": ogbootIP, "interfaces": json_array_interfaces}
 | 
			
		||||
 | 
			
		||||
        elif component == "ogBoot":
 | 
			
		||||
            stdscr.addstr(3, 4, "ogCore Ip Server:", curses.color_pair(1))
 | 
			
		||||
            ogcore_ip = stdscr.getstr(3, 28, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(4, 4, "ogCore Server:", curses.color_pair(1))
 | 
			
		||||
            ogcore_server = stdscr.getstr(4, 28, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(5, 4, "ogCore Dir:", curses.color_pair(1))
 | 
			
		||||
            ogcore_dir = stdscr.getstr(5, 28, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(6, 4, "ogBoot GitRepo:", curses.color_pair(1))
 | 
			
		||||
            ogboot_gitrepo = stdscr.getstr(6, 28, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(7, 4, "ogBoot Samba User:", curses.color_pair(1))
 | 
			
		||||
            ogboot_samba_user = stdscr.getstr(7, 28, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(8, 4, "ogBoot Samba Pass:", curses.color_pair(1))
 | 
			
		||||
            ogboot_samba_pass = stdscr.getstr(8, 28, 20).decode("utf-8")
 | 
			
		||||
 | 
			
		||||
            config_data = {
 | 
			
		||||
                "ogcore_ip": ogcore_ip,
 | 
			
		||||
                "ogcore_server": ogcore_server,
 | 
			
		||||
                "ogcore_dir": ogcore_dir,
 | 
			
		||||
                "ogboot_gitrepo": ogboot_gitrepo,
 | 
			
		||||
                "ogboot_samba_user": ogboot_samba_user,
 | 
			
		||||
                "ogboot_samba_pass": ogboot_samba_pass,
 | 
			
		||||
            }
 | 
			
		||||
        elif component == "ogRepository":
 | 
			
		||||
            stdscr.addstr(3, 4, "ogRepository IP Server: ", curses.color_pair(1))
 | 
			
		||||
            ogrepository_ip = stdscr.getstr(3, 28, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(4, 4, "ogRepository Sambauser: ", curses.color_pair(1))
 | 
			
		||||
            ogrepository_samba_user = stdscr.getstr(4, 28, 20).decode("utf-8")
 | 
			
		||||
            stdscr.addstr(5, 4, "ogRepository Sambapass: ", curses.color_pair(1))
 | 
			
		||||
            ogrepository_samba_pass = stdscr.getstr(5, 28, 20).decode("utf-8")
 | 
			
		||||
 | 
			
		||||
            config_data = {
 | 
			
		||||
                "ogrepository_ip": ogrepository_ip,
 | 
			
		||||
                "ogrepository_samba_user": ogrepository_samba_user,
 | 
			
		||||
                "ogrepository_samba_pass": ogrepository_samba_pass, 
 | 
			
		||||
            }
 | 
			
		||||
        # Guardar en archivo JSON
 | 
			
		||||
        config_file = os.path.join(CONFIGS_DIR, f"config_{component}.json")
 | 
			
		||||
        with open(config_file, "w") as f:
 | 
			
		||||
            json.dump(config_data, f)
 | 
			
		||||
        stdscr.clear()
 | 
			
		||||
        stdscr.addstr(2, 2, f"Configuración de {component} guardada en {config_file}", curses.color_pair(1))
 | 
			
		||||
        stdscr.refresh()
 | 
			
		||||
        stdscr.getch()
 | 
			
		||||
 | 
			
		||||
    curses.noecho()  # Desactivar el eco después de la entrada
 | 
			
		||||
 | 
			
		||||
curses.wrapper(main)
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,46 @@
 | 
			
		|||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
# Setup installer environment 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
BRANCH=${BRANCH:-main}
 | 
			
		||||
GIT_SSL_NO_VERIFY=1
 | 
			
		||||
GIT_REPO="https://ognproject.evlt.uma.es/gitea/api/v1/repos/opengnsys/oginstaller/archive/$BRANCH.zip"
 | 
			
		||||
export GIT_SSL_NO_VERIFY
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
install_packages() {
 | 
			
		||||
    apt-get update
 | 
			
		||||
    apt-get install -y curl jq unzip python3 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
download_installer() {
 | 
			
		||||
    
 | 
			
		||||
    rm -f /tmp/oginstaller.zip
 | 
			
		||||
    rm -rf /tmp/oginstaller-$BRANCH
 | 
			
		||||
    rm -rf /tmp/oginstaller
 | 
			
		||||
 | 
			
		||||
    curl -q -k $GIT_REPO -H 'accept: application/json' -o /tmp/oginstaller.zip
 | 
			
		||||
    unzip /tmp/oginstaller.zip -d /tmp   
 | 
			
		||||
    mv /tmp/oginstaller /tmp/oginstaller-$BRANCH
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extract_installer() {
 | 
			
		||||
    rm -rf /tmp/oginstall 
 | 
			
		||||
    mkdir -p /tmp/oginstall
 | 
			
		||||
    cp -r /tmp/oginstaller-$BRANCH/python-installer/* /tmp/oginstall/
 | 
			
		||||
    cp -r /tmp/oginstaller-$BRANCH/component-installer/* /tmp/oginstall/
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
create_questions() {
 | 
			
		||||
    echo "Creating questions..."
 | 
			
		||||
    python3 /tmp/oginstall/oginstaller.py
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
install_packages 
 | 
			
		||||
download_installer
 | 
			
		||||
extract_installer
 | 
			
		||||
create_questions
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue