- Move config file for ogCore to proper directory
oginstaller/pipeline/head This commit looks good Details

- Create prestart function to configure oggui-app
- Create oggui provision script
move-to-docker
Nicolas Arenas 2024-11-04 21:18:37 +01:00
parent b9edd5d0af
commit d96b98b4de
3 changed files with 57 additions and 25 deletions

View File

@ -43,29 +43,11 @@ EOF
function install_oggui_docker() {
# Leer el JSON y extraer los valores con jq
ogcore_ip=$(jq -r '.ogcore_ip' /opt/opengnsys/ogGui/installer/config.json)
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
else
echo "No se pudo determinar el interfaz asociado a la ruta por defecto."
exit 1
fi
fi
# 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
export OGCORE_IP="$ogcore_ip"
ENV_DIR=/opt/opengnsys/ogGui/etc/
ENV_FILE=$ENV_DIR/.env
mkdir -p $ENV_DIR
echo "NG_APP_BASE_API_URL=$OGCORE_IP" > $ENV_FILE
cat <<EOF > /etc/systemd/system/oggui-app.service
[Unit]
@ -75,7 +57,7 @@ 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
@ -125,6 +107,9 @@ do
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

View File

@ -2,23 +2,30 @@
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 docker-compose-deploy.yml ps --format json |jq -r '"\(.Name) \(.State)"' |grep -q 'ogcore-php running'; do
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 docker-compose-deploy.yml exec php composer install
docker compose -f docker-compose-deploy.yml exec php php bin/console lexik:jwt:generate-keypair --overwrite
docker compose -f docker-compose-deploy.yml exec php php bin/console doctrine:migrations:migrate --no-interaction
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 docker-compose-deploy.yml exec php php bin/console doctrine:fixtures:load --no-interaction
docker compose -f $CONF_DIR/docker-compose-deploy.yml exec php php bin/console doctrine:fixtures:load --no-interaction
# Provision user admin

40
provision_oggui.sh 100644
View File

@ -0,0 +1,40 @@
#!/bin/bash
# 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