+32
-51
@@ -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 "========================================="
|
||||||
Reference in New Issue
Block a user