11233

Signed-off-by: KodyFFy <kodyffy@int.kodyffy.ru>
This commit is contained in:
2026-08-06 09:37:18 +00:00
parent 856f2cbbca
commit 5d898cd1a7
+32 -51
View File
@@ -3,13 +3,12 @@
# Скрипт для обновления системы и установки пакетов (Версия 2) # Скрипт для обновления системы и установки пакетов (Версия 2)
# Включает установку Docker, Caddy и Zabbix Agent # Включает установку Docker, Caddy и Zabbix Agent
set -e # Прерывать выполнение при ошибке set -e
echo "=========================================" echo "========================================="
echo "Начинаем обновление системы..." echo "Начинаем обновление системы..."
echo "=========================================" echo "========================================="
# 1) Базовое обновление системы
echo "Обновление списка пакетов..." echo "Обновление списка пакетов..."
apt update apt update
@@ -23,21 +22,18 @@ echo "========================================="
echo "Установка Docker..." echo "Установка Docker..."
echo "=========================================" echo "========================================="
# Удаление старых пакетов Docker
echo "Удаление старых пакетов Docker..." echo "Удаление старых пакетов Docker..."
sudo apt remove -y docker.io docker-compose docker-doc docker-buildx podman-docker containerd runc 2>/dev/null || true apt remove -y docker.io docker-compose docker-doc docker-buildx podman-docker containerd runc 2>/dev/null || true
# Добавление официального GPG ключа Docker
echo "Добавление GPG ключа Docker..." echo "Добавление GPG ключа Docker..."
sudo apt update apt update
sudo apt install -y ca-certificates curl apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc
# Добавление репозитория Docker
echo "Добавление репозитория Docker..." echo "Добавление репозитория Docker..."
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb Types: deb
URIs: https://download.docker.com/linux/debian URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME") Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
@@ -46,49 +42,43 @@ Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc Signed-By: /etc/apt/keyrings/docker.asc
EOF EOF
# Установка Docker
echo "Установка Docker..." echo "Установка Docker..."
sudo apt update apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Добавление текущего пользователя в группу docker (опционально) usermod -aG docker $USER 2>/dev/null || true
sudo usermod -aG docker $USER 2>/dev/null || true echo "Docker установлен."
echo "Docker установлен. Для применения прав группы docker выполните: newgrp docker или перезайдите в систему"
echo "=========================================" echo "========================================="
echo "Установка Caddy..." echo "Установка Caddy..."
echo "=========================================" echo "========================================="
# Установка Caddy
echo "Установка Caddy..." echo "Установка Caddy..."
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
sudo chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update apt update
sudo apt install -y caddy apt install -y caddy
echo "=========================================" echo "========================================="
echo "Настройка Caddyfile..." echo "Настройка Caddyfile..."
echo "=========================================" echo "========================================="
# Очистка и запись нового Caddyfile
echo "Очистка /etc/caddy/Caddyfile и добавление шаблона..." echo "Очистка /etc/caddy/Caddyfile и добавление шаблона..."
# Запрос PORT у пользователя
read -p "Введите PORT для обратного прокси (например, 8080): " PORT read -p "Введите PORT для обратного прокси (например, 8080): " PORT
if [ -z "$PORT" ]; then if [ -z "$PORT" ]; then
PORT="8080" PORT="8080"
echo "Порт не указан, используем порт по умолчанию: $PORT" echo "Порт не указан, используем порт по умолчанию: $PORT"
fi fi
# Создание нового Caddyfile tee /etc/caddy/Caddyfile > /dev/null <<EOF
sudo tee /etc/caddy/Caddyfile > /dev/null <<EOF
TEMP.int.kodyffy.ru { TEMP.int.kodyffy.ru {
tls internal tls internal
reverse_proxy localhost:$PORT reverse_proxy localhost:$PORT
@@ -101,45 +91,36 @@ echo "========================================="
echo "Установка Zabbix Agent..." echo "Установка Zabbix Agent..."
echo "=========================================" echo "========================================="
# Установка Zabbix Agent
echo "Установка Zabbix Agent..." echo "Установка Zabbix Agent..."
sudo apt install -y zabbix-agent apt install -y zabbix-agent
# Настройка Zabbix Agent
echo "Настройка Zabbix Agent..." echo "Настройка Zabbix Agent..."
# Получение hostname
HOSTNAME=$(hostname) HOSTNAME=$(hostname)
# Настройка конфигурационного файла sed -i "s/^ServerActive=.*/ServerActive=zbx.int.kodyffy.ru/" /etc/zabbix/zabbix_agentd.conf
sudo sed -i "s/^ServerActive=.*/ServerActive=zbx.int.kodyffy.ru/" /etc/zabbix/zabbix_agentd.conf sed -i "s/^Hostname=.*/Hostname=$HOSTNAME.kodyffy/" /etc/zabbix/zabbix_agentd.conf
sudo sed -i "s/^Hostname=.*/Hostname=$HOSTNAME.kodyffy/" /etc/zabbix/zabbix_agentd.conf
# Добавление UserParameter и HostMetadataItem
echo "Добавление UserParameter и HostMetadataItem..." echo "Добавление UserParameter и HostMetadataItem..."
echo "UserParameter=my.metadata,/usr/bin/echo \"$HOSTNAME.kodyffy\"" | sudo tee -a /etc/zabbix/zabbix_agentd.conf echo "UserParameter=my.metadata,/usr/bin/echo \"$HOSTNAME.kodyffy\"" | tee -a /etc/zabbix/zabbix_agentd.conf
echo "HostMetadataItem=my.metadata" | sudo tee -a /etc/zabbix/zabbix_agentd.conf echo "HostMetadataItem=my.metadata" | tee -a /etc/zabbix/zabbix_agentd.conf
# Перезапуск Zabbix Agent
echo "Перезапуск Zabbix Agent..." echo "Перезапуск Zabbix Agent..."
sudo systemctl restart zabbix-agent systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent systemctl enable zabbix-agent
echo "=========================================" echo "========================================="
echo "Проверка статуса сервисов..." echo "Проверка статуса сервисов..."
echo "=========================================" echo "========================================="
# Проверка статуса Docker
echo "Статус Docker:" echo "Статус Docker:"
sudo systemctl status docker --no-pager | grep -E "Active|Loaded" || echo "Docker не запущен" systemctl status docker --no-pager | grep -E "Active|Loaded" || echo "Docker не запущен"
# Проверка статуса Caddy
echo "Статус Caddy:" echo "Статус Caddy:"
sudo systemctl status caddy --no-pager | grep -E "Active|Loaded" || echo "Caddy не запущен" systemctl status caddy --no-pager | grep -E "Active|Loaded" || echo "Caddy не запущен"
# Проверка статуса Zabbix Agent
echo "Статус Zabbix Agent:" echo "Статус Zabbix Agent:"
sudo systemctl status zabbix-agent --no-pager | grep -E "Active|Loaded" || echo "Zabbix Agent не запущен" systemctl status zabbix-agent --no-pager | grep -E "Active|Loaded" || echo "Zabbix Agent не запущен"
echo "=========================================" echo "========================================="
echo "Все операции завершены успешно!" echo "Все операции завершены успешно!"
@@ -154,6 +135,6 @@ echo "Zabbix Agent настроен на сервер: zbx.int.kodyffy.ru"
echo "Hostname: $HOSTNAME.kodyffy" echo "Hostname: $HOSTNAME.kodyffy"
echo "" echo ""
echo "Для применения прав Docker выполните: newgrp docker" echo "Для применения прав Docker выполните: newgrp docker"
echo "Для проверки Caddy: sudo systemctl status caddy" echo "Для проверки Caddy: systemctl status caddy"
echo "Для проверки Zabbix Agent: sudo systemctl status zabbix-agent" echo "Для проверки Zabbix Agent: systemctl status zabbix-agent"
echo "=========================================" echo "========================================="