#!/bin/sh # ================================================================= # # SMART INSTALLER: ACT_RUNNER + OPENRC + SYSTEM LABELS (ALPINE) # ================================================================= # set -e # --- Проверка, что это Alpine Linux --- if [ ! -f /sbin/openrc-run ]; then echo "Ошибка: Этот скрипт предназначен только для Alpine Linux (OpenRC)" exit 1 fi # --- Конфигурация --- WORK_DIR="/opt/act_runner" EXE_URL="https://git.dadehard.ru/kalugin66/act_runner/raw/branch/main/act_runner-0.4.0-linux-amd64" INSTANCE_URL="https://git.dadehard.ru/" TOKEN="UzVNobPFBJe8ZoQXwu5ZamfgqCpTJZGR3LDVnX7N" SERVICE_NAME="act_runner" DEFAULT_LABEL="sber" # --- 1. Установка зависимостей --- echo "--- Проверка зависимостей ---" apk add --no-cache wget # --- 2. Сбор системной информации --- HOSTNAME=$(hostname) ARCH="linux-amd64" MEM_TOTAL_KB=$(grep MemTotal /proc/meminfo | awk '{print $2}') MEM_GB=$(( MEM_TOTAL_KB / 1024 / 1024 )) MEM_LABEL="${MEM_GB}GB_RAM" FULL_LABELS="$DEFAULT_LABEL:host,linux-amd64:host,self-hosted:host,$HOSTNAME:host,$ARCH:host,$MEM_LABEL:host" echo "--- Данные системы: ПК=$HOSTNAME, ОЗУ=$MEM_LABEL, Метка=$DEFAULT_LABEL ---" # --- 3. Подготовка окружения --- if [ ! -d "$WORK_DIR" ]; then mkdir -p "$WORK_DIR" fi cd "$WORK_DIR" # --- 4. Остановка и удаление старой службы (если есть) --- echo "--- Шаг 1: Очистка ---" if [ -f "/etc/init.d/${SERVICE_NAME}" ]; then rc-service "$SERVICE_NAME" stop 2>/dev/null || true rc-update del "$SERVICE_NAME" 2>/dev/null || true rm -f "/etc/init.d/${SERVICE_NAME}" fi # --- 5. Загрузка бинарного файла --- echo "--- Шаг 2: Загрузка act_runner ---" if [ ! -f "$WORK_DIR/act_runner" ]; then wget -q --show-progress -O act_runner "$EXE_URL" chmod +x act_runner fi # --- 6. Создание конфигурационного файла config.yaml --- echo "--- Шаг 3: Формирование конфига ---" tee "$WORK_DIR/config.yaml" > /dev/null < /dev/null </dev/null; then echo "Прямой запуск успешен, проблема в OpenRC-скрипте" kill $DAEMON_PID else echo "Прямой запуск тоже упал, проблема в конфигурации" wait $DAEMON_PID 2>/dev/null || true fi exit 1 fi