misc: добавлен пример команды установки
This commit is contained in:
parent
ce848ea631
commit
2b74eed203
234
setup-alpine.sh
234
setup-alpine.sh
@ -1,233 +1 @@
|
|||||||
#!/bin/sh
|
wget https://git.sys.smsynergy.ru/public/setup/raw/branch/main/dev/docker-compose.yml -O docker-compose.yml
|
||||||
|
|
||||||
REG=git.sys.smsynergy.ru
|
|
||||||
VERSION=v0.0.1
|
|
||||||
|
|
||||||
. ./.env
|
|
||||||
|
|
||||||
echo $DOMAIN
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
echo "=========================================="
|
|
||||||
echo " Установка системы Panorama Analytics"
|
|
||||||
echo "=========================================="
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
# Проверка наличия необходимых утилит
|
|
||||||
if ! command -v docker >/dev/null 2>&1; then
|
|
||||||
echo "Установка Docker..."
|
|
||||||
apk add --no-cache docker docker-compose
|
|
||||||
rc-update add docker boot
|
|
||||||
service docker start
|
|
||||||
sleep 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Запрос DOMAIN
|
|
||||||
if [ -z "$DOMAIN" ]; then
|
|
||||||
echo -n "Введите домен для запуска системы Panorama Analytics (например: example.com): "
|
|
||||||
read DOMAIN
|
|
||||||
|
|
||||||
if [ -z "$DOMAIN" ]; then
|
|
||||||
echo "Ошибка: DOMAIN обязателен для продолжения"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "DOMAIN: $DOMAIN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Запрос токена (для доступа к git registry)
|
|
||||||
if [ -z "$REG_USER" ]; then
|
|
||||||
echo -n "Введите логинт для доступа к git registry: "
|
|
||||||
read REG_USER
|
|
||||||
|
|
||||||
if [ -z "$REG_USER" ]; then
|
|
||||||
echo "Ошибка: логин обязателен для продолжения"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$REG_PASS" ]; then
|
|
||||||
echo -n "Введите пароль для доступа к git registry: "
|
|
||||||
read REG_PASS
|
|
||||||
|
|
||||||
if [ -z "$REG_PASS" ]; then
|
|
||||||
echo "Ошибка: пароль обязателен для продолжения"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "Настройка окружения..."
|
|
||||||
|
|
||||||
# Создаем .env файл
|
|
||||||
cat > .env <<EOF
|
|
||||||
# --- Infrastructure
|
|
||||||
DOMAIN=${DOMAIN}
|
|
||||||
|
|
||||||
REG=git.sys.smsynergy.ru
|
|
||||||
REG_USER=${REG_USER}
|
|
||||||
REG_PASS=${REG_PASS}
|
|
||||||
|
|
||||||
# --- Databases
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo ".env файл создан"
|
|
||||||
|
|
||||||
# Логин в Docker registry
|
|
||||||
echo ""
|
|
||||||
echo "Авторизация в Docker registry..."
|
|
||||||
echo "$REG_PASS" | docker login $REG -u $REG_USER --password-stdin
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Ошибка: не удалось авторизоваться в Docker registry"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Авторизация успешна"
|
|
||||||
|
|
||||||
# Скачивание docker-compose.yml
|
|
||||||
echo ""
|
|
||||||
echo "Скачивание docker-compose.yml версии ${VERSION}..."
|
|
||||||
|
|
||||||
# Пробуем скачать из git репозитория
|
|
||||||
# Пробуем разные варианты URL
|
|
||||||
DOWNLOADED=0
|
|
||||||
|
|
||||||
# Создаем базовую HTTP аутентификацию (Base64)
|
|
||||||
AUTH_BASE64=$(printf "%s:%s" "${REG_USER}" "${REG_PASS}" | base64 -w 0 2>/dev/null || printf "%s:%s" "${REG_USER}" "${REG_PASS}" | base64)
|
|
||||||
|
|
||||||
for COMPOSE_URL in \
|
|
||||||
"https://${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml" \
|
|
||||||
"https://${REG}/cc/deploy/src/tag/${VERSION}/dev/docker-compose.yml" \
|
|
||||||
"https://${REG}/cc/deploy/-/raw/${VERSION}/dev/docker-compose.yml" \
|
|
||||||
"https://${REG}/cc/deploy/-/blob/${VERSION}/dev/docker-compose.yml?format=raw"; do
|
|
||||||
echo "Попытка скачать: ${COMPOSE_URL}"
|
|
||||||
|
|
||||||
# Пробуем с базовой HTTP аутентификацией через заголовок (для BusyBox wget)
|
|
||||||
echo "Попытка с Basic Auth..."
|
|
||||||
if wget --header="Authorization: Basic ${AUTH_BASE64}" -O docker-compose.yml "${COMPOSE_URL}" 2>&1 | tee /tmp/wget_output.log; then
|
|
||||||
if [ -f "docker-compose.yml" ] && [ -s "docker-compose.yml" ]; then
|
|
||||||
# Проверяем, что это не HTML страница с ошибкой
|
|
||||||
if head -1 docker-compose.yml | grep -q "services:"; then
|
|
||||||
echo "docker-compose.yml успешно скачан с URL: ${COMPOSE_URL}"
|
|
||||||
DOWNLOADED=1
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "Предупреждение: скачанный файл не похож на docker-compose.yml"
|
|
||||||
cat docker-compose.yml | head -5
|
|
||||||
rm -f docker-compose.yml
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
HTTP_CODE=$(grep -o "HTTP/[0-9.]* [0-9]*" /tmp/wget_output.log 2>/dev/null | tail -1 | awk '{print $2}' || echo "unknown")
|
|
||||||
if [ "$HTTP_CODE" != "unknown" ]; then
|
|
||||||
echo "HTTP код: ${HTTP_CODE}"
|
|
||||||
fi
|
|
||||||
if [ -f /tmp/wget_output.log ]; then
|
|
||||||
echo "Вывод wget:"
|
|
||||||
cat /tmp/wget_output.log | tail -3
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Пробуем с токеном в заголовке
|
|
||||||
echo "Попытка с токеном в заголовке..."
|
|
||||||
if wget --header="Authorization: token ${REG_PASS}" -O docker-compose.yml "${COMPOSE_URL}" 2>&1 | tee /tmp/wget_output.log; then
|
|
||||||
if [ -f "docker-compose.yml" ] && [ -s "docker-compose.yml" ]; then
|
|
||||||
if head -1 docker-compose.yml | grep -q "services:"; then
|
|
||||||
echo "docker-compose.yml успешно скачан с токеном: ${COMPOSE_URL}"
|
|
||||||
DOWNLOADED=1
|
|
||||||
break
|
|
||||||
else
|
|
||||||
rm -f docker-compose.yml
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Пробуем с Bearer токеном
|
|
||||||
echo "Попытка с Bearer токеном..."
|
|
||||||
if wget --header="Authorization: Bearer ${REG_PASS}" -O docker-compose.yml "${COMPOSE_URL}" 2>&1 | tee /tmp/wget_output.log; then
|
|
||||||
if [ -f "docker-compose.yml" ] && [ -s "docker-compose.yml" ]; then
|
|
||||||
if head -1 docker-compose.yml | grep -q "services:"; then
|
|
||||||
echo "docker-compose.yml успешно скачан с Bearer токеном: ${COMPOSE_URL}"
|
|
||||||
DOWNLOADED=1
|
|
||||||
break
|
|
||||||
else
|
|
||||||
rm -f docker-compose.yml
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Пробуем с URL содержащим credentials (для некоторых систем)
|
|
||||||
COMPOSE_URL_WITH_AUTH="https://${REG_USER}:${REG_PASS}@${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml"
|
|
||||||
if [ "$COMPOSE_URL" = "https://${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml" ]; then
|
|
||||||
echo "Попытка с credentials в URL..."
|
|
||||||
if wget -O docker-compose.yml "${COMPOSE_URL_WITH_AUTH}" 2>&1 | tee /tmp/wget_output.log; then
|
|
||||||
if [ -f "docker-compose.yml" ] && [ -s "docker-compose.yml" ]; then
|
|
||||||
if head -1 docker-compose.yml | grep -q "services:"; then
|
|
||||||
echo "docker-compose.yml успешно скачан с credentials в URL"
|
|
||||||
DOWNLOADED=1
|
|
||||||
break
|
|
||||||
else
|
|
||||||
rm -f docker-compose.yml
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ $DOWNLOADED -eq 0 ]; then
|
|
||||||
echo ""
|
|
||||||
echo "=========================================="
|
|
||||||
echo "ОШИБКА: не удалось скачать docker-compose.yml"
|
|
||||||
echo "=========================================="
|
|
||||||
echo "Проверьте:"
|
|
||||||
echo "1. Правильность версии: ${VERSION}"
|
|
||||||
echo "2. Доступность репозитория: ${REG}/cc/deploy"
|
|
||||||
echo "3. Правильность логина и пароля"
|
|
||||||
echo "4. Существование файла: dev/docker-compose.yml в указанной версии"
|
|
||||||
echo ""
|
|
||||||
echo "Попробуйте вручную:"
|
|
||||||
AUTH_B64=$(printf "%s:%s" "${REG_USER}" "${REG_PASS}" | base64 -w 0 2>/dev/null || printf "%s:%s" "${REG_USER}" "${REG_PASS}" | base64)
|
|
||||||
echo "wget --header=\"Authorization: Basic ${AUTH_B64}\" -O docker-compose.yml \"https://${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml\""
|
|
||||||
echo "или:"
|
|
||||||
echo "wget -O docker-compose.yml \"https://${REG_USER}:${REG_PASS}@${REG}/cc/deploy/raw/tag/${VERSION}/dev/docker-compose.yml\""
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Проверка наличия docker-compose.yml
|
|
||||||
if [ ! -f "docker-compose.yml" ]; then
|
|
||||||
echo "Ошибка: docker-compose.yml не найден"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Запуск docker-compose
|
|
||||||
echo ""
|
|
||||||
echo "Запуск контейнеров..."
|
|
||||||
docker-compose up -d
|
|
||||||
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
echo "Ошибка: не удалось запустить контейнеры"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Ожидание запуска сервисов
|
|
||||||
echo ""
|
|
||||||
echo "Ожидание запуска сервисов..."
|
|
||||||
sleep 5
|
|
||||||
|
|
||||||
# Проверка статуса
|
|
||||||
echo ""
|
|
||||||
echo "Статус контейнеров:"
|
|
||||||
docker-compose ps
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=========================================="
|
|
||||||
echo " Установка завершена!"
|
|
||||||
echo "=========================================="
|
|
||||||
echo ""
|
|
||||||
echo "Зайдите на http://sah.${DOMAIN} для продолжения"
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user