2018年5月3日木曜日

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

Apache Igniteはメモリ指向の分散データベースです。

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

config.yml
#cloud-config

package_upgrade: true

hostname: ub1804apacheignite240
manage_etc_hosts: true

write_files:
  - path: /etc/systemd/system/ignite.service
    content: |
      [Unit]
      Description=Apache Ignite

      [Service]
      ExecStart=/opt/ignite/bin/ignite.sh
      WorkingDirectory=/opt/ignite
      KillMode=process
      PrivateTmp=true

      [Install]
      WantedBy=multi-user.target

  - path: /tmp/test.sql
    content: |
      create table test1 (test_id integer primary key, test_desc varchar(100));
      insert into test1 (test_id, test_desc) values (1, 'test_id_001');
      select * from test1;

runcmd:
  - 'apt-get update'
  - 'apt-get -y install openjdk-8-jdk'
  - 'apt-get -y install unzip'
  - 'wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//ignite/2.4.0/apache-ignite-fabric-2.4.0-bin.zip'
  - 'unzip apache-ignite-fabric-2.4.0-bin.zip'
  - 'mv apache-ignite-fabric-2.4.0-bin /opt/ignite'
  - systemctl enable ignite.service
  - systemctl start ignite.service
  - "while netstat -lnt | awk '$4 ~ /:11211$/ {exit 1}'; do sleep 10; done"
  - "sleep 10"
  - "wget http://wiki.metawerx.net/attach/SJSQL/sjsql.java"
  - "wget http://wiki.metawerx.net/attach/SJSQL/sjsql.class"
  - "java -cp .:/opt/ignite/libs/ignite-core-2.4.0.jar sjsql org.apache.ignite.IgniteJdbcThinDriver jdbc:ignite:thin://127.0.0.1/ test test /tmp/test.sql"
final_message: "completed."

〇コンテナに入る
lxc exec ub1804apacheignite240 /bin/bash

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=11211 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 ub1804apacheignite240

〇コンテナの削除
lxc delete ub1804apacheignite240

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

0 件のコメント:

コメントを投稿