2017年10月29日日曜日

Vagrantでmonetdbをインストールした仮想マシン(CentOS7.4)を構築する

MonetDBはオープンソースのカラム指向のデータベースです。

仮想マシンの構築方法

以下のVagrantfileを使用して、monetdbをインストールした仮想マシンを構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74monetdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74monetdb"
     vbox.cpus = 4
     vbox.memory = 4096
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.103", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.103", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
yum groupinstall "Development Tools"
yum -y install openssl-devel libxml2-devel pcre pcre-devel bison bison-devel

groupadd -g 2000 monetdb
useradd -u 2000 -g 2000 monetdb

# ソースの取得とコンパイル
wget https://www.monetdb.org/downloads/sources/Jul2017-SP1/MonetDB-11.27.5.tar.bz2
tar jxvf MonetDB-11.27.5.tar.bz2
cd MonetDB-11.27.5
./configure --prefix=/opt/monetdb
make
make install
mkdir -p /opt/monetdb/var/log/monetdb
mkdir -p /opt/monetdb/var/run/monetdb
chown -R monetdb:monetdb /opt/monetdb

# サービスとして登録
cp  /opt/monetdb/lib/systemd/system/monetdbd.service /etc/systemd/system
systemctl enable monetdbd
systemctl start monetdbd

# 初期化とテスト実行
/opt/monetdb/bin/monetdb create testdb
/opt/monetdb/bin/monetdb start testdb
/opt/monetdb/bin/mclient -d testdb
cat << EOF > /home/vagrant/.monetdb
user=monetdb
password=monetdb
language=sql
save_history=true
EOF
/opt/monetdb/bin/mclient -d testdb
sudo -u vagrant /opt/monetdb/bin/mclient -d testdb -s 'create table test1 (message_id integer, message varchar(100))'
sudo -u vagrant /opt/monetdb/bin/mclient -d testdb -s "insert into test1 values (100, 'hello world\\!')"
sudo -u vagrant /opt/monetdb/bin/mclient -d testdb -s "select * from test1"

SHELL
end

関連情報

・monetdbに関する他の記事はこちらを参照してください。

・プロジェクトgithubリポジトリ
https://github.com/MonetDB/MonetDB

0 件のコメント:

コメントを投稿