ВМ1: реализован сбор логов
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
Логирование операций
|
||||
|
||||
1. env:
|
||||
|
||||
изменение Release_Version
|
||||
+ две переменные:
|
||||
HOST_NAME=devhanapp \ prodhanapp.ihan.ru.
|
||||
TELEMETRYGEN_IMAGE=ghcr.io/open-telemetry/opentelemetry-collector-contrib/telemetrygen@sha256:9461e2c7213219467e5f775ea8652d15c990afb4d1ca94e62344f2025a7587d1
|
||||
|
||||
2. Обновить образы:
|
||||
|
||||
API_BACKEND_IMAGE=cr.selcloud.ru/han-images/han-api-backend@sha256:5ec8336ce56de41880398f68a2174530ba4dde9cd8ae6151c42f1631ab29bc35
|
||||
SMS_SERVICE_IMAGE=cr.selcloud.ru/han-images/sms-service@sha256:404685c45b7391a78f95c014ce8fdff64a84ccd7ae5b280e7a65b524c109d898
|
||||
BITRIX_LOCAL_APP_IMAGE=cr.selcloud.ru/han-images/bitrix-local-app@sha256:442889dc20e76f2a16d093adb4ae3ae38508535bafda82654755d1da50693183
|
||||
NGINX_IMAGE=cr.selcloud.ru/han-images/nginx@sha256:2cd7d32967b400c15bb6aaa18e97e99d429b2b6f2bfd54b965fc7d42a91a228e
|
||||
|
||||
3. Скопировать проект:
|
||||
|
||||
```powershell
|
||||
$Release = "1.0.1"
|
||||
tar --exclude=backend/.env `
|
||||
--exclude='backend/**/__pycache__' `
|
||||
--exclude='backend/**/.pytest_cache' `
|
||||
--exclude='backend/**/.ruff_cache' `
|
||||
-czf "vm1-backend-$Release.tar.gz" `
|
||||
-C C:/Users/MI/Documents/Assistent/HAN_chat_specification/VM1_app/codebase backend
|
||||
Get-FileHash "vm1-backend-$Release.tar.gz" -Algorithm SHA256
|
||||
scp "vm1-backend-$Release.tar.gz" devVM1Deploy:/var/lib/han-deploy/incoming/
|
||||
```
|
||||
|
||||
RELEASE='1.0.1'
|
||||
EXPECTED_SHA256='900C7AF2AEC061CFA112F82F8511A8A21F43EDB356EA3EF8C3205F49B6F1DF8F'
|
||||
ARCHIVE="/var/lib/han-deploy/incoming/vm1-backend-${RELEASE}.tar.gz"
|
||||
printf '%s %s/n' "$EXPECTED_SHA256" "$ARCHIVE" | sha256sum --check -
|
||||
tar -tvzf "$ARCHIVE"
|
||||
if tar -tzf "$ARCHIVE" | grep -Eq '(^/|(^|/)\.\.(/|$)|^backend/\.env$)'; then
|
||||
echo 'unsafe path or .env' >&2; exit 1
|
||||
fi
|
||||
if tar -tzf "$ARCHIVE" | grep -Ev '^backend(/|$)' | grep -q .; then
|
||||
echo 'archive has files outside backend' >&2; exit 1
|
||||
fi
|
||||
if tar -tvzf "$ARCHIVE" | awk '$1 ~ /^[lh]/ {found=1} END {exit !found}'; then
|
||||
echo 'symlink/hardlink is forbidden' >&2; exit 1
|
||||
fi
|
||||
|
||||
TARGET="/opt/han-chat/releases/${RELEASE}"
|
||||
test ! -e "$TARGET"
|
||||
install -d -m 0755 -o root -g root "$TARGET"
|
||||
tar --extract --gzip --file "$ARCHIVE" --directory "$TARGET" \
|
||||
--no-same-owner --no-same-permissions
|
||||
test -f "$TARGET/backend/docker-compose.yml"
|
||||
chmod 0755 \
|
||||
"$TARGET/backend/deployment/scripts/setup-vm.sh" \
|
||||
"$TARGET/backend/deployment/preflight.sh" \
|
||||
"$TARGET/backend/deployment/scripts/tls-deploy-hook.sh" \
|
||||
"$TARGET/backend/deployment/secrets/han-compose" \
|
||||
"$TARGET/backend/deployment/secrets/han-secrets"
|
||||
test -x "$TARGET/backend/deployment/scripts/setup-vm.sh"
|
||||
test -x "$TARGET/backend/deployment/preflight.sh"
|
||||
test -x "$TARGET/backend/deployment/scripts/tls-deploy-hook.sh"
|
||||
test -x "$TARGET/backend/deployment/secrets/han-compose"
|
||||
test -x "$TARGET/backend/deployment/secrets/han-secrets"
|
||||
if find "$TARGET/backend" -type l -print -quit | grep -q .; then exit 1; fi
|
||||
chown -R root:root "$TARGET"
|
||||
chmod -R go-w "$TARGET"
|
||||
ln -s "releases/${RELEASE}" /opt/han-chat/.current-new
|
||||
mv -Tf /opt/han-chat/.current-new /opt/han-chat/current
|
||||
|
||||
cd /opt/han-chat/current/backend/
|
||||
sudo apt update
|
||||
sudo apt install -y dos2unix
|
||||
find . -type f \( \
|
||||
-name '*.sh' -o -name '*.py' -o -name '*.service' -o -name '*.sudoers' -o -name 'han-compose' -o -name 'han-secrets' -o -name 'han-message-safety-mode' -o -name '*.yml' -o -name '*.conf*' -o -name 'preflight.sh' -o -name '*.yaml' -o -name '*.md' -o -name '*.toml' -o -name 'Dockerfile' -o -name '*.acl*' -o -name '*.tsx' -o -name '*.ts' -o -name '*.java' -o -name '*.js' -o -name '*.ps1' -o -name '*.xml' -o -name '*.dockerignore' -o -name '*.env*' -o -name '*.css' -o -name '*.ftl' -o -name '*.TAG' -o -name '*validate-env*' -o -name '*.properties' -o -name '*org.keycloak.*Factory' -o -name '*.html' \
|
||||
\) -exec dos2unix {} +
|
||||
find -type f -exec file {} \; | grep -i 'CRLF'
|
||||
|
||||
|
||||
sudo apt remove -y dos2unix
|
||||
sudo apt purge -y dos2unix
|
||||
|
||||
|
||||
/usr/local/sbin/han-vm1-compose --profile ops run --rm migrate-api alembic current
|
||||
/usr/local/sbin/han-vm1-compose --profile ops run --rm migrate-bitrix-local alembic current
|
||||
|
||||
/usr/local/sbin/han-vm1-compose --profile ops run --rm migrate-api
|
||||
/usr/local/sbin/han-vm1-compose --profile ops run --rm migrate-bitrix-local
|
||||
|
||||
Проверка применения миграции
|
||||
/usr/local/sbin/han-vm1-compose --profile ops run --rm migrate-bitrix-local alembic current
|
||||
/usr/local/sbin/han-vm1-compose --profile ops run --rm migrate-bitrix-local alembic heads
|
||||
|
||||
|
||||
scp `
|
||||
C:/Users/MI/.ssh/devDeploy.pub `
|
||||
C:/Users/MI/.ssh/devAdmin.pub `
|
||||
devVM1Deploy:/var/lib/han-deploy/incoming/
|
||||
|
||||
install -m 0600 -o root -g root /var/lib/han-deploy/incoming/devDeploy.pub /root/bootstrap/deploy.pub
|
||||
install -m 0600 -o root -g root /var/lib/han-deploy/incoming/devAdmin.pub /root/bootstrap/admin.pub
|
||||
|
||||
rm -f /var/lib/han-deploy/incoming/devDeploy.pub /var/lib/han-deploy/incoming/devAdmin.pub
|
||||
|
||||
cd /opt/han-chat/current/backend
|
||||
|
||||
export OTEL_HOST_COLLECTOR_VERSION='0.117.0'
|
||||
export OTEL_HOST_COLLECTOR_SHA256='90710c909a30fc3b89dd0e389c13f9e57ebbb87d6a0dc51fdde0bf03499a5f25'
|
||||
DEPLOY_AUTHORIZED_KEY_FILE=/root/bootstrap/deploy.pub \
|
||||
ADMIN_AUTHORIZED_KEY_FILE=/root/bootstrap/admin.pub \
|
||||
HARDEN_SSH=true SKIP_APT_UPGRADE=true \
|
||||
/opt/han-chat/current/backend/deployment/scripts/setup-vm.sh
|
||||
|
||||
/usr/local/bin/otelcol-contrib validate \
|
||||
--config=/opt/han-chat/current/backend/deployment/observability/otel-host-collector.yaml
|
||||
|
||||
chmod 0755 /opt/han-chat/current/backend/scripts/validate-env
|
||||
/opt/han-chat/current/backend/deployment/preflight.sh
|
||||
|
||||
systemctl restart han-stack@production.service
|
||||
если ошибка systemctl status han-stack@production.service
|
||||
docker pull cr.selcloud.ru/han-images/nginx@sha256:2cd7d32967b400c15bb6aaa18e97e99d429b2b6f2bfd54b965fc7d42a91a228e
|
||||
docker pull cr.selcloud.ru/han-images/sms-service@sha256:404685c45b7391a78f95c014ce8fdff64a84ccd7ae5b280e7a65b524c109d898
|
||||
|
||||
systemctl start han-host-otel-collector@production.service
|
||||
|
||||
Canary test: CONFIG_FILE=/etc/han/vm1.env ./deployment/scripts/verify-observability.sh
|
||||
|
||||
rm -f /root/bootstrap/deploy.pub /root/bootstrap/admin.pub
|
||||
Reference in New Issue
Block a user