initial commit
This commit is contained in:
155
02/02-k-git-server-deploy.all.sh
Executable file
155
02/02-k-git-server-deploy.all.sh
Executable 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
|
||||
Reference in New Issue
Block a user