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)
# Включает установку Docker, Caddy и Zabbix Agent
set -e # Прерывать выполнение при ошибке
set -e
echo "========================================="
echo "Начинаем обновление системы..."
echo "========================================="
# 1) Базовое обновление системы
echo "Обновление списка пакетов..."
apt update
@@ -23,21 +22,18 @@ 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..."
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
apt update
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# Добавление репозитория Docker
echo "Добавление репозитория Docker..."
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
@@ -46,49 +42,43 @@ Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
# Установка Docker
echo "Установка Docker..."
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# Добавление текущего пользователя в группу docker (опционально)
sudo usermod -aG docker $USER 2>/dev/null || true
echo "Docker установлен. Для применения прав группы docker выполните: newgrp docker или перезайдите в систему"
usermod -aG docker $USER 2>/dev/null || true
echo "Docker установлен."
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
sudo chmod o+r /etc/apt/sources.list.d/caddy-stable.list
chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy
apt update
apt install -y caddy
echo "========================================="
echo "Настройка Caddyfile..."
echo "========================================="
# Очистка и запись нового Caddyfile
echo "Очистка /etc/caddy/Caddyfile и добавление шаблона..."
# Запрос PORT у пользователя
read -p "Введите PORT для обратного прокси (например, 8080): " PORT
if [ -z "$PORT" ]; then
PORT="8080"
echo "Порт не указан, используем порт по умолчанию: $PORT"
fi
# Создание нового Caddyfile
sudo tee /etc/caddy/Caddyfile > /dev/null <<EOF
tee /etc/caddy/Caddyfile > /dev/null <<EOF
TEMP.int.kodyffy.ru {
tls internal
reverse_proxy localhost:$PORT
@@ -101,45 +91,36 @@ 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..."
# Получение hostname
HOSTNAME=$(hostname)
# Настройка конфигурационного файла
sudo sed -i "s/^ServerActive=.*/ServerActive=zbx.int.kodyffy.ru/" /etc/zabbix/zabbix_agentd.conf
sudo sed -i "s/^Hostname=.*/Hostname=$HOSTNAME.kodyffy/" /etc/zabbix/zabbix_agentd.conf
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
# Добавление UserParameter и HostMetadataItem
echo "Добавление UserParameter и HostMetadataItem..."
echo "UserParameter=my.metadata,/usr/bin/echo \"$HOSTNAME.kodyffy\"" | sudo tee -a /etc/zabbix/zabbix_agentd.conf
echo "HostMetadataItem=my.metadata" | 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" | tee -a /etc/zabbix/zabbix_agentd.conf
# Перезапуск Zabbix Agent
echo "Перезапуск Zabbix Agent..."
sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent
systemctl restart zabbix-agent
systemctl enable zabbix-agent
echo "========================================="
echo "Проверка статуса сервисов..."
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:"
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:"
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 "Все операции завершены успешно!"
@@ -154,6 +135,6 @@ echo "Zabbix Agent настроен на сервер: zbx.int.kodyffy.ru"
echo "Hostname: $HOSTNAME.kodyffy"
echo ""
echo "Для применения прав Docker выполните: newgrp docker"
echo "Для проверки Caddy: sudo systemctl status caddy"
echo "Для проверки Zabbix Agent: sudo systemctl status zabbix-agent"
echo "Для проверки Caddy: systemctl status caddy"
echo "Для проверки Zabbix Agent: systemctl status zabbix-agent"
echo "========================================="