onaio.superset

Superset

使用此角色来安装、配置和管理 Apache Superset。

默认情况下,此角色安装 Superset 版本 0.28.1。如果要安装其他版本,请设置 superset_version 变量。

角色变量

superset_python_executable: 指定用于安装 Superset 的 Python 二进制文件。当前支持 python2.7python3.6

superset_recreate_virtualenv: 如果希望角色重新创建安装 Superset 的 Python 虚拟环境,请将其设置为 True

此角色会创建一个 superset 用户和数据库。要连接到数据库主机,请设置:

  • superset_postgres_db_host: 数据库主机
  • superset_postgres_login_user: 用于创建 superset 数据库和用户的 postgres 用户
  • superset_postgres_login_password: 用于创建 superset 数据库和用户的 postgres 用户密码
  • superset_postgres_db_name: 要创建的 superset 数据库名称。这是 Superset 将使用的数据库。
  • superset_postgres_db_user: Superset postgres 用户名称(待创建)
  • superset_postgres_db_pass: Superset postgres 用户密码
  • superset_pgpass_credentials: 用于无密码连接的数据库凭据列表,格式为 hostname:port:database:username:password

其他默认变量如下所示

# 在更改后是否重新启动 Superset;默认是 True,对于集群可能希望禁用
superset_perform_restart: True

可用语言

这让您可以控制可用的语言以及它们的标签。

supeset_languages:
  - key: en
    flag: us
    name: 英语
  - key: ja
    flag: jp
    name: 日语

默认情况下是所有可用语言的子集,请查看当前 Superset 版本的 /translations 文件夹,以查看其他可用语言。

认证后端

这让您可以配置 Superset 用户的认证后端。默认情况下

superset_auth_type: AUTH_DB

使用 Superset 的数据库来管理用户。目前,配置选项仅支持 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_paramsconsumer_keyconsumer_secret 外,所有值都用引号包围。您通常会将 consumer_keyconsumer_secret 设置为获取环境变量,例如 os.environ.get('OAUTH2_CLIENT_SECRET')

您可以通过以下设置环境变量:

superset_service_env_vars:
  OAUTH2_CLIENT_SECRET: THE_SECRET

请注意,某些 OAuth 提供者,例如 onadata,要求 request_token_urlaccess_token_urlauthorize_url 都以 / 字符结尾。

白标签

此角色允许您对 Superset 进行白标签处理,您可以更改 Superset 应用名称和“品牌图片”,包括:

这些图片的文件大小和尺寸应尽量接近我们要替换的图片,该图片可以在 Superset 的 static/images 目录中找到。

通过将以下变量设置为 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 编码的网站图标"
superset_logo_base64: "base64 编码的徽标"
superset_2x_logo_base64: "base64 编码的 2x 徽标"

资产上传

默认情况下,Superset 将启用以下扩展用于数据上传:

superset_allowed_extensions:
  - csv

查看 Superset 的 config.py 中的 ALLOWED_EXTENSIONS 配置以获取支持的扩展文件列表。

用于图像和数据文件的上传目录(供数据导入扩展使用)设置为:

superset_img_upload_dir: "{{ superset_home }}/images/"
superset_upload_dir: "{{ superset_home }}/uploads/"

更改 JSON 限制

修改此值以增加 Superset 仪表板位置 JSON 数据限制。默认值设置为 2^16,在以下示例中,我们将其增加到 2^24。

superset_dashboard_position_data_limit: 16777216

Superset-patchup(酱油)

您可以选择通过执行以下操作来包含 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 中启用 缓存,提供符合 Flask-Cache 规范的 CACHE_CONFIG 和决定缓存预热周期的 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 天

要允许定期预热缓存,请配置 Superset 的 Celery 任务并设置首选的预热策略。启用 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

作者

Ona Engineering

关于项目

This role is used to install and configure Apache Superset

安装
ansible-galaxy install onaio.superset
许可证
bsd-2-clause
下载
139
拥有者