Руководство администратора
Установка
-
Получаем архив с необходимыми файлами и распаковываем:
tar xf example_client.tar.gz cd example_clientexample_client/ ├── client.crt ├── client.key ├── install.sh └── license.txt 1 directory, 4 files -
Запускаем скрипт для установки сертификата, файла конфигурации и репозитория APT:
sudo ./install.sh -
Устанавливаем пакеты:
-
Только Tengri
sudo apt install tengri -
Tengri с локальным S3 (MinIO)
sudo apt install tengri tengri-minio
-
-
После установки Tengri будет готов к работе на порту
3000.
Логин и пароль по умолчанию:admin / admin. -
Пакет
tengri-minioустановит локальный MinIO с дефолтными настройками. Подробности о дальнейшей настройке можно узнать в документации MinIO.
Настройка конфигурации
-
Дополнительные настройки конфигурации Tengri можно задать в файле
/etc/tengri/tengri.conf(по умолчанию файл отсутствует).Полный список возможных настроек в файле
tengri.conf# TNGRi configuration parameters # ========= # Licencing # ========= # TNGRI_LICENSE_FILE=/opt/tengri/license.txt # =========================== # S3 configuration parameters # =========================== # # # Access key id and secret key of user that will connect to S3 # rename SECRET_ACCESS_KEY to SECRET_KEY TNGRI_S3_ACCESS_KEY_ID=minioadmin TNGRI_S3_SECRET_ACCESS_KEY=minioadmin # # Region to send to S3 server. Generally you don't need to change that, just make # sure that target S3 has this same region TNGRI_S3_REGION=eu-central-1 TNGRI_S3_DEFAULT_REGION=eu-central-1 # # API endpoint URL for target S3. Must be in FQDN form # TNGRI_S3_ENDPOINT_URL=http://example.com TNGRI_S3_ENDPOINT_URL=http://127.0.0.1:9002 # # Bucket name to use. Must exist before start, so make sure that it exists and # has full access rights for this bucket. Must be in full form, i.e. # TNGRI_S3_BUCKET_NAME=s3://example:9000 TNGRI_S3_BUCKET_NAME=prostore # ======================= # TNGRi server parameters # ======================= # # # Iceberg catlog path in S3 bucket TNGRI_WAREHOUSE_PATH=s3://prostore/iceberg/ # # Name for the default schema in TNGRi. TNGRI_DEFAULT_SCHEMA=public # # URI for catalog endpoint. Must be either PostgreSQL or SQLite connection string, i.e. # TNGRI_CATALOG_URI=postgresql://user:password@example.com/database TNGRI_CATALOG_URI=postgresql://prostore:prostore@127.0.0.1:5432/prostore # # Path to writable directory where cached files will be placed. # # WARNING: Should be placed on SSD storage. Tngri uses aggressive caching strategies # to reduce S3 load # TNGRI_CACHE_DIR=/var/lib/tengri/cache # # Path to writable directory where python kernels will be stored. TNGRI_KERNEL_DIR=/var/lib/tengri/kernels # # If set to false then no agent is required to process queries. # Must be true for production environments TNGRI_REMOTE_SESSIONS=true # # Set to true for more log output TNGRI_DEBUG=false # # Host to bind main server to TNGRI_HOST=0.0.0.0 # # Port to bind PostgreSQL protocol implementation to TNGRI_PORT=5433 # # Host to bind RPC server for communication between agent and server TNGRI_RPC_HOST=0.0.0.0 # # Port to bind RPC server for communication between agent and server TNGRI_RPC_PORT=57776 # ============================= # Web application configuration # ============================= # # # SSL configuration. If set then Web communication will be done over SSL, otherwise # it will be plaintext. # # Path to SSL key. # TNGRI_SSL_KEY= # # Path to SSL certificate file. # TNGRI_SSL_CERT= # # Enables TNGRi web app. TNGRI_ENABLE_WEBSOCKET=true # # Path to static files for web app. TNGRI_WEBAPP_DIR=/usr/share/tengri-web # # Host to bind HTTP server to TNGRI_WEBAPP_HOST=0.0.0.0 # # Port to bind HTTP server to TNGRI_WEBAPP_PORT=3000 # # Host to bind Websocket server to. It is used extensively by webapp and python clients TNGRI_WEBSOCKET_HOST=0.0.0.0 # # Port to bind Websocket server to TNGRI_WEBSOCKET_PORT=3001 # # Host to bind PyLSP server to. It is used by webapp to provide code completion TNGRI_PYLSP_HOST=0.0.0.0 # # Port to bind PyLSP server to TNGRI_PYLSP_PORT=3003 # # Host to bind CRUD. Used by webapp to send messages in chats, manage scheduled # notebooks and manage external catalogs TNGRI_CRUD_HOST=0.0.0.0 # # Port to bind CRUD to TNGRI_CRUD_PORT=3004 # ============================ # TNGRi services configuration # ============================ # # Enable TNGRi's Iceberg REST catalog API provider TNGRI_ENABLE_REST_CATALOG=true # Host to bind REST catalog server to TNGRI_REST_CATALOG_HOST=0.0.0.0 # Port to bind REST catalog to TNGRI_REST_CATALOG_PORT=3005 # Enable compaction daemon TNGRI_ENABLE_COMPACTION=true # Enable notebook CRON daemon TNGRI_ENABLE_CRON=true # ============================ # TNGRi deployment information # ============================ # # Needed for external clients to connect to TNGRi services. For example, python clients # connecting from user's local machines. Set these to the values that point to this # installation, for example, if using reverse proxy for HTTP or Postgres protocol. # # Change the name of site deployment # TNGRI_SITE_NAME=tngri # # Websocket address to connect to. Must be in FQDN form, i.e. # TNGRI_SITE_WS_ADDR=ws://example.com:3001 TNGRI_SITE_WS_ADDR=ws://0.0.0.0:3001 # # Postgres protocol address to connect to, i.e. # TNGRI_SITE_PSQL_ADDR=example.com:5433 # TNGRI_SITE_PSQL_ADDR= # # S3 address to connect to. Must be in FQDN form, i.e. # TNGRI_SITE_S3_ADDR=http://example.com:9000 # TNGRI_SITE_S3_ADDR= # # S3 access key for public usage (Stage only) # TNGRI_SITE_PUBLIC_LOADER_ACCESS_KEY=public_loader # # S3 secret key for public usage (Stage only) # TNGRI_SITE_PUBLIC_LOADER_SECRET_KEY=public_loader # -
Дополнительные настройки конфигурации MinIO можно задать в файле
/etc/default/tengri-minioв соответствии с документацией MinIO.После обновления файла конфигурации MinIO необходимо выполнить:
sudo systemctl daemon-reload sudo systemctl restart minio
Сброс пароля администратора
В случае если утрачен доступ к паролю администратора, его можно сбросить.
Для этого на сервере, где был установлен пакет, нужно выполнить:
sudo -u tengri bash -c 'export $(egrep -v "^#|^$|.*#" /var/lib/tengri/tengri.defaults | xargs); prostore reset-admin-password'"
После этого текущий пароль администратора сбросится, и новый автоматически сгенерированный пароль будет показан в логе вывода.
Настройка ролей для пользователей
Создание ролей для пользователей
Чтобы создать роль analyst, выполняем запрос:
CREATE ROLE analyst;
-
Подробнее о создании ролей.
Назначение ролей пользователям
Чтобы назначить пользователю tengri_user роль analyst, выполняем запрос:
GRANT ROLE analyst TO tengri_user;
-
Подробнее о назначении ролей.
Предоставление ролям привилегий
Чтобы предоставить роли analyst привилегии для чтения и записи внутри схемы analytical_sandbox, выполняем запрос:
GRANT
USAGE,
MODIFY,
CREATE TABLE,
CREATE VIEW
ON SCHEMA analytical_sandbox
TO ROLE analyst;
После этого у всех пользователей с ролью analyst появятся права на чтение и изменение таблиц и представлений внутри схемы analytical_sandbox.
При необходимости скорректируйте список предоставляемых привилегий для данной роли.
-
Подробнее о предоставлении привилегий.
Отзыв привилегий у ролей
Чтобы отозвать у роли analyst привилегию для записи внутри схемы analytical_sandbox, выполняем запрос:
REVOKE
MODIFY
ON SCHEMA analytical_sandbox
FROM ROLE analyst;
При необходимости скорректируйте список отзываемых привилегий для данной роли.
-
Подробнее об отзыве привилегий.
Отзыв ролей у пользователей
Чтобы отозвать у пользователя tengri_user роль analyst, выполняем запрос:
REVOKE ROLE analyst FROM tengri_user;
-
Подробнее об отзыве ролей.