2018年4月4日水曜日

VagrantでZim、Cinnamon Desktop環境、XRDPがインストールされた仮想マシン(Debian Stretch/9.3)を構築する

Zim はデスクトップWikiアプリです。
以下のVagrantfileを使用して、Zim、Cinnamon Desktop環境、XRDPをインストールした仮想マシン(Debian Stretch/9.3)を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93cinnamonzim"
config.vm.network "public_network", ip:"192.168.1.116", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93cinnamonzim"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
cat << EOF > /etc/default/keyboard
XKBMODEL="pc106"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
EOF
cat << EOF > /home/vagrant/.xsessionrc
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
sed -i -e "s/^EnabledIMList.*$/EnabledIMList=fcitx-keyboard-jp:True,mozc:True,fcitx-keyboard-us:False/" /home/vagrant/.config/fcitx/profile
fcitx-remote -r
fcitx -r -d
EOF
chown vagrant:vagrant .xsessionrc
apt-get -y install  xrdp fcitx-mozc task-cinnamon-desktop tigervnc-standalone-server

apt-get -y install build-essential module-assistant dkms
wget http://download.virtualbox.org/virtualbox/5.2.6/VBoxGuestAdditions_5.2.6.iso
mount -o loop -t iso9660 VBoxGuestAdditions_5.2.6.iso /media/
/media/VBoxLinuxAdditions.run


im-config -n fcitx
sudo -u vagrant bash -i -c "export DISPLAY=:0.0 && fcitx -r"

cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.org
cat /etc/xrdp/xrdp.ini.org | gawk '/\\[Globals\\]/,/\\[Xorg\\]/' | sed -e 's/\\[Xorg\\]//' > /etc/xrdp/xrdp.ini
cat << EOF >> /etc/xrdp/xrdp.ini
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
EOF
systemctl restart xrdp
systemctl enable xrdp


# install zim
apt-get -y install python-xdg
wget http://zim-wiki.org/downloads/zim_0.67_all.deb
dpkg -i zim_0.67_all.deb

init 5
SHELL
end

〇Zimの画面


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

2018年4月3日火曜日

VagrantでGantt Project、Gnome Desktop環境、XRDPがインストールされた仮想マシン(Debian Stretch/9.3)を構築する

Gantt ProjectはMicrosoft Projectのようなプロジェクト管理ソフトウェアです。
以下のVagrantfileを使用して、Gantt Project、Gnome Desktop環境、XRDPをインストールした仮想マシン(Debian Stretch/9.3) を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93gnomeganttproject"
config.vm.network "public_network", ip:"192.168.1.114", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93gnomeganttproject"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
cat << EOF > /etc/default/keyboard
XKBMODEL="pc106"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
EOF
cat << EOF > /home/vagrant/.xprofile
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
sed -i -e "s/^EnabledIMList.*$/EnabledIMList=fcitx-keyboard-jp:True,mozc:True,fcitx-keyboard-us:False/" /home/vagrant/.config/fcitx/profile
fcitx-remote -r
fcitx -r -d
EOF
chown vagrant:vagrant .xprofile
apt-get -y install  xrdp fcitx-mozc task-gnome-desktop tigervnc-standalone-server

apt-get -y install build-essential module-assistant dkms
wget http://download.virtualbox.org/virtualbox/5.2.6/VBoxGuestAdditions_5.2.6.iso
mount -o loop -t iso9660 VBoxGuestAdditions_5.2.6.iso /media/
/media/VBoxLinuxAdditions.run

export DISPLAY=:0.0
im-config -n fcitx
sudo -u vagrant bash -i -c "export DISPLAY=:0.0 && fcitx -r"
cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.org
cat /etc/xrdp/xrdp.ini.org | gawk '/\\[Globals\\]/,/\\[Xorg\\]/' | sed -e 's/\\[Xorg\\]//' > /etc/xrdp/xrdp.ini
cat << EOF >> /etc/xrdp/xrdp.ini
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
EOF
systemctl restart xrdp
systemctl enable xrdp

# javaをインストール
apt-get -y install software-properties-common
add-apt-repository ppa:webupd8team/java
apt-get update
echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
apt-get install -y oracle-java8-installer oracle-java8-set-default

# install GanttProject
wget -O ganttproject.deb http://www.ganttproject.biz/dl/2.8.5/lin
dpkg -i ganttproject.deb

cat << EOF > /usr/share/applications/ganttproject.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/ganttproject
Name=Gantt Project
Categories=Development;
EOF

init 5
SHELL
end

〇Gantt Projectの画面

関連情報

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

VagrantでCassandraをインストールした仮想マシン(Debian Stretch/9.3)を構築する

以下のVagrantfileを使用して1ノード構成のCassandraを構築することができます。
インストールと合わせて認証の設定とテストテーブルの作成・選択も実行します。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93ignite240"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93ignite240"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.105", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.105", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

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

# テスト実行
cat << EOF > /home/vagrant/sample.cql
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;
EOF

# 9042ポートでlistenするまで待つ.
while netstat -lnt | awk '$4 ~ /:9042$/ {exit 1}'; do sleep 10; done
sleep 10

cqlsh -u cassandra -p cassandra -f /home/vagrant/sample.cql
SHELL
end


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

2018年4月2日月曜日

VagrantでJupyter Labとmonetdbをインストールした仮想マシン(Debian Stretch/9.3)を構築する

Jupyter Labでインタラクティブなコンピューティング環境を提供する事ができます。

仮想マシンの構築方法

以下のVagrantfileで、Jupyter Labとmonetdbをインストールした仮想マシン(Debian Stretch/9.3)を構築できます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93jupyterlabmonetdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93jupyterlabmonetdb"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.107", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.107", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install monetdb
apt-get -y install apt-transport-https
cat << EOF >> /etc/apt/sources.list.d/monetdb.list
deb https://dev.monetdb.org/downloads/deb/ stretch monetdb
deb-src https://dev.monetdb.org/downloads/deb/ stretch monetdb
EOF
wget --output-document=- https://www.monetdb.org/downloads/MonetDB-GPG-KEY | apt-key add -
apt-get update
apt-get -y install monetdb5-sql monetdb-client

chown monetdb:monetdb /var/lib/monetdb

systemctl enable monetdbd
systemctl start monetdbd

/usr/bin/monetdb create testdb
/usr/bin/monetdb start testdb
/usr/bin/monetdb release testdb
cat << EOF > /home/vagrant/.monetdb
user=monetdb
password=monetdb
language=sql
save_history=true
EOF
sudo -u vagrant /usr/bin/mclient -d testdb -s 'create table test1 (message_id integer, message varchar(100))'
sudo -u vagrant /usr/bin/mclient -d testdb -s "insert into test1 values (100, 'hello world\\!')"
sudo -u vagrant /usr/bin/mclient -d testdb -s "select * from test1"


# install anaconda
wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh
chmod +x Anaconda3-5.1.0-Linux-x86_64.sh
./Anaconda3-5.1.0-Linux-x86_64.sh -b -p /opt/anaconda
source /opt/anaconda/bin/activate
pip install --upgrade pip
pip install jupyterlab

# install pymonetdb driver
pip install pymonetdb

useradd py
mkdir -p /home/py
chown -R py:py /home/py
sudo -u py bash -c "mkdir /home/py/.jupyter"
sudo -u py bash -c "cat << EOF > /home/py/.jupyter/jupyter_notebook_config.py
conf = get_config()
conf.NotebookApp.ip = '*'
conf.NotebookApp.open_browser = False
conf.NotebookApp.port = 8080
conf.NotebookApp.token = 'jupyter'
EOF"

cat << EOF > /etc/systemd/system/jupyter.service
[Unit]
Description=Jupyter notebook
[Service]
Type=simple
ExecStartPre=source /opt/anaconda/bin/activate
ExecStart=/opt/anaconda/bin/jupyter lab
User=py
Group=py
WorkingDirectory=/home/py
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable jupyter
sudo systemctl start jupyter

echo 'access -> http://192.168.55.107:8080/?token=jupyter'
SHELL
end

動作確認用コード

以下のサンプルコードで動作を確認することができます。
import pymonetdb

con = pymonetdb.connect(username="monetdb", password="monetdb", hostname="localhost", database="testdb")

try:
  cur= con.cursor()
  sql = "select message_id, message from test1"
  cur.execute(sql)

  for row in cur.fetchall():
    print(row)

except pymonetdb.Error as er:
    print('pymonetdb.Error:', er)
cur.close
con.close

〇Jupyter Labの画面


関連情報

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

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

VagrantでDiffuse、KDE Desktop環境、XRDPがインストールされた仮想マシン(Debian Stretch/9.3)を構築する

Diffuseで2つのテキストの差分を表示したり、マージしたりすることができます。

仮想マシンの構築方法

以下のVagrantfileを使用して、Diffuse、KDE Desktop環境、XRDPをインストールした仮想マシン(Debian Stretch/9.3)を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.3"
  config.vm.hostname = "db93kdediffuse"
config.vm.network "public_network", ip:"192.168.1.119", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db93kdediffuse"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

apt-get -y install task-japanese
sed -i -e 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
locale-gen
update-locale LANG=ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
cat << EOF > /etc/default/keyboard
XKBMODEL="pc106"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
EOF


cat << EOF > /home/vagrant/.xsessionrc
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
sed -i -e "s/^EnabledIMList.*$/EnabledIMList=mozc:True,fcitx-keyboard-jp:False,fcitx-keyboard-us:False/" /home/vagrant/.config/fcitx/profile
fcitx-remote -r
fcitx -r -d
EOF
chown vagrant:vagrant .xsessionrc


apt-get -y install  xrdp fcitx-mozc task-kde-desktop tigervnc-standalone-server fcitx-tools

apt-get -y install build-essential module-assistant dkms
wget http://download.virtualbox.org/virtualbox/5.2.6/VBoxGuestAdditions_5.2.6.iso
mount -o loop -t iso9660 VBoxGuestAdditions_5.2.6.iso /media/
/media/VBoxLinuxAdditions.run


export DISPLAY=:0.0
im-config -n fcitx
#sudo -u vagrant bash -i -c "export DISPLAY=:0.0 && fcitx -r"


cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.org
cat /etc/xrdp/xrdp.ini.org | awk '/\\[Globals\\]/,/\\[Xorg\\]/' | sed -e 's/\\[Xorg\\]//' > /etc/xrdp/xrdp.ini
cat << EOF >> /etc/xrdp/xrdp.ini
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
EOF
systemctl restart xrdp
systemctl enable xrdp


# install diffuse
apt-get -y install python-gtk2-dev
wget https://sourceforge.net/projects/diffuse/files/diffuse/0.4.8/diffuse_0.4.8-1_all.deb
dpkg -i diffuse_0.4.8-1_all.deb


init 5
SHELL
end

〇Diffuseの画面

関連情報

・diffuseのホームページ
https://sourceforge.net/projects/diffuse/

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

2018年4月1日日曜日

VagrantでPercona Serverをインストールした仮想マシン(Ubuntu16.04)を構築する

Percona Serverは独自の改良機能が加えられたMySQL互換データベースです。
以下のVagrantfileを使用して、Percona Serverがインストールされた仮想マシン(Ubuntu16.04)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604percona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604percona"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
config.vm.network "private_network", ip: "192.168.55.117", :netmask => "255.255.255.0"
config.vm.network "public_network", ip:"192.168.1.117", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
sed -i.bak -e "s#http://archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g" /etc/apt/sources.list
apt-get update
apt-get -y install language-pack-ja
localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
localectl set-keymap jp106
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install percona server
export DEBIAN_FRONTEND=noninteractive
echo "percona-server-server-5.7 percona-server-server/root_password password root" | sudo debconf-set-selections
echo "percona-server-server-5.7 percona-server-server/root_password_again password root" | sudo debconf-set-selections
wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
apt-get update
apt-get -y install percona-server-server-5.7
mysql -uroot -proot -e "CREATE DATABASE test DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -proot -e "CREATE USER test@localhost IDENTIFIED BY 'test';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"
mysql -utest -ptest test -e "create table messages (message_id integer not null, message varchar(100));"
mysql -utest -ptest test -e "insert into messages value (1, 'hello world.');"
mysql -utest -ptest test -e "insert into messages value (2, 'test message.');"
mysql -utest -ptest test -e "select * from messages;"

SHELL
end

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

monetdbはカラム志向のデータベースです。

仮想マシンの構築方法

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604monetdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604monetdb"
     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
# update packages
sed -i.bak -e "s#http://us.archive.ubuntu.com/ubuntu/#http://ftp.riken.jp/pub/Linux/ubuntu/#g" /etc/apt/sources.list
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
locale-gen ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8

# install monetdb
cat << EOF >> /etc/apt/sources.list.d/monetdb.list
deb https://dev.monetdb.org/downloads/deb/ xenial monetdb
deb-src https://dev.monetdb.org/downloads/deb/ xenial monetdb
EOF
wget --output-document=- https://www.monetdb.org/downloads/MonetDB-GPG-KEY | apt-key add -
apt-get update
apt-get -y install monetdb5-sql monetdb-client

chown monetdb:monetdb /var/lib/monetdb

#cp  /opt/monetdb/lib/systemd/system/monetdbd.service /etc/systemd/system
systemctl enable monetdbd
systemctl start monetdbd

/usr/bin/monetdb create testdb
/usr/bin/monetdb start testdb
/usr/bin/monetdb release testdb
cat << EOF > /home/vagrant/.monetdb
user=monetdb
password=monetdb
language=sql
save_history=true
EOF
sudo -u vagrant /usr/bin/mclient -d testdb -s 'create table test1 (message_id integer, message varchar(100))'
sudo -u vagrant /usr/bin/mclient -d testdb -s "insert into test1 values (100, 'hello world\\!')"
sudo -u vagrant /usr/bin/mclient -d testdb -s "select * from test1"


SHELL
end

関連情報

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

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