2018年6月3日日曜日

LXDでApache Cassandraをインストールしたコンテナ(Ubuntu18.04)を構築する

Apache Cassandraはjava製の分散データベースです。

〇構築方法
以下のコマンドを実行して1ノード構成のCassandraを構築することができます。
インストールと合わせて認証の設定とテストテーブルの作成・選択も実行します。
lxc init ubuntu:18.04 ub1804cassandra
lxc config set ub1804cassandra user.user-data - < config.yml
lxc start ub1804cassandra

config.yml
#cloud-config

package_upgrade: true

hostname: ub1804cassandra
manage_etc_hosts: true

write_files:
  - path: /tmp/sample.cql
    content: |
      create keyspace mykeyspace with replication = {'class':'SimpleStrategy', 'replication_factor':1};
      use mykeyspace;
      create table mytable (
      name text PRIMARY KEY,
      value text
      );
      insert into mytable (name, value) values ('test1', 'cassandra');
      select * from mytable;

runcmd:
  - "apt-get update"
  - "apt-get -y install curl"
  - 'echo "deb http://www.apache.org/dist/cassandra/debian 311x main" >> /etc/apt/sources.list.d/cassandra.sources.list'
  - 'curl https://www.apache.org/dist/cassandra/KEYS | apt-key add -'
  - 'apt-get update'
  - 'apt-get -y install cassandra'
  - 'sed -i -e "s/authenticator: AllowAllAuthenticator/authenticator: PasswordAuthenticator/" /etc/cassandra/cassandra.yaml'
  - "systemctl enable cassandra.service"
  - "systemctl start cassandra.service"
  - "while netstat -lnt | awk '$4 ~ /:9042$/ {exit 1}'; do sleep 10; done"
  - "sleep 10"
  - "cqlsh -u cassandra -p cassandra -f /tmp/sample.cql >> /tmp/output.log"

final_message: "completed."

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

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

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

〇コンテナの停止
lxc stop ub1804cassandra

〇コンテナの削除
lxc delete ub1804cassandra


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

0 件のコメント:

コメントを投稿