2017年12月5日火曜日

VagrantでAtom、Xfce Desktop環境、XRDPがインストールされた仮想マシン(Ubuntu16.04)を構築する

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604xfceatom"
  config.vm.network :public_network, ip:"192.168.1.114"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604xfceatom"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
apt-get -y install  xrdp fcitx-mozc xubuntu-desktop language-pack-ja
im-config -n fcitx

# install atom
apt-get -y install  gvfs-bin git xdg-utils
wget https://github.com/atom/atom/releases/download/v1.21.2/atom-amd64.deb
dpkg -i atom-amd64.deb

# Atomのショートカットを作成
mkdir -p /home/vagrant/デスクトップ/
chown vagrant:vagrant /home/vagrant/デスクトップ/
cat << EOF > /home/vagrant/デスクトップ/atom.desktop

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=sh -c "/usr/bin/atom"
Name=Atom
Icon=/usr/share/atom/atom.png
EOF
chmod +x /home/vagrant/デスクトップ/atom.desktop
chown vagrant:vagrant /home/vagrant/デスクトップ/atom.desktop

init 5
SHELL
end

〇Atomの画面


2017年12月4日月曜日

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

BorgBackupを使用してファイルの重複を排除して簡単なコマンドでバックアップ・リストアを行うことができます。
以下のVagrantfileを使用して、BorgBackupをインストールされた仮想マシンを構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604borgbackup"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604borgbackup"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.104", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.104", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# update packages
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 borgbackup
apt-get update
apt-get -y install borgbackup
mkdir -p /opt/repo

# test execution
mkdir -p sample
cp /vagrant/Vagrantfile sample

# intializa repo
echo 'initialize...'
export BORG_PASSPHRASE=vagrant
borg init -e repokey /opt/repo

# backup
echo 'backup...'
borg create --stats /opt/repo::20171121 /home/vagrant/sample/*

# show
echo 'listing...'
borg list /opt/repo::20171121

# remove original file and restore it.
echo 'restore...'
rm -f /home/vagrant/sample/Vagrantfile
borg extract /opt/repo::20171121
cat ~vagrant/home/vagrant/sample/Vagrantfile

SHELL
end


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

2017年12月3日日曜日

VagrantでKottiがインストールされた仮想マシンを構築(Ubuntu16.04)する

以下のVagrantfileを使用して、Kottiがインストールされた仮想マシンを構築する事ができます。
仮想マシンが構築された後、ブラウザからhttp://192.168.55.105:5000/にアクセスします。
デフォルトのユーザはadmin、パスワードはqwertyです。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604kotti"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604kotti"
     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
# update packages
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 virtualenv
apt-get -y install python-pip
pip install --upgrade pip
pip install virtualenv
# install kotti
mkdir -p /opt/kotti
cd /opt/kotti
virtualenv mysite
cd mysite
bin/pip install -r https://raw.github.com/Kotti/Kotti/stable/requirements.txt
bin/pip install Kotti
wget https://raw.github.com/Kotti/Kotti/stable/app.ini
sed -i -e 's/host = 127.0.0.1/host = 192.168.55.105/' app.ini
cat << EOF > /etc/systemd/system/kotti.service
[Unit]
Description=kotti
[Service]
Type=simple
ExecStartPre=virtualenv mysite
ExecStart=/opt/kotti/mysite/bin/pserve /opt/kotti/mysite/app.ini
WorkingDirectory=/opt/kotti/mysite
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
systemctl enable kotti.service
systemctl start kotti.service
echo 'access to http://192.168.55.105:5000/';
echo 'user: admin   password: qwerty'
SHELL
end

〇Kottiの画面



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

2017年12月2日土曜日

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

H2 DatabaseはJavaで作られたRDBです。
以下のVagrantfileを使用して、H2 Databaseをインストールした仮想マシンを構築する事ができます。
仮想マシン構築後、ブラウザからhttp://192.168.55.105:8082/でコンソール画面にアクセスできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604h2db"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604h2db"
     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
# update packages
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 java
apt-get -y install openjdk-8-jdk

# download h2 database
apt-get -y install unzip
export h2db=h2-2017-06-10.zip
wget http://www.h2database.com/$h2db

# install h2 database
unzip $h2db
echo 'webAllowOthers = true' > /root/.h2.server.properties
mv h2 /opt

# setup console as service
cat << EOF > /opt/h2/bin/h2env
H2CUSTOMJARS=
EOF

cat << EOF > /etc/systemd/system/h2.service
[Unit]
Description=H2 database
After=syslog.target network.target

[Service]
Type=simple
EnvironmentFile=/opt/h2/bin/h2env
WorkingDirectory=/opt/h2
ExecStart=/usr/bin/java -cp "/opt/h2/bin/h2-1.4.196.jar:\\$H2CUSTOMJARS" org.h2.tools.Console -tcpAllowOthers
ExecStop=/usr/bin/kill -3 \\${MAINPID}

[Install]
WantedBy=multi-user.target
EOF
systemctl enable h2.service
systemctl start h2.service

echo 'access URL: http://192.168.55.105:8082/'
echo 'username: sa    default password: sa'
echo 'Driver class: org.h2.Driver'
echo 'JDBC URL: jdbc:h2:tcp://192.168.55.105/~/test'
SHELL
end

○H2 Databaseのコンソール画面



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

VagrantでGreenplum Databaseをインストールした仮想マシンを構築する

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604greenplum"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604greenplum"
     vbox.cpus = 4
     vbox.memory = 6144
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  # private network
  config.vm.network "private_network", ip: "192.168.55.114", :netmask => "255.255.255.0"
  # bridge netwrok
  config.vm.network "public_network", ip: "192.168.1.114", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get -y install unzip
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install greenplum
apt-get -y install python-pip
pip install --upgrade pip

pip install psutil
pip install lockfile
pip install paramiko
pip install setuptools
pip install conan

apt-get -y install build-essential cmake
wget https://github.com/greenplum-db/gp-xerces/archive/v3.1.2-p1.tar.gz
tar xvfz v3.1.2-p1.tar.gz
cd gp-xerces-3.1.2-p1
mkdir build
cd build
../configure --prefix=/usr/local
make
make install
cd /home/vagrant

wget https://github.com/greenplum-db/gpdb/archive/5.1.0.tar.gz
tar xvfz 5.1.0.tar.gz
chown -R vagrant:vagrant /home/vagrant/gpdb-5.1.0

cd /home/vagrant/gpdb-5.1.0/depends
conan remote add conan-gpdb https://api.bintray.com/conan/greenplum-db/gpdb-oss
conan install --build
cd ..

apt-get -y install libkrb5-dev libapr1-dev libevent-dev libxml2-dev libcurl4-openssl-dev libbz2-dev bison flex libperl-dev

# Configure to install at /usr/local
./configure --with-perl --with-python --with-libxml --with-gssapi --prefix=/usr/local/gpdb

su -l vagrant -c "make -j8"
make -j8 install

su -l vagrant -c "ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ''"
su -l vagrant -c "cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys"
su -l vagrant -c "chmod 600 ~/.ssh/authorized_keys"
su -l vagrant -c "source /usr/local/gpdb/greenplum_path.sh && cd /home/vagrant/gpdb-5.1.0 && make create-demo-cluster"
su -l vagrant -c "source /usr/local/gpdb/greenplum_path.sh && cd /home/vagrant/gpdb-5.1.0 && PGPORT=15432 make installcheck-world"

cat << EOF > /home/vagrant/test.sql
create database test;
\\c test
create table test1 ( message varchar(100));
insert into test1 values ('hello world');
select * from test1;
EOF
chown vagrant:vagrant /home/vagrant/test.sql
su -l vagrant -c "source /usr/local/gpdb/greenplum_path.sh && PGPORT=15432 psql postgres -f test.sql"

SHELL
end

2017年12月1日金曜日

VagrantでPhorumとMariaDBがインストールされた仮想マシン(Ubuntu16.04)を構築する

Phorumは多数のユーザが参加できる掲示板です。
以下のVagrantfileを使用して、PhorumとMariaDBをインストールされた仮想マシンを構築する事ができます。
仮想マシンを構築後、ブラウザからhttp://192.168.55.105/phorum/にアクセスして初期設定を行います。
データベース、ユーザ名、パスワードともphorumを指定します。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604phorummariadb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604phorummariadb"
     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
# update packages
apt-get update
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade

# install mariadb
echo "mariadb-server-10.0 mysql-server/root_password password root" | sudo debconf-set-selections
echo "mariadb-server-10.0 mysql-server/root_password_again password root" | sudo debconf-set-selections
apt-get -y install mariadb-server
mysql -uroot -proot -e "CREATE DATABASE phorum DEFAULT CHARACTER SET utf8;"
mysql -uroot -proot -e "CREATE USER phorum@localhost IDENTIFIED BY 'phorum';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON phorum.* TO 'phorum'@'localhost';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON phorum.* TO 'phorum'@'%';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"

# install apache2 and php
apt-get -y install apache2 libapache2-mod-php7.0
apt-get -y install php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring
apt-get -y install php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip

# install phorum
wget http://www.phorum.org/downloads/phorum-5.2.23.tar.gz
tar xvfz phorum-5.2.23.tar.gz
mv Core-phorum_5_2_23 /opt/phorum
chown -R www-data:www-data /opt/phorum
ln -s  /opt/phorum /var/www/html

cp /opt/phorum/include/db/config.php.sample /opt/phorum/include/db/config.php
sed -i -e 's/phorum5/phorum/' /opt/phorum/include/db/config.php

service apache2 restart
echo 'access http://192.168.55.105/phorum/'
echo 'db user: phorum  password:phorum  db:phorum'
SHELL
end

〇Phorumの初期設定画面1


〇Phorumの初期設定画面2


〇Phorumの初期設定画面3


〇Phorumの初期設定画面4


〇Phorumの初期設定画面5


〇Phorumの初期設定画面6


〇Phorumの管理者画面


〇Phorumの画面


VagrantでRStudio、LXDE Desktop環境、XRDPがインストールされた仮想マシン(Ubuntu16.04)を構築する

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604lxderstudio"
  config.vm.network :public_network, ip:"192.168.1.113"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604lxderstudio"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106
apt-get update
apt-get -y install xrdp fcitx-mozc lubuntu-desktop language-pack-ja
im-config -n fcitx

# install R
echo "deb https://cran.rstudio.com/bin/linux/ubuntu $(lsb_release -cs)/" | sudo tee -a /etc/apt/sources.list
gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
gpg -a --export E084DAB9 | sudo apt-key add -
apt-get update
apt-get -y install r-base
apt-get -y install libjpeg62
wget https://download1.rstudio.org/rstudio-xenial-1.1.383-amd64.deb
dpkg -i rstudio-xenial-1.1.383-amd64.deb

# RStudioのショートカットを作成
mkdir -p /home/vagrant/デスクトップ/
chown vagrant:vagrant /home/vagrant/デスクトップ/
cat << EOF > /home/vagrant/デスクトップ/rstudio.desktop

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=sh -c "/usr/bin/rstudio"
Name=RStudio
Icon=/usr/lib/rstudio/www/images/favicon.ico
EOF
chmod +x /home/vagrant/デスクトップ/rstudio.desktop
chown vagrant:vagrant /home/vagrant/デスクトップ/rstudio.desktop

init 5
SHELL
end

〇RStudioの画面



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