2018年5月7日月曜日

LXDでMetabaseとMySQLがインストールされたコンテナ(Ubuntu18.04)を構築する

Metabaseはオープンソースのデータ解析・可視化ツールです。

〇Metabaseの画面


〇コンテナの構築
1.LXDで以下のコマンドを実行して、MySQLがインストールされたコンテナを構築します。
lxc init ubuntu:18.04 ub1804metabasemysql
lxc config set ub1804metabasemysql user.user-data - < config.yml
lxc start ub1804metabasemysql

config.yml
#cloud-config

package_upgrade: true

hostname: ub1804supersetmysql
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=mysql"
      Environment="MB_DB_DBNAME=metabase"
      Environment="MB_DB_PORT=3306"
      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

runcmd:
  - 'apt-get update'
  - 'wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb'
  - 'echo mysql-apt-config mysql-apt-config/enable-repo select mysql-5.7-dmr | sudo debconf-set-selections'
  - 'export DEBIAN_FRONTEND=noninteractive && dpkg -i mysql-apt-config_0.8.9-1_all.deb'
  - 'apt-get update'
  - 'apt-get -y install mysql-server'
  - 'mysql -uroot -e "CREATE DATABASE metabase DEFAULT CHARACTER SET utf8;"'
  - "mysql -uroot -e \"CREATE USER metabase@localhost IDENTIFIED BY 'metabase';\""
  - "mysql -uroot -e \"GRANT ALL PRIVILEGES ON metabase.* TO 'metabase'@'localhost';\""
  - "mysql -uroot -e \"FLUSH PRIVILEGES;\""
  - 'mysql -umetabase -pmetabase test -e "create table messages (message_id integer not null, message varchar(100));"'
  - "mysql -umetabase -pmetabase test -e \"insert into messages value (1, 'hello world.');\""
  - "mysql -umetabase -pmetabase test -e \"insert into messages value (2, 'test message.');\""
  - "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: mysql
Host: localhost
Port: 3306
Database name: metabase
Database username: metabase
Database password: metabase
これ以降はお好みで選択します。


〇コンテナに入る
lxc exec ub1804metabasemysql /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 ub1804metabasemysql

〇コンテナの削除
lxc delete ub1804metabasemysql


○関連情報
・Metabaseに関する他の記事はこちらを参照してください。

0 件のコメント:

コメントを投稿