Files
fast-script/service_default.sh
T

133 lines
5.0 KiB
Bash

#!/bin/bash
# Скрипт для обновления системы и установки пакетов (Версия 2)
# Включает установку Docker, Caddy и Zabbix Agent
set -e
echo "========================================="
echo "Начинаем обновление системы..."
echo "========================================="
echo "Обновление списка пакетов..."
apt update
echo "Обновление установленных пакетов..."
apt upgrade -y
echo "Установка базовых пакетов (sudo, curl, fish)..."
apt install -y sudo curl fish
echo "========================================="
echo "Установка Docker..."
echo "========================================="
echo "Удаление старых пакетов Docker..."
apt remove -y docker.io docker-compose docker-doc docker-buildx podman-docker containerd runc 2>/dev/null || true
echo "Добавление GPG ключа Docker..."
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
echo "Добавление репозитория Docker..."
cat > /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
echo "Установка Docker..."
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
usermod -aG docker $USER 2>/dev/null || true
echo "Docker установлен."
echo "========================================="
echo "Установка Caddy..."
echo "========================================="
echo "Установка Caddy..."
apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
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' | tee /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
apt update
apt install -y caddy
echo "========================================="
echo "Настройка Caddyfile..."
echo "========================================="
echo "Очистка /etc/caddy/Caddyfile и добавление шаблона..."
cat > /etc/caddy/Caddyfile <<EOF
TEMP.int.kodyffy.ru {
tls internal
reverse_proxy localhost:8000
}
EOF
echo "========================================="
echo "Установка Zabbix Agent..."
echo "========================================="
echo "Установка Zabbix Agent..."
apt install -y zabbix-agent
echo "Настройка Zabbix Agent..."
HOSTNAME=$(hostname)
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
echo "Добавление UserParameter и HostMetadataItem..."
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
echo "Перезапуск Zabbix Agent..."
systemctl restart zabbix-agent
systemctl enable zabbix-agent
echo "========================================="
echo "Проверка статуса сервисов..."
echo "========================================="
echo "Статус Docker:"
systemctl status docker --no-pager | grep -E "Active|Loaded" || echo "Docker не запущен"
echo "Статус Caddy:"
systemctl status caddy --no-pager | grep -E "Active|Loaded" || echo "Caddy не запущен"
echo "Статус Zabbix Agent:"
systemctl status zabbix-agent --no-pager | grep -E "Active|Loaded" || echo "Zabbix Agent не запущен"
echo "========================================="
echo "Все операции завершены успешно!"
echo "========================================="
echo "Установленные компоненты:"
echo " - Docker: $(docker --version 2>/dev/null || echo 'не установлен')"
echo " - Caddy: $(caddy version 2>/dev/null || echo 'не установлен')"
echo " - Zabbix Agent: $(zabbix_agentd --version 2>/dev/null | head -1 || echo 'не установлен')"
echo ""
echo "Caddy настроен на порт: $PORT"
echo "Zabbix Agent настроен на сервер: zbx.int.kodyffy.ru"
echo "Hostname: $HOSTNAME.kodyffy"
echo ""
echo "Для применения прав Docker выполните: newgrp docker"
echo "Для проверки Caddy: systemctl status caddy"
echo "Для проверки Zabbix Agent: systemctl status zabbix-agent"
echo "========================================="