〇Apache Supersetの画面
ブラウザからhttp://<ホストのIP>:8088/にアクセスします。
デフォルトユーザ名はadmin、パスワードもadminです。
〇コンテナの構築
LXDで以下のコマンドを実行して、Apache SupersetとPostgreSQLがインストールされたコンテナを構築します。
lxc init ubuntu:18.04 ub1804supersetpg
lxc config set ub1804supersetpg user.user-data - < config.yml
lxc config set ub1804supersetpg environment.LC_ALL ja_JP.UTF-8
lxc start ub1804supersetpg
config.yml
#cloud-config
package_upgrade: true
hostname: ub1804supersetpg
manage_etc_hosts: true
write_files:
- path: /tmp/init.sql
content: |
alter user postgres with password 'postgres';
create user test with password 'test';
grant all privileges on database test to test;
- path: /tmp/sample.sql
content: |
create table messages (message_id integer not null, message varchar(100));
insert into messages value (1, 'hello world.');
insert into messages value (2, 'test message.');
runcmd:
- 'apt-get update'
- 'apt-get -y install language-pack-ja'
- 'apt-get -y install postgresql-10'
- "echo \"listen_addresses='*'\" >> /etc/postgresql/10/main/postgresql.conf"
- 'echo "host all all 127.0.0.1/32 password" >> /etc/postgresql/10/main/pg_hba.conf'
- 'echo "host all all 192.168.1.0/24 password" >> /etc/postgresql/10/main/pg_hba.conf'
- 'echo "host all all 192.168.55.0/24 password" >> /etc/postgresql/10/main/pg_hba.conf'
- 'su - postgres /bin/sh -c "export LC_ALL=ja_JP.UTF8 && createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 test"'
- 'su - postgres /bin/sh -c "psql -f /tmp/init.sql"'
- 'export PGPASSWORD=test && psql -U test -f sample.sql'
- 'echo "postgres:postgres" | chpasswd'
- 'systemctl restart postgresql.service'
- 'wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh'
- 'chmod +x Anaconda3-5.1.0-Linux-x86_64.sh'
- './Anaconda3-5.1.0-Linux-x86_64.sh -b -p /opt/anaconda'
- 'apt-get -y install libpq-dev python-dev gcc g++ libssl-dev libsasl2-dev'
- "/bin/bash -c 'source /opt/anaconda/bin/activate && pip install psycopg2-binary'"
- "/bin/bash -c 'source /opt/anaconda/bin/activate && pip install --upgrade setuptools'"
- "/bin/bash -c 'source /opt/anaconda/bin/activate && pip install superset'"
- "/bin/bash -c 'source /opt/anaconda/bin/activate && pip install cryptography --upgrade'"
- "/bin/bash -c 'source /opt/anaconda/bin/activate && fabmanager create-admin --app superset --username admin --firstname admin --lastname user --email admin@localhost.localdomain --password admin'"
- "/bin/bash -c 'source /opt/anaconda/bin/activate && superset db upgrade'"
- "/bin/bash -c 'source /opt/anaconda/bin/activate && superset load_examples'"
- "/bin/bash -c 'source /opt/anaconda/bin/activate && superset init'"
- "/bin/bash -c 'source /opt/anaconda/bin/activate && superset runserver -a 0.0.0.0 &'"
final_message: "completed."
〇コンテナに入る
lxc exec ub1804supersetpg /bin/bash
〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=8080 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'
〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list
〇コンテナの停止
lxc stop ub1804supersetpg
〇コンテナの削除
lxc delete ub1804supersetpg
○データソースの追加
同じ仮想マシンにインストールされたPostgreSQLに接続するには、以下の画面のようにSQLAlchemy URIにpostgresql+psycopg2://test:test@localhost/testを指定します。
○関連情報
・psycopg2に関する他の記事はこちらを参照してください。
0 件のコメント:
コメントを投稿