initial commit
This commit is contained in:
151
01/01-k-server-initial-setup.all.sh
Executable file
151
01/01-k-server-initial-setup.all.sh
Executable file
@@ -0,0 +1,151 @@
|
||||
#!/bin/bash
|
||||
#===============================================================================
|
||||
# ГЛАВНЫЙ СКРИПТ: ЗАПУСК ВСЕХ ШАГОВ ПЕРВОНАЧАЛЬНОЙ НАСТРОЙКИ
|
||||
#===============================================================================
|
||||
# Запуск: sudo bash 01-k-server-initial-setup.all.sh [step_number]
|
||||
#
|
||||
# Без аргументов - запуск всех шагов по порядку
|
||||
# С номером шага - запуск конкретного шага
|
||||
#
|
||||
# Примеры:
|
||||
# sudo bash 01-k-server-initial-setup.all.sh # все шаги
|
||||
# sudo bash 01-k-server-initial-setup.all.sh 6 # только шаг 6 (SSH)
|
||||
# sudo bash 01-k-server-initial-setup.all.sh 6-8 # шаги с 6 по 8
|
||||
#===============================================================================
|
||||
|
||||
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
||||
source "$SCRIPT_DIR/01-k-server-initial-setup.00.sh"
|
||||
|
||||
init_log
|
||||
check_root
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Список шагов
|
||||
#-------------------------------------------------------------------------------
|
||||
declare -A STEPS=(
|
||||
["01"]="Базовая настройка (hostname, timezone)"
|
||||
["02"]="Настройка сети (netplan)"
|
||||
["03"]="Обновление системы"
|
||||
["04"]="Установка базовых пакетов"
|
||||
["05"]="Создание администратора"
|
||||
["06"]="Настройка SSH"
|
||||
["07"]="Настройка Firewall (nftables)"
|
||||
["08"]="Настройка Fail2ban"
|
||||
["09"]="Настройка Swap"
|
||||
["99"]="Финальная проверка"
|
||||
)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Функция запуска шага
|
||||
#-------------------------------------------------------------------------------
|
||||
run_step() {
|
||||
local step="$1"
|
||||
local script="$SCRIPT_DIR/01-k-server-initial-setup.${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
|
||||
# Диапазон шагов
|
||||
START_STEP="${BASH_REMATCH[1]}"
|
||||
END_STEP="${BASH_REMATCH[2]}"
|
||||
|
||||
print_info "Запуск шагов с $START_STEP по $END_STEP"
|
||||
|
||||
for step in $(echo "${!STEPS[@]}" | tr ' ' '\n' | sort); do
|
||||
if [[ "$step" -ge "$START_STEP" && "$step" -le "$END_STEP" ]]; then
|
||||
run_step "$step" || exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
elif [[ "$1" =~ ^[0-9]+$ ]]; then
|
||||
# Один шаг
|
||||
run_step "$1" || exit 1
|
||||
else
|
||||
print_error "Неверный аргумент: $1"
|
||||
echo "Использование: $0 [step_number|start-end]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
else
|
||||
# Запуск всех шагов
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}================================================================${NC}"
|
||||
echo -e "${BLUE} ПОЛНЫЙ ЗАПУСК ПЕРВОНАЧАЛЬНОЙ НАСТРОЙКИ СЕРВЕРА${NC}"
|
||||
echo -e "${BLUE}================================================================${NC}"
|
||||
echo ""
|
||||
|
||||
# Показать конфигурацию
|
||||
show_config
|
||||
|
||||
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