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