From 408c1c815876d8e5d2009710d4efc7e90a10d780 Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Fri, 20 Jun 2025 20:36:47 -0300 Subject: [PATCH] feat: Update CI/CD scripts and configurations for improved deployment and system management --- .forgejo/workflows/node.yaml | 6 +- src/scripts/setup-host.sh | 6 ++ src/scripts/startup.sh | 1 - .../opt/gbo/tenants/default/alm-ci/alm-ci.sh | 2 +- .../opt/gbo/tenants/default/system/system.sh | 68 +++++++++---------- 5 files changed, 44 insertions(+), 39 deletions(-) create mode 100644 src/scripts/setup-host.sh diff --git a/.forgejo/workflows/node.yaml b/.forgejo/workflows/node.yaml index a940e22..39fca90 100644 --- a/.forgejo/workflows/node.yaml +++ b/.forgejo/workflows/node.yaml @@ -23,12 +23,12 @@ jobs: - name: Run build - run: cargo build --workspace --release --locked + run: cargo build --locked - name: Deploy binary run: | sudo cp ./target/release/gbserver /opt/gbo/bin/system sudo chmod +x /opt/gbo/bin/system/gbserver - - sudo systemctl restart gbserver + + lxc exec bot:pragmatismo-system -- systemctl restart system \ No newline at end of file diff --git a/src/scripts/setup-host.sh b/src/scripts/setup-host.sh new file mode 100644 index 0000000..ae611e8 --- /dev/null +++ b/src/scripts/setup-host.sh @@ -0,0 +1,6 @@ + +# Host +sudo lxc config set core.trust_password "$LXC_TRUST_PASSWORD" + +# ALM-CI +lxc remote add bot 10.16.164.? --accept-certificate --password "$LXC_TRUST_PASSWORD" diff --git a/src/scripts/startup.sh b/src/scripts/startup.sh index 33debfb..e274f6a 100644 --- a/src/scripts/startup.sh +++ b/src/scripts/startup.sh @@ -8,4 +8,3 @@ chmod +x /etc/profile.d/notimeout.sh sed -i '/pam_exec.so/s/quiet/quiet set_timeout=0/' /etc/pam.d/sshd 2>/dev/null source /etc/profile - \ No newline at end of file diff --git a/src/templates/opt/gbo/tenants/default/alm-ci/alm-ci.sh b/src/templates/opt/gbo/tenants/default/alm-ci/alm-ci.sh index 7799e88..49b5426 100644 --- a/src/templates/opt/gbo/tenants/default/alm-ci/alm-ci.sh +++ b/src/templates/opt/gbo/tenants/default/alm-ci/alm-ci.sh @@ -98,7 +98,7 @@ rustc --version # Install Xvfb and other dependencies -sudo apt install -y xvfb libgbm-dev +sudo apt install -y xvfb libgbm-dev lxd-client # Create directories mkdir -p \"$BIN_PATH\" /opt/gbo/data /opt/gbo/conf /opt/gbo/logs || { echo 'Directory creation failed'; exit 1; } diff --git a/src/templates/opt/gbo/tenants/default/system/system.sh b/src/templates/opt/gbo/tenants/default/system/system.sh index 3783962..226936d 100644 --- a/src/templates/opt/gbo/tenants/default/system/system.sh +++ b/src/templates/opt/gbo/tenants/default/system/system.sh @@ -1,57 +1,57 @@ #!/bin/bash -STORAGE_PATH="/opt/gbo/tenants/$PARAM_TENANT/system/data" -LOGS_PATH="/opt/gbo/tenants/$PARAM_TENANT/system/logs" +HOST_BASE="/opt/gbo/tenants/$PARAM_TENANT/system" +HOST_DATA="$HOST_BASE/data" +HOST_CONF="$HOST_BASE/conf" +HOST_LOGS="$HOST_BASE/logs" +HOST_BIN="$HOST_BASE/bin" +BIN_PATH="/opt/gbo/bin" +CONTAINER_NAME="${PARAM_TENANT}-system" -mkdir -p "${STORAGE_PATH}" "${LOGS_PATH}" -chmod -R 770 "${STORAGE_PATH}" "${LOGS_PATH}" -chown -R 100999:100999 "${STORAGE_PATH}" "${LOGS_PATH}" +# Create host directories +mkdir -p "$HOST_DATA" "$HOST_CONF" "$HOST_LOGS" || exit 1 +chmod -R 750 "$HOST_BASE" || exit 1 -lxc launch images:debian/12 "${PARAM_TENANT}-system" -c security.privileged=true + +lxc launch images:debian/12 $CONTAINER_NAME -c security.privileged=true sleep 15 -lxc config device add "${PARAM_TENANT}-system" storage disk source="${STORAGE_PATH}" path=/data -lxc config device add "${PARAM_TENANT}-system" logs disk source="${LOGS_PATH}" path=/var/log/minio - -lxc exec "${PARAM_TENANT}-system" -- bash -c ' +lxc exec $CONTAINER_NAME -- bash -c ' apt-get update && apt-get install -y wget -wget https://dl.min.io/server/minio/release/linux-amd64/minio -O /usr/local/bin/minio -chmod +x /usr/local/bin/minio -useradd -r -s /bin/false minio-user || true -mkdir -p /var/log/minio /data -chown -R minio-user:minio-user /var/log/minio /data +useradd -r -s /bin/false gbuser || true +mkdir -p /opt/gbo/logs /opt/gbo/bin /opt/gbo/data /opt/gbo/conf +chown -R gbuser:gbuser /opt/gbo/ -cat > /etc/systemd/system/minio.service < /etc/systemd/system/system.service </dev/null || true -lxc config device add "${PARAM_TENANT}-system" minio-proxy proxy \ - listen=tcp:0.0.0.0:"${PARAM_system_API_PORT}" \ - connect=tcp:127.0.0.1:"${PARAM_system_API_PORT}" +lxc config device add $CONTAINER_NAME bin disk source="${HOST_BIN}" path=/opt/gbo/bin +lxc config device add $CONTAINER_NAME data disk source="${HOST_DATA}" path=/opt/gbo/data +lxc config device add $CONTAINER_NAME conf disk source="${HOST_CONF}" path=/opt/gbo/conf +lxc config device add $CONTAINER_NAME logs disk source="${HOST_LOGS}" path=/opt/gbo/logs -lxc config device remove "${PARAM_TENANT}-system" console-proxy 2>/dev/null || true -lxc config device add "${PARAM_TENANT}-system" console-proxy proxy \ - listen=tcp:0.0.0.0:"${PARAM_system_PORT}" \ - connect=tcp:127.0.0.1:"${PARAM_system_PORT}" \ No newline at end of file + +lxc config device remove $CONTAINER_NAME proxy 2>/dev/null || true +lxc config device add $CONTAINER_NAME proxy proxy \ + listen=tcp:0.0.0.0:"${PARAM_SYSTEM_PORT}" \ + connect=tcp:127.0.0.1:"${PARAM_SYSTEM_PORT}"