initial commit

This commit is contained in:
unknown
2026-02-19 20:05:04 +03:00
parent 1ee67d8159
commit 05097d5dda
32 changed files with 4413 additions and 3 deletions

155
02/02-k-git-server-deploy.all.sh Executable file
View File

@@ -0,0 +1,155 @@
#!/bin/bash
#===============================================================================
# ГЛАВНЫЙ СКРИПТ: ЗАПУСК ВСЕХ ШАГОВ
#===============================================================================
# Запуск: sudo bash 02-k-git-server-deploy.all.sh [step_number]
#
# Без аргументов - запуск всех шагов по порядку
# С номером шага - запуск конкретного шага
#
# Примеры:
# sudo bash 02-k-git-server-deploy.all.sh # все шаги
# sudo bash 02-k-git-server-deploy.all.sh 7 # только шаг 7
# sudo bash 02-k-git-server-deploy.all.sh 7-9 # шаги с 7 по 9
#===============================================================================
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
source "$SCRIPT_DIR/02-k-git-server-deploy.00.sh"
init_log
check_root
#-------------------------------------------------------------------------------
# Список шагов
#-------------------------------------------------------------------------------
declare -A STEPS=(
["01"]="Подготовка системы"
["02"]="Создание пользователя git"
["03"]="Установка Gitea"
["04"]="Systemd unit"
["05"]="Конфигурация Gitea"
["06"]="Запуск Gitea"
["07"]="Nginx (HTTP only)"
["08"]="SSL-сертификат"
["09"]="Nginx (HTTPS)"
["10"]="Firewall"
["11"]="Администратор Gitea"
["12"]="Скрипты бэкапа"
["13"]="Настройка почты (msmtp)"
["14"]="Настройка logrotate"
["99"]="Финальная проверка"
)
#-------------------------------------------------------------------------------
# Функция запуска шага
#-------------------------------------------------------------------------------
run_step() {
local step="$1"
local script="$SCRIPT_DIR/02-k-git-server-deploy.${step}.sh"
if [[ ! -f "$script" ]]; then
print_error "Скрипт не найден: $script"
return 1
fi
print_header "ЗАПУСК ШАГА ${step}: ${STEPS[$step]}"
if bash "$script"; then
print_success "Шаг $step завершён успешно"
return 0
else
print_error "Шаг $step завершился с ошибкой"
return 1
fi
}
#-------------------------------------------------------------------------------
# Обработка аргументов
#-------------------------------------------------------------------------------
if [[ -n "$1" ]]; then
# Запуск конкретного шага или диапазона
if [[ "$1" =~ ^([0-9]+)-([0-9]+)$ ]]; then
# Диапазон шагов (например, 7-9)
START_STEP="${BASH_REMATCH[1]}"
END_STEP="${BASH_REMATCH[2]}"
print_info "Запуск шагов с $START_STEP по $END_STEP"
for step in "${!STEPS[@]}"; do
if [[ "$step" -ge "$START_STEP" && "$step" -le "$END_STEP" ]]; then
run_step "$step" || exit 1
fi
done | sort
elif [[ "$1" =~ ^[0-9]+$ ]]; then
# Один шаг
run_step "$1" || exit 1
else
print_error "Неверный аргумент: $1"
echo "Использование: $0 [step_number|start-end]"
echo " $0 - все шаги"
echo " $0 7 - только шаг 7"
echo " $0 7-9 - шаги с 7 по 9"
exit 1
fi
else
# Запуск всех шагов
echo ""
echo -e "${BLUE}================================================================${NC}"
echo -e "${BLUE} ПОЛНЫЙ ЗАПУСК РАЗВЁРТЫВАНИЯ GIT-СЕРВЕРА${NC}"
echo -e "${BLUE}================================================================${NC}"
echo ""
echo "Будут выполнены следующие шаги:"
echo ""
for step in $(echo "${!STEPS[@]}" | tr ' ' '\n' | sort); do
echo " [$step] ${STEPS[$step]}"
done
echo ""
read -p "Начать развёртывание? [y/N]: " CONFIRM
if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then
echo "Отменено."
exit 0
fi
# Запуск шагов по порядку
FAILED_STEPS=()
for step in $(echo "${!STEPS[@]}" | tr ' ' '\n' | sort); do
echo ""
echo -e "${CYAN}============================================================${NC}"
echo -e "${CYAN} ШАГ $step: ${STEPS[$step]}${NC}"
echo -e "${CYAN}============================================================${NC}"
if run_step "$step"; then
:
else
FAILED_STEPS+=("$step")
echo ""
read -p "Продолжить со следующим шагом? [y/N]: " CONTINUE
if [[ ! "$CONTINUE" =~ ^[Yy]$ ]]; then
break
fi
fi
done
# Итог
echo ""
echo -e "${BLUE}================================================================${NC}"
echo -e "${BLUE} ИТОГ ВЫПОЛНЕНИЯ${NC}"
echo -e "${BLUE}================================================================${NC}"
if [[ ${#FAILED_STEPS[@]} -eq 0 ]]; then
echo -e "${GREEN}Все шаги выполнены успешно!${NC}"
else
echo -e "${RED}Завершились с ошибкой: ${FAILED_STEPS[*]}${NC}"
echo ""
echo "Для повторного запуска конкретного шага:"
echo " sudo bash $0омерага>"
fi
fi