superset
Superset
Используйте эту роль для установки, настройки и управления Apache Superset.
По умолчанию устанавливается версия Superset 0.28.1. Чтобы установить другую версию, задайте переменную superset_version
.
Переменные роли
superset_python_executable
: Указывает, какой бинарный файл Python использовать для установки Superset. В настоящее время поддерживаются python2.7
и python3.6
.
superset_recreate_virtualenv
: Установите в True
, если хотите, чтобы роль создала заново виртуальную среду Python, в которой установлен Superset.
Эта роль создает пользователя и базу данных Superset. Для подключения к хосту базы данных задайте:
superset_postgres_db_host
: Хост базы данныхsuperset_postgres_login_user
: Пользователь postgres, используемый для создания базы данных и пользователя Supersetsuperset_postgres_login_password
: Пароль для пользователя postgres, используемого для создания базы данных и пользователя Supersetsuperset_postgres_db_name
: Имя базы данных Superset (для создания). Это база данных, которую будет использовать Superset.superset_postgres_db_user
: Имя пользователя postgres для Superset (для создания)superset_postgres_db_pass
: Пароль пользователя postgres для Supersetsuperset_pgpass_credentials
: Список учетных данных базы данных для использования при подключениях без пароля в форматеhostname:port:database:username:password
.
Другие стандартные переменные перечислены ниже
# следует ли перезапускать Superset после внесения изменений; по умолчанию True, для кластера лучше отключить
superset_perform_restart: True
Доступные языки
Это позволяет вам контролировать, какие языки доступны и как они обозначены.
supeset_languages:
- key: en
flag: us
name: English
- key: ja
flag: jp
name: Japanese
По умолчанию используется подмножество доступных языков, проверьте папку /translations
текущей версии Superset, чтобы увидеть, какие другие языки доступны.
Методы аутентификации
Это позволяет вам настроить, какой метод аутентификации использует Superset. По умолчанию
superset_auth_type: AUTH_DB
использует Superset на DB для управления пользователями. В настоящее время поддерживаются параметры конфигурации только для типа AUTH_OAUTH
.
Если вы выбрали этот тип аутентификации, вы можете предоставить дополнительные детали конфигурации с помощью
superset_oauth_providers:
- name:
icon:
token_key:
consumer_key:
consumer_secret:
base_url:
request_token_params:
request_token_url:
access_token_url:
authorize_url:
access_token_method:
access_token_params:
access_token_headers:
custom_redirect_url:
где request_token_params
, если указаны, представляет собой JSON-объект. Все значения, кроме request_token_params
, consumer_key
и consumer_secret
, выводятся в кавычках. Обычно вы задаете consumer_key
и consumer_secret
, чтобы получить переменные окружения, например, os.environ.get('OAUTH2_CLIENT_SECRET')
.
Вы можете задать свои переменные окружения для службы с помощью:
superset_service_env_vars:
OAUTH2_CLIENT_SECRET: SECRET
Обратите внимание, что некоторые провайдеры oAuth, такие как
onadata
, требуют, чтобыrequest_token_url
,access_token_url
иauthorize_url
заканчивались на символ/
.
Белая марка
Эта роль позволяет вам выполнять некоторую белую маркировку Superset, позволяя изменять имя приложения Superset и «брендовые изображения», которые включают:
- Фavicon:
favicon.png
- Логотип:
superset.png
- Логотип 2x:
[email protected]
Размеры файлов и размеры этих изображений должны быть как можно ближе к изображениям, которые мы заменяем, и их можно найти в каталоге static/images
Superset.
Включите белую маркировку, установив эту переменную в True:
superset_white_label: True
Изменить имя приложения
superset_app_name: 'Мое приложение'
Использовать файлы для изменения бренда
Вы можете использовать файлы, установив следующие переменные.
superset_white_label_use_filepaths: True
superset_favicon_path: "/path-to-/favicon.png"
superset_logo_path: "/path-to-/superset.png"
superset_2x_logo_path: "/path-to-/[email protected]"
Использовать изображения в кодировке base64 для изменения бренда
Чтобы избежать неудобств с файлами, вы можете использовать изображения в кодировке base64, установив следующие переменные.
superset_white_label_use_base64: True
superset_favicon_base64: "base64 закодированный favicon"
superset_logo_base64: "base64 закодированный логотип"
superset_2x_logo_base64: "base64 закодированный логотип 2x"
Загрузка ресурсов
Superset по умолчанию активирует следующие расширения для загрузки данных:
superset_allowed_extensions:
- csv
Проверьте конфигурацию ALLOWED_EXTENSIONS
в файле config.py Superset, чтобы увидеть список поддерживаемых расширений.
Директории загрузки для изображений и файлов данных (которые будут использоваться расширениями импорта данных) установлены следующим образом:
superset_img_upload_dir: "{{ superset_home }}/images/"
superset_upload_dir: "{{ superset_home }}/uploads/"
Изменить лимит JSON
Измените это значение, чтобы увеличить лимит данных JSON для позиции панели Superset. По умолчанию он установлен на 2^16, в приведенном ниже примере мы увеличим его до 2^24.
superset_dashboard_position_data_limit: 16777216
Superset-patchup (ketchup)
Эта роль может быть настроена для опционального включения Superset-patchup, сделав это:
superset_use_ketchup: True
superset_ketchup_version: "v0.1.0"
Superset-patchup улучшает Superset, добавляя больше функций. Более подробную информацию об этом проекте можно прочитать здесь: документация Superset-patchup
Обратите внимание, что версии привязок ansible-superset, включая это предупреждение, совместимы только с superset-patchup версии v0.1.6 и выше (из-за измененной логики инициализации).
Кэширование Superset
Чтобы включить кэширование в Superset, предоставьте CACHE_CONFIG
, который соответствует спецификациям Flask-Cache и CACHE_DEFAULT_TIMEOUT
, который определяет период разогрева кэша.
superset_enable_cache: True
superset_cache_config: |
{
'CACHE_TYPE': 'redis',
'CACHE_KEY_PREFIX': 'superset_results',
'CACHE_REDIS_URL': 'redis://localhost:6379/0'
}
superset_cache_default_timeout: 60 * 60 * 24, # 1 день
Чтобы разрешить периодический разогрев кэша, настройте задачу celery для Superset с предпочтительной стратегией разогрева. Включите celerybeat и настройте его словарь следующим образом:
superset_enable_celerybeat: True
superset_celerybeat_schedule: |
{
'cache-warmup-hourly': {
'task': 'cache-warmup',
'schedule': crontab(minute=0, hour='*'), # каждый час
'kwargs': {
'strategy_name': 'top_n_dashboards',
'top_n': 5,
'since': '7 дней назад',
},
},
}
Тестирование
Этот проект поставляется с Vagrantfile, это быстрый и удобный способ протестировать изменения в роли, запустите его с помощью vagrant up
.
Смотрите документацию по Vagrant для установки Vagrant.
Лицензия
Apache 2
Авторы
This role is used to install and configure Apache Superset
ansible-galaxy install onaio/ansible-superset