2017年10月17日火曜日

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

以下のVagrantfileを使用してmonitをインストールした仮想マシンを構築する事ができます。
仮想マシンを構築した後、ブラウザからmonit service managerにhttp://192.168.55.109:2812/でアクセスできます。
ユーザ名はadmin、パスワードにmonitを指定します。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74monit"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74monit"
     vbox.cpus = 2
     vbox.memory = 1024
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.109", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.109", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# install monit
yum -y install epel-release
yum -y install monit

# configure settings for web interface
sed -i -e 's/use address localhost/use address 192.168.55.109/' /etc/monitrc
sed -i -e 's#allow localhost#allow 192.168.55.0/24#' /etc/monitrc
systemctl enable monit
systemctl start monit

echo 'access http://192.168.55.109:2812/';;
echo 'user: admin   password: monit'
SHELL
end

monit service managerの画面

2017年10月16日月曜日

VagrantでTalend Open Studio for Data IntegrationとGnome Desktop環境、XRDPがインストールされた仮想マシンを構築する

以下のVagrantfileを使用して、Talend Open Studio for Data IntegrationとGnome Desktop環境、XRDPをインストールした仮想マシンを構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はVagrant、パスワードもVagrantでログオンします。
Talend Open Studio for Data Integrationを起動するには、デスクトップにあるTOS_DIという名称のアイコンをダブルクリックします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74tosdi641"
  config.vm.network :public_network, ip:"192.168.1.117"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74tosdi641"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
yum -y install wget

# GUIに関連するパッケージをインストール
sudo yum -y groupinstall "Server with GUI"
# 不要なダイアログを表示されないようにする
sudo sh -c "echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gnome-welcome-tour.desktop"
sudo sh -c "echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gnome-software-service.desktop"
sudo sh -c "echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gnome-settings-daemon.desktop"
sudo systemctl disable initial-setup-graphical.service
sudo systemctl disable initial-setup-text.service

sudo systemctl set-default graphical.target

# 日本語のロケールを設定
sudo yum -y install ibus-kkc vlgothic-*
localectl set-locale LANG=ja_JP.UTF-8

# XRDPをインストールして、リモートデスクトップでログインできるようにする。
sudo yum -y install epel-release
sudo yum -y install xrdp
sudo yum -y install tigervnc-server

sudo chcon -t bin_t /usr/sbin/xrdp
sudo chcon -t bin_t /usr/sbin/xrdp-sesman
sudo sed -i "s/max_bpp=32/max_bpp=24/" /etc/xrdp/xrdp.ini
systemctl start xrdp.service
systemctl enable xrdp.service

# install java
yum -y install java-1.8.0-openjdk


wget 'https://sourceforge.net/projects/talend-studio/files/Talend%20Open%20Studio/6.4.1/TOS_DI-20170623_1246-V6.4.1.zip';
unzip TOS_DI-20170623_1246-V6.4.1.zip
mv TOS_DI-20170623_1246-V6.4.1 /opt/tosdi

# Talend Open Studio for Data Integrationのショートカットを作成
mkdir -p /home/vagrant/デスクトップ/
chown vagrant:vagrant /home/vagrant/デスクトップ/
cat << EOF > /home/vagrant/デスクトップ/TOS_DI.desktop
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/tosdi/TOS_DI-linux-gtk-x86_64
Name=TOS_DI
EOF
chmod +x /home/vagrant/デスクトップ/TOS_DI.desktop
chown vagrant:vagrant /home/vagrant/デスクトップ/TOS_DI.desktop

telinit 5
SHELL
end

Talend Open Studio for Data Integration起動後の画面

2017年10月15日日曜日

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

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74cassandra"
  config.vm.network :public_network, ip:"192.168.1.116"
  config.vm.network "private_network", ip: "192.168.55.116", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
    vbox.name = "co74cassandra"
    vbox.cpus = 4
    vbox.memory = 4096
    vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.provision "shell", inline: <<-SHELL
# cassandraのインストール
cat << EOF > /etc/yum.repos.d/cassandra.repo
[cassandra]
name=Apache Cassandra
baseurl=https://www.apache.org/dist/cassandra/redhat/311x/
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://www.apache.org/dist/cassandra/KEYS
EOF
yum install -y cassandra

# 認証の構成
sed -i -e 's/authenticator: AllowAllAuthenticator/authenticator: PasswordAuthenticator/' /etc/cassandra/default.conf/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

2017年10月14日土曜日

Docker - Raspberry Pi上のDockerでMySQLがインストールされたイメージを構築する

以下のDockerfileとsetupdb.shを使用して、Raspberry Pi上のDocker CEで動作するSQLのイメージが作成できます。

Dockerfile
FROM resin/raspberry-pi-alpine:3.6
COPY ./setupdb.sh /
RUN apk --no-cache add mariadb mariadb-client \
  && addgroup mysql mysql \
  && chmod +x /setupdb.sh
VOLUME /var/lib/mysql
EXPOSE 3306
ENTRYPOINT ["/setupdb.sh"]

setupdb.sh
#!/bin/sh
if [ ! -d "/run/mysqld" ]; then
  mkdir -p /run/mysqld
  chown -R mysql:mysql /run/mysqld
fi
if [ ! -e /usr/my.cnf ]; then
  cat << EOF > /usr/my.cnf
[mysqld]
datadir=/var/lib/mysql
log-bin = /var/lib/mysql/mysql-bin
port = 3306
user = mysql
symbolic-links=0
character-set-server = utf8
pid-file=/run/mysqld/mysqld.pid
EOF
  chown -R mysql:mysql /var/lib/mysql
  mysql_install_db --user=mysql
  nohup /bin/sh /usr/bin/mysqld_safe \
    --datadir=/var/lib/mysql \
    --socket=/run/mysqld/mysqld.sock \
    --pid-file=/run/mysqld/mysqld.pid \
    --basedir=/usr \
    --user=mysql \
    --skip-grant-tables \
    --skip-networking &
  while :
  do
    [ -r /run/mysqld/mysqld.pid ] || continue
    if ps -ef | grep -q $(cat /run/mysqld/mysqld.pid) ; then
        break
    fi
    sleep 10
  done
  cat << EOF > /tmp/setupdb.sql
USE mysql;
UPDATE mysql.user SET Password=PASSWORD('root') WHERE User='root';
DELETE FROM mysql.user WHERE User='';
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
DROP DATABASE IF EXISTS test;
DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';
FLUSH PRIVILEGES;
CREATE DATABASE docker DEFAULT CHARACTER SET utf8;
CREATE USER 'docker'@'localhost' IDENTIFIED BY 'docker';
CREATE USER 'docker'@'%' IDENTIFIED BY 'docker';
GRANT ALL PRIVILEGES ON docker.* TO 'docker'@'localhost';
GRANT ALL PRIVILEGES ON docker.* TO 'docker'@'%';
FLUSH PRIVILEGES;
EOF
  /usr/bin/mysql < /tmp/setupdb.sql
  kill `cat /run/mysqld/mysqld.pid`
  sleep 10
fi
exec /usr/bin/mysqld --defaults-file=/usr/my.cnf --console --user=mysql

○データを保持するnamed volumeを作成する
docker volume create mariadata

○イメージのビルド
docker build  -t rpi-maria .

○コンテナの実行
docker run --rm -dit -p 3306:3306 -v mariadata:/var/lib/mysql rpi-maria

○named volumeの使用サイズを調べる
docker system df -v
※Local Volumes space usageセクションの後に使用サイズが表示されます
○補足
動作環境 Raspberry Pi 3 Model B / Raspbian GNU/Linux 9 (stretch) / Docker 17.05.0-ce
Dockerイメージサイズ 209MB

2017年10月13日金曜日

VagrantでKDEとXRDPがインストールされた仮想マシンを構築する

以下のVagrantfileを使用してKDEとXRDPがインストールされた仮想マシンを構築する事ができます。
XRDPがインストールされているので、リモートデスクトップで接続することができます。
ユーザ名はvagrant、パスワードはvagrantでアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74kde"
  config.vm.network :public_network, ip:"192.168.1.115"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74kde"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
yum -y install wget

# KDEに関連するパッケージをインストール
sudo yum -y groupinstall "KDE Plasma Workspaces"
systemctl disable initial-setup-graphical.service

sudo systemctl set-default graphical.target

# 日本語のロケールを設定
sudo yum -y install ibus-kkc vlgothic-*
localectl set-locale LANG=ja_JP.UTF-8

# XRDPをインストールして、リモートデスクトップでログインできるようにする。
sudo yum -y install epel-release
sudo yum -y install xrdp
sudo yum -y install tigervnc-server

sudo sed -i "s/max_bpp=32/max_bpp=24/" /etc/xrdp/xrdp.ini
systemctl start xrdp.service
systemctl enable xrdp.service

init 5
SHELL
end

ログオン後の画面

2017年10月12日木曜日

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

以下のVagrantfileを使用して、muninをインストールした仮想マシンを構築できます。
仮想マシンを構築後、しばらくしてからhttp://192.168.55.108/munin/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74munin"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74munin"
     vbox.cpus = 2
     vbox.memory = 1024
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.108", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.108", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# install munin
yum -y install epel-release
yum -y install munin munin-node httpd
htpasswd -b -c /etc/munin/munin-htpasswd admin admin

sed -i -e 's/#dbdir/dbdir/' /etc/munin/munin.conf
sed -i -e 's/#htmldir/htmldir/' /etc/munin/munin.conf
sed -i -e 's/#logdir/logdir/' /etc/munin/munin.conf
sed -i -e 's/#rundir/rundir/' /etc/munin/munin.conf

systemctl enable munin-node
systemctl start munin-node
systemctl enable httpd
systemctl restart httpd

echo 'access http://192.168.55.108/munin/';
echo 'user:admin   password:admin'
echo 'cronが動作するまで403 Forbiddenが表示されます'
SHELL

end

muninのスクリーンショット

2017年10月11日水曜日

Vagrantでpydio community editionをインストールした仮想マシンを構築する

以下のVagrantfileを使用して、pydio community editionとPostgreSQLがインストールされた仮想マシンを構築する事ができます。
仮想マシンを構築後、ブラウザでhttp://192.168.55.105/pydio/にアクセスして診断画面、Setup Wizardで初期設定を行います。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604pydio"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604pydio"
     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
apt-get -y install unzip
locale-gen ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8
# install postgresql
apt-get -y install postgresql
echo "listen_addresses='*'" >> /etc/postgresql/9.5/main/postgresql.conf
echo "host    all         all         127.0.0.1/32          password" >> /etc/postgresql/9.5/main/pg_hba.conf
echo "host    all         all         192.168.1.0/24          password" >> /etc/postgresql/9.5/main/pg_hba.conf
echo "host    all         all         192.168.55.0/24          password" >> /etc/postgresql/9.5/main/pg_hba.conf
su - postgres << EOF
createdb -T template0 --locale=ja_JP.UTF-8 --encoding=UTF8 pydio
psql -c "
ALTER DATABASE pydio SET bytea_output = 'escape';
alter user postgres with password 'postgres';
create user pydio with password 'pydio';
grant all privileges on database pydio to pydio;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service
systemctl enable postgresql.service
# download pydio-core
wget https://download.pydio.com/pub/core/archives/pydio-core-8.0.1.tar.gz
tar xvfz pydio-core-8.0.1.tar.gz
# install apache and php
apt-get -y install php7.0 libapache2-mod-php7.0 apache2 php7.0-sqlite sqlite php7.0-gd php7.0-mcrypt php7.0-xml php7.0-intl php7.0-pgsql
mv pydio-core-8.0.1/ /opt/pydio
chown -R www-data:www-data /opt/pydio
sudo ln -s /opt/pydio /var/www/html/
sed -i -e 's/output_buffering = 4096/output_buffering = off/'  /etc/php/7.0/apache2/php.ini
cat << EOF >> /etc/apache2/apache2.conf

    AllowOverride All
    Options All
    Require all granted

EOF
a2enmod rewrite
service apache2 restart
echo "access http://192.168.55.105/pydio/"
SHELL
end

1.インストール後の診断画面


2.Setup Wizardの画面1


3.Setup Wizardの画面2


4.Setup Wizardの画面3


5.Setup Wizardの画面4


6.Setup Wizardの画面5


7.ログイン画面


8.ログイン後の画面