〇Metabaseの画面
〇コンテナの構築
1.LXDで以下のコマンドを実行して、PostgreSQLがインストールされたコンテナを構築します。
lxc init ubuntu:18.04 ub1804metabasepg
lxc config set ub1804metabasepg user.user-data - < config.yml
lxc start ub1804metabasepg
config.yml
#cloud-config
package_upgrade: true
hostname: ub1804metabasepg
manage_etc_hosts: true
write_files:
- path: /etc/systemd/system/metabase.service
content: |
[Unit]
Description=metabase
[Service]
Type=simple
Environment="MB_JETTY_PORT=8080"
Environment="MB_DB_TYPE=postgres"
Environment="MB_DB_DBNAME=metabase"
Environment="MB_DB_PORT=5432"
Environment="MB_DB_USER=metabase"
Environment="MB_DB_PASS=metabase"
Environment="MB_DB_HOST=localhost"
ExecStart=/usr/bin/java -Xmx2g -jar /opt/metabase/metabase.jar
WorkingDirectory=/opt/metabase
Restart=no
[Install]
WantedBy=multi-user.target
- path: /tmp/init.sql
content: |
alter user postgres with password 'postgres';
create user metabase with password 'metabase';
grant all privileges on database metabase to metabase;
- 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.UTF-8 && createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 metabase"'
- 'su - postgres /bin/sh -c "psql -f /tmp/init.sql"'
- 'export PGPASSWORD=metabase && psql -U metabase -f sample.sql metabase'
- 'echo "postgres:postgres" | chpasswd'
- 'systemctl restart postgresql.service'
- "apt-get -y install openjdk-8-jdk"
- "wget http://downloads.metabase.com/v0.29.0/metabase.jar"
- "mkdir -p /opt/metabase"
- "mv metabase.jar /opt/metabase"
- "systemctl enable metabase.service"
- "systemctl start metabase.service"
final_message: "completed."
2.ブラウザからブラウザからhttp://<ホストのIP>:8080/にアクセスします。
ユーザ情報を入力します。
3.データベースのタイプを選択します
4.接続データベース情報を以下のように入力します
Database type: postgres
Host: localhost
Port: 5432
Database name: metabase
Database username: metabase
Database password: metabase
これ以降はお好みで選択します。
〇コンテナに入る
lxc exec ub1804metabasepg /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 ub1804metabasepg
〇コンテナの削除
lxc delete ub1804metabasepg
○関連情報
・Metabaseに関する他の記事はこちらを参照してください。