搭建redash(版本4.0.x)时不使用Docker

首先

在没有使用Docker构建的redash上遇到了需要重新构建的场景。
随着redash版本的更新,不使用Docker构建的方法从redash文档中消失了。
在redash的构建中,需要使用设置脚本,但最新的设置脚本是从Ubuntu 18.04开始支持的。而我的情况是需要在Ubuntu 16.04上进行构建。
redash的文档还没有完全整理,经过不断尝试和探索,我完成了redash的构建。
本文总结了我在那时的构建步骤。

参考文献:redash文档
https://redash.io/help/

参考文献:关于redash设置脚本
https://github.com/getredash/redash/tree/master/setup

红色驮是什么?

    • OSSで提供されているダッシュボードツール

 

    • RDBやBigQuery、Prestoといった様々なデータソースとの連携が可能。

 

    Active Directoryとの連携が可能で、LDAPによりシングルサインオンも実現可能。
スクリーンショット 2019-01-22 11.47.40.png

请注意

    • 本手順は2018年11月時点で正常に動作した手順である。

 

    最新以外のバージョンを入れる手順は非公式であるため、急にできなくなってしまうことも考えられるので本手順は参考程度に見てもらえると良い。

版本信息

    • redash

4.0.x

OS

Ubuntu 16.04

Python

2.7.12

准备好

在使用Redash之前,需要预先安装以下5个最低必要的东西。

    • Python(2.7)

 

    • npm(3.10.10)

 

    • Node.js(v6以上)

 

    • PostgreSQL(9.3以上)

 

    Redis(2.8.3以上)

這是如何安裝Python。

虽然推荐使用 virtualenv,但这次我正常安装了。

    インストール
sudo apt-get install python-dev python-dev
    確認
$ python -V
Python 2.7.12
$ pip -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

安装npm

为了安装Node.js,先安装npm。

由于Ubuntu 16.04官方仓库中的npm版本不够,故故意指定版本来进行安装。

    インストール
sudo apt-get install -y build-essential
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
    確認
$ npm --version
3.10.10

$ node --version
v6.14.4

安装PostgreSQL

    インストール
sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql
    確認
$ which psql
/usr/bin/psql
$ ps aux | grep postgres | grep -v grep
postgres 14271  0.1  1.2 310900 26088 ?        S    16:42   0:00 /usr/lib/postgresql/11/bin/postgres -D /var/lib/postgresql/11/main -c config_file=/etc/postgresql/11/main/postgresql.conf
postgres 14273  0.0  0.1 310900  3932 ?        Ss   16:42   0:00 postgres: 11/main: checkpointer   
postgres 14274  0.0  0.1 310900  3932 ?        Ss   16:42   0:00 postgres: 11/main: background writer   
postgres 14275  0.0  0.4 310900  8952 ?        Ss   16:42   0:00 postgres: 11/main: walwriter   
postgres 14276  0.0  0.3 311328  6628 ?        Ss   16:42   0:00 postgres: 11/main: autovacuum launcher   
postgres 14277  0.0  0.1 165816  3424 ?        Ss   16:42   0:00 postgres: 11/main: stats collector   
postgres 14278  0.0  0.2 311192  4896 ?        Ss   16:42   0:00 postgres: 11/main: logical replication launcher 

安装Redis

在Ubuntu 16.04的官方软件源中提供的Redis版本较旧(2.3.0.6-1),因此需要注册新的软件源。

    リポジトリ登録
sudo add-apt-repository ppa:chris-lea/redis-server
sudo apt update
    リポジトリ確認
$ sudo apt show redis-server
Package: redis-server
Version: 5:4.0.11-1chl1~xenial1
Priority: optional
Section: database
Source: redis
Maintainer: Chris Lamb <lamby@debian.org>
Installed-Size: 162 kB
Depends: adduser, lsb-base (>= 3.2-14), redis-tools (= 5:4.0.11-1chl1~xenial1), init-system-helpers (>= 1.18~)
Download-Size: 90.9 kB
APT-Sources: http://ppa.launchpad.net/chris-lea/redis-server/ubuntu xenial/main amd64 Packages
Description: Persistent key-value database with network interface
 Redis is a key-value database in a similar vein to memcache but the dataset
 is non-volatile. Redis additionally provides native support for atomically
 manipulating and querying data structures such as lists and sets.
 .
 The dataset is stored entirely in memory and periodically flushed to disk.

N: There is 1 additional record. Please use the '-a' switch to see it
    インストール
sudo apt install redis-server
    インストール確認
$ redis-cli --version
redis-cli 5.0.0
$ redis-server --version
Redis server v=5.0.0 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=12e155be0a2852d9
    起動
sudo systemctl start redis-server
    起動確認
$ ps aux | grep redis
redis    16358  0.1  0.4  53328  8432 ?        Ssl  16:48   0:00 /usr/bin/redis-server 127.0.0.1:6379
ubuntu   16363  0.0  0.0  14192  1020 pts/0    S+   16:48   0:00 grep --color=auto redis

创建红莓搭建

安装材料下载

由于最新版本只能在Docker中进行构建,所以需要下载一个较旧版本的材料。

cd /usr/local/
sudo git clone -b release/4.0.x https://github.com/getredash/redash.git
    ダウンロード確認
$ cd /usr/local/redash
$ git branch
* release/4.0.x

rdash的设置

    • セットアップ前の準備

今回の手順でダウンロードしたsetupスクリプトではかなり古いバージョンのredashがダウンロードされてしまうため、setupスクリプトを修正し、比較的新しいバージョンのものがダウンロードされるようにする。
スクリプトの上段にあるREDASH_BRANCHとREDASH_VERSIONを下記に変更する

REDASH_BRANCH="${REDASH_BRANCH:-release/4.0.x}" # Default branch/version to master if not specified in REDASH_BRANCH env var
REDASH_VERSION=${REDASH_VERSION-4.0.1.b4038} # Install latest version if not specified in REDASH_VERSION env var
    setupスクリプト実行
sudo sh bootstrap.sh

安装Python软件包

cd /opt/redash/current
sudo pip install -r requirements.txt -r requirements_dev.txt

安装Node.js包。

cd /opt/redash/current
sudo npm install

建筑

    ビルドする前に一部コードに手を加える。
sudo vi /opt/redash/redash.4.0.1.b4038/client/app/pages/dashboards/dashboard-list.js
    以下の行(最上段あたり)を
const TAGS_REGEX = /(^([\w\s]|[^\u0000-\u007F])+):|(#([\w-]|[^\u0000-\u007F])+)/ig;
    以下のように変更する。
/* eslint-disable no-control-regex */
const TAGS_REGEX = /(^([\w\s]|[^\u0000-\u007F])+):|(#([\w-]|[^\u0000-\u007F])+)/ig;
/* eslint-enable no-control-regex */
    上記対応後に下記コマンドでビルドする。
sudo npm run build

参考资料:
关于 no-control-regex
https://code.i-harness.com/ja/docs/eslint/rules/no-control-regex
在 redash 的源代码中,部分内容包含控制字符,由于我们使用的 npm 默认启用了 no-control-regex,因此如果直接构建会导致错误发生。
为了解决这个问题,本步骤通过修改源代码,在只使用控制字符的部分临时允许控制字符。

PostgreSQL的配置

在redash中,我们使用Postgre来管理用户等。在本次步骤中,由于已经单独安装了Postgre,因此需要在redash的设置中指定已安装的Postgre。

    redashの設定ファイルを編集
sudo vi /opt/redash/.env
    設定ファイル内に下記の設定値があるので、正しいものに変更する(ユーザ名、ホスト名、ポート番号等)
export REDASH_DATABASE_URL="postgresql://postgres:postgres@localhost:5432/postgres"

创建数据库。

    データベースにpostgresユーザでログイン
sudo su postgres
psql -U postgres
    DBにログイン後、下記コマンドにてpostgresユーザのパスワードを変更
alter role postgres with password '新規パスワード';
    ログイン確認
psql postgresql://postgres:postgres@localhost:5432/postgres
    データベースの作成を行う
cd /opt/redash/current
bin/run ./manage.py database create_tables

启动redash web服务器。

sudo supervisorctl start all

Web用户界面的设置

http://[ホストIP]にアクセスする。
Adminユーザの作成を促されるため、作成する。作成後、通常利用が可能となる。

最终

这次的步骤是在没有使用Docker的情况下安装redash,但是由于官方推荐安装Docker,除非有特殊情况,我认为最好还是使用Docker。
但是,如果类似于我的情况,需要安装相同版本的话,希望这个步骤能够作为参考。

广告
将在 10 秒后关闭
bannerAds