• 隐藏侧边栏
  • 展开分类目录
  • 关注微信公众号
  • 我的 GitHub
  • QQ: 1753970025
Chen Jiehua

Redash版本更新部署 

Redash,make your company data driven,connect to any data source, easily visualize and share your data……

背景

  • 当前内部使用的redash版本为 0.10.0+b1774,许多新特性都不支持;
  • 新版本的redash已经支持 query params 和 filter;
  • 最新版本的redash已经支持 LDAP 登陆;

新特性

Query Params

参考:https://redash.io/help/queries/writing_queries.html#query_params

Filter

同时也支持  “action::multi-filter” 的写法。

参考:https://redash.io/help/queries/writing_queries.html#query_filters

更新

旧版本的redash采用 docker 方式安装,官方并无提供相对应的文档,数据库的迁移存在困难:

Docker

If you’re using Docker to run Redash, don’t use the upgrade script, but rather update the Docker image you’re using

Docker 的安装方式并不是官方的推荐方法, From Github#1079

Because there is no documented process for running migrations (and upgrade) for Docker, we don’t recommend it “officially” for usage and assuming that those who still want to use Docker will figure it out.

You should compare the list of migrations between the old image and your current one to see which ones you need to run.

How to run them depends on your Docker setup. Do you use Docker compose?

But in general it’s something along the lines of: PYTHONPATH=. python migrations/<migration filename> from /opt/redash/current for each migration file.

And once this process will be automated, we will make Docker the recommended deployment method and have it run on container startup…

尝试手动更新并未成功,最后放弃;选择重新部署新版本的redash实例。

部署

Redash 稳定版本为 2.0,并未实现对 LDAP 的支持。From Github#633,LDAP特性的支持在 2017-08-10 进行了Merge,因此考虑安装最新版本的Redash v3.0.0+b。

参考:https://github.com/getredash/redash/pull/1836

构建Docker镜像,Dockerfile:

采用docker-compose启动,docker-compose.yml:

至此,在本地测试环境 Docker 17.06.2-ce + OpenLDAP 上测试完成,一切正常运行。

线上部署

线上部署时遇到的问题:LDAP服务器连接失败。

问题1:LDAP连接失败

  • 采用 plain 模式连接LDAP服务器,配置为:REDASH_LDAP_URL: “ldap://172.31.0.1:389″;
  • 采用 ssl 模式连接LDAP服务器,配置为:REDASH_LDAP_URL: “ldaps://172.31.0.1:636″;

报错:

解决方案:对 ldap3 依赖的库 pyasn1 进行降版本(别问我是怎么找到这个解决方案的……)

ldap3 的 requirements.txt 中 pyasn1>=0.1.8,默认安装最新版的 pyasn1==0.3.5,与服务器的LDAP不兼容导致(我猜的 ……)

修改Dockerfile:

故障重现

问题2:redash ldap跳转链接bug

登录界面的LDAP跳转链接为:http://localhost:25000/ldap_auth/login,而真实链接为:http://localhost:25000/ldap/login

解决方案1:nginx rewrite

解决方案2:关闭默认登录,强制采用LDAP,登录时自动跳转到正确的ldap登录链接

码字很辛苦,转载请注明来自ChenJiehua《Redash版本更新部署》

评论