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.ログイン後の画面


2017年10月10日火曜日

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

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604webmin"
  config.vm.network :public_network, ip:"192.168.1.113"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604webmin"
     vbox.gui = true
     vbox.cpus = 2
     vbox.memory = 2048
  end
  config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get -y install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.850_all.deb
dpkg --install webmin_1.850_all.deb
echo 'access to https://192.168.1.113:10000/';
echo 'user: vagrant   password: vagrant'
SHELL
end

webminのログイン画面


webminのログイン後の画面


2017年10月9日月曜日

VagrantでXFCEデスクトップ環境とXRDPがインストールされた仮想マシンを構築する

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

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

ログイン画面


ログイン後のデスクトップ画面


2017年10月8日日曜日

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

以下のDockerfileを使用して、Raspberry Pi上のDocker CEで動作するPostgreSQLのイメージが作成できます。
作成したいデータベース、ユーザやネットワークの設定は適宜変更します。

Dockerfile
FROM resin/raspberry-pi-alpine:3.6
ENV LANG=ja_JP.utf8 \
    PGDATA=/var/lib/postgresql/data
RUN apk --no-cache add postgresql sudo \
  && mkdir -p "$PGDATA" \
  && chown -R postgres "$PGDATA" \
  && chmod 700 "$PGDATA" \
  && mkdir -p /run/postgresql \
  && chown -R postgres /run/postgresql \
  && chmod 775 /run/postgresql \
  && sudo -u postgres initdb --encoding=UTF8 --no-locale -D "$PGDATA" \
  && sudo -u postgres pg_ctl -D "$PGDATA" -o "-c listen_addresses='localhost'" -w start \
  && echo $'CREATE USER docker; \
  ALTER USER docker WITH PASSWORD '\''docker'\''; \
  CREATE DATABASE docker; \
  GRANT ALL PRIVILEGES ON DATABASE docker TO docker;' > /tmp/setupdb.sh \
  && psql --username postgres -f /tmp/setupdb.sh \
  && sudo -u postgres pg_ctl -D "$PGDATA" -m fast -w stop \
  && rm /tmp/setupdb.sh \
  && echo "listen_addresses = '*'" >> /var/lib/postgresql/data/postgresql.conf \
  && echo "port = 5432" >> /var/lib/postgresql/data/postgresql.conf \
  && echo "host    all         all         192.168.1.0/24          password" >> /var/lib/postgresql/data/pg_hba.conf
VOLUME /var/lib/postgresql/data
EXPOSE 5432
CMD ["sudo", "-u", "postgres", "postgres", "-D", "/var/lib/postgresql/data"]

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

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

○コンテナの実行
docker run --rm -dit -p 5432:5432 -v dbdata:/var/lib/postgresql/data rpi-pg

○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イメージサイズ 101MB

○関連情報
Raspberry Pi上のDockerでphpPgAdminのイメージを構築する
Raspbian GNU/Linux 9 (stretch)上にDocker CEをインストールする

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

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604liferay"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604liferay"
     vbox.cpus = 4
     vbox.memory = 8192
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  # private network
  config.vm.network "private_network", ip: "192.168.55.110", :netmask => "255.255.255.0"
  # bridge netwrok
  config.vm.network "public_network", ip: "192.168.1.110", :netmask => "255.255.255.0"
  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 unzip

# javaをインストール
apt-get -y install openjdk-8-jdk

# Liferayのダウンロード
wget "https://downloads.sourceforge.net/project/lportal/Liferay%20Portal/7.0.3%20GA4/liferay-ce-portal-tomcat-7.0-ga4-20170613175008905.zip";
unzip liferay-ce-portal-tomcat-7.0-ga4-20170613175008905.zip
chmod +x ./liferay-ce-portal-7.0-ga4/tomcat-8.0.32/bin/startup.sh
chmod +x ./liferay-ce-portal-7.0-ga4/tomcat-8.0.32/bin/shutdown.sh

mv ./liferay-ce-portal-7.0-ga4 /opt
cat << EOF > /etc/systemd/system/liferay.service
[Unit]
Description=Lifelay
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/liferay-ce-portal-7.0-ga4/tomcat-8.0.32/bin/startup.sh
ExecStop=/opt/liferay-ce-portal-7.0-ga4/tomcat-8.0.32/bin/shutdown.sh
KillMode=none

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

echo 'access url -> http://192.168.1.110:8080/';

SHELL
end

Liferayの初期セットアップ画面


Liferayにログイン後の画面


2017年10月7日土曜日

Raspberry Pi上のDockerでphpPgAdminのイメージを構築する

以下のDockerfileを使用してRaspberry Pi上のDockerでphpPgAdminのイメージを構築する事ができます。

Dockerfile
FROM resin/raspberry-pi-alpine:3.6
ARG DB_HOST=localhost
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php5 php5-apache2 php5-pgsql openssl openrc \
  && wget https://downloads.sourceforge.net/project/phppgadmin/phpPgAdmin%20%5Bstable%5D/phpPgAdmin-5.1/phpPgAdmin-5.1.tar.gz \
  && tar xvfz phpPgAdmin-5.1.tar.gz  \
  && mv /phpPgAdmin-5.1 /opt/phppgadmin \
  && mkdir -p /run/apache2 \
  && { \
  echo '<Directory /opt/phppgadmin>'; \
  echo '  Order allow,deny'; \
  echo '  Allow from all'; \
  echo '</Directory>'; \
  } >> /etc/apache2/httpd.conf \
  && ln -s /opt/phppgadmin /var/www/localhost/htdocs \
  && sed -i -e "s/extra_login_security.*true;/extra_login_security\\'\\] = false;/" /opt/phppgadmin/conf/config.inc.php \
  && sed -i -e "s/conf\\['servers'\\]\\[0\\]\\['host'\\] = ''/conf['servers'][0]['host'] = '${DB_HOST}'/" /opt/phppgadmin/conf/config.inc.php \
  && \rm -f tar xvfz phpPgAdmin-5.1.tar.gz
EXPOSE 80
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

○イメージのビルド
docker build --build-arg DB_HOST=(PostgreSQLのIP) -t rpi-phppgadmin .
例:
docker build --build-arg DB_HOST=192.168.1.210 -t rpi-phppgadmin .
○コンテナの実行
docker run --rm -dit -p 80:80 rpi-phppgadmin
○コンテナの停止
docker ps -a
docker stop (停止したいコンテナのID)

○補足
動作環境 Raspberry Pi 3 Model B / Raspbian GNU/Linux 9 (stretch) / Docker 17.05.0-ce
Dockerイメージサイズ 79.7MB

○関連情報
Raspbian GNU/Linux 9 (stretch)上にDocker CEをインストールする
Dockerでphppgadminがインストールされたイメージを作成する
VagrantでPostgreSQLとphpPgAdminがインストールされた仮想マシンを構築する

○phppgadminのスクリーンショット

Raspbian GNU/Linux 9 (stretch)上にDocker CEをインストールする

Raspbian GNU/Linux 9 (stretch)にDockerをインストールするには、以下のコマンドを実行します。

1. Docker CEのインストール
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh

2. sudoなしでdockerを使用できるようにする
sudo usermod -aG docker pi
※いったんログアウトする

3.動作確認
docker run armhf/hello-world
Hello from Docker on armhf!というメッセージが表示されればOK。

動作環境:Raspberry Pi 3 Model B

VagrantでLXDEデスクトップ環境とXRDPがインストールされた仮想マシンを構築する

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

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

ログイン画面

ログイン後のデスクトップ画面

2017年10月6日金曜日

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

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74portainer"
  config.vm.network :public_network, ip:"192.168.1.113"
  config.vm.network "private_network", ip: "192.168.55.113", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
    vbox.name = "co74portainer"
    vbox.cpus = 4
    vbox.memory = 4096
    vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.provision "shell", inline: <<-SHELL
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
    --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --disable docker-ce-edge
yum -y install docker-ce
systemctl enable docker
systemctl start docker

mkdir -p /opt/portainer

docker swarm init --advertise-addr 192.168.55.113  | grep -e '--token' | sed -e 's/    //' - > /vagrant/joincmd.sh
docker service create \
  --name portainer \
  --publish 9000:9000 \
  --constraint 'node.role == manager' \
  --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \
  --mount type=bind,src=/opt/portainer,dst=/data \
  portainer/portainer \
  -H unix:///var/run/docker.sock

SHELL
end

仮想マシンを構築後、ブラウザでhttp://192.168.55.113:9000/にアクセスし、管理者のユーザ名、パスワードを設定します。


portainerにログイン後の画面


2017年10月5日木曜日

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

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74rancher"
  config.vm.network :public_network, ip:"192.168.1.115"
  config.vm.network "private_network", ip: "192.168.55.115", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
    vbox.name = "co74rancher"
    vbox.cpus = 4
    vbox.memory = 4096
    vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.provision "shell", inline: <<-SHELL
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
    --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --disable docker-ce-edge
yum -y install docker-ce
systemctl enable docker
systemctl start docker

mkdir -p /opt/rancher/mysql

docker swarm init --advertise-addr 192.168.55.115  | grep -e '--token' | sed -e 's/    //' - > /vagrant/joincmd.sh

docker run -d -v /opt/rancher/mysql:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server

SHELL
end

仮想マシンを構築後、以下の初期設定を行います。


1.ブラウザでhttp://192.168.55.115:8080/にアクセスして、Add a hostをクリック


2.Saveをクリック


3.下へスクロール


4.ホストを登録するのに5番に表示されたコマンドを、SSHなどでサーバにログオンして実行。


5.ADMINメニューをクリック


6.ローカル認証を選択


7.ユーザ名、パスワードを入力して、「Enable Local Auth」を選択


8.セキュリティ有効後は、上記のようなログイン画面が表示される

○関連情報
Vagrantでshipyardがインストールされた仮想マシンを構築する

2017年10月4日水曜日

Vagrantでmosquittoがインストールされた仮想マシン(bento/ubuntu-16.04ベース)を構築する

mosquittoがインストールされたubuntu16.04ベースの仮想マシンを構築するには以下のVagrantfileを使用します。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604mosquitto"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604mosquitto"
     vbox.cpus = 2
     vbox.memory = 1024
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.101", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.101", :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 mosquitto mosquitto-clients

# execute commands for test.
mosquitto_sub -t mytopic/test -h ub1604mosquitto >> /tmp/sample.txt 2>&1 &
sleep 10
mosquitto_pub -t mytopic/test -h ub1604mosquitto -m "test message."
sleep 10
cat /tmp/sample.txt
SHELL
end
・関連情報
Vagrantでmosquittoがインストールされた仮想マシン(bento/centos-7.4ベース)を構築する

2017年10月3日火曜日

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

以下のVagrantfileを使用してshipyardとDocker CEがインストールされた仮想マシンを構築できます。
仮想マシンを構築後、http://192.168.55.112:8080/にユーザadmin、パスワードshipyardでアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74shipyard"
  config.vm.network :public_network, ip:"192.168.1.112"
  config.vm.network "private_network", ip: "192.168.55.112", :netmask => "255.255.255.0"
  config.vm.provider :virtualbox do |vbox|
    vbox.name = "co74shipyard"
    vbox.cpus = 4
    vbox.memory = 4096
    vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.provision "shell", inline: <<-SHELL
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
    --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --disable docker-ce-edge
yum -y install docker-ce
systemctl enable docker
systemctl start docker
curl -sSL https://shipyard-project.com/deploy | bash -s
SHELL
end
shipyardのログイン画面

shipyardのコンテナ一覧画面

2017年10月2日月曜日

VagrantでGIMPとKrita、XRDPがインストールされたGNOMEデスクトップ環境を構築する

以下のVagrantfileを使用して、GIMPとKrita、XRDPがインストールされた仮想マシンを構築できます。
仮想マシンにはユーザvagrant、パスワードvagrantでログインできます。
アプリケーション->グラフィックスメニューからGIMPまたはKritaを起動します。
仮想マシンが構築された後、Windowsのリモートデスクトップから192.168.1.112を指定して接続できます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74gimp-krita"
  config.vm.network :public_network, ip:"192.168.1.112"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74gimp-krita"
     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

# gimpのインストール
yum install -y aalib aalib-devel libexif-devel libjpeg-devel libpng-devel gimp
im-config -n fcitx

# kritaのインストール
yum -y install calligra-krita


echo '日本語入力:アプリケーション->システムツール->設定メニューを選択後、Region & Languageをクリック、入力ソースで+をクリック、日本語(かな漢字)を追加する'
telinit 5
SHELL

end

GIMPのスクリーンショット

Kritaのスクリーンショット

2017年10月1日日曜日

VagrantでUbuntu17.04とMATEデスクトップ環境、XRDPがインストールされた仮想マシンを構築する

以下のVagrantfileを使用して、Ubuntu17.04、MATEデスクトップ環境、XRDPがインストールされた仮想マシンを構築できます。
仮想マシンが構築された後、Windowsのリモートデスクトップから192.168.1.111を指定して接続できます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-17.04"
  config.vm.hostname = "ub1704xrdp"
  config.vm.network :public_network, ip:"192.168.1.111"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1704xrdp"
     vbox.gui = true
     vbox.cpus = 4
     vbox.memory = 4096
  end
  config.vm.provision "shell", inline: <<-SHELL
localectl set-locale LANG=ja_JP.UTF-8
apt-get update
apt-get -y install xrdp mate-core mate-desktop-environment mate-notification-daemon fcitx-mozc fcitx-anthy
im-config -n fcitx

SHELL
end

リモートデスクトップでのログイン画面

ログイン後のデスクトップ画面

2017年9月30日土曜日

Dockerでphppgadminがインストールされたイメージを作成する

以下のDockerfileでphppgadminがインストールされたイメージを作成できます。
コンテナを実行後、http://サーバー/phppgadmin/にアクセスします。

Dockerfile
FROM alpine:3.6
ARG DB_HOST=localhost
WORKDIR /
RUN  apk update \
  && apk add --nocache apache2 php7-apache2 php7-pgsql php7-mbstring php7-session openssl openrc \
  && wget https://downloads.sourceforge.net/project/phppgadmin/phpPgAdmin%20%5Bstable%5D/phpPgAdmin-5.1/phpPgAdmin-5.1.tar.gz \
  && tar xvfz phpPgAdmin-5.1.tar.gz  \
  && mkdir /opt \
  && mv /phpPgAdmin-5.1 /opt/phppgadmin \
  && mkdir -p /run/apache2 \
  && { \
  echo ''; \
  echo '  Order allow,deny'; \
  echo '  Allow from all'; \
  echo ''; \
  } >> /etc/apache2/httpd.conf \
  && ln -s /opt/phppgadmin /var/www/localhost/htdocs \
  && sed -i -e "s/extra_login_security.*true;/extra_login_security\\'\\] = false;/" /opt/phppgadmin/conf/config.inc.php \
  && sed -i -e "s/conf\\['servers'\\]\\[0\\]\\['host'\\] = ''/conf['servers'][0]['host'] = '${DB_HOST}'/" /opt/phppgadmin/conf/config.inc.php

EXPOSE 80
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]

○イメージのビルド
接続先のPostgreSQLは引数で指定します。
docker build --build-arg DB_HOST= -t httpd24phppgadmin .

例:
docker build --build-arg DB_HOST=192.168.1.110 -t httpd24phppgadmin .


○コンテナの実行
docker run --rm -dit -p 80:80 httpd24phppgadmin


○コンテナの停止
docker ps -a
docker stop 停止したいコンテナのID


○phppgadminのスクリーンショット


○関連情報
VagrantでPostgreSQLとphpPgAdminがインストールされた仮想マシンを構築する

VagrantでRabbitMQとManagement Web interface、Anaconda、pikaがインストールされた仮想マシンを構築する

以下のVagrantfileを使用してRabbitMQ、Management Web interface、Anaconda、pikaがインストールされた仮想マシンを構築できます。
仮想マシンの構築と同時にpikaを使用したメッセージを送信(put-helloworld.py)・受信(get-helloworld.py)を行うサンプルも実行します。
Management Web interfaceには、http://192.168.55.102:15672/にユーザ名rabbitmq、パスワードrabbitmqでアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604rabbitmq"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604rabbitmq"
     vbox.cpus = 2
     vbox.memory = 1024
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.102", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.102", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
# update packages
apt-get update
echo 'deb http://www.rabbitmq.com/debian/ testing main' | tee /etc/apt/sources.list.d/rabbitmq.list
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install rabbitmq-server

rabbitmq-plugins enable rabbitmq_management
systemctl enable rabbitmq-server
systemctl restart rabbitmq-server

# setup management web interface
rabbitmqctl add_user rabbitmq rabbitmq
rabbitmqctl set_user_tags rabbitmq administrator
rabbitmqctl set_permissions -p / rabbitmq ".*" ".*" ".*"

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

# execute a sample program to put a message.
cat << EOF > put-helloworld.py
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='',
  routing_key='hello',
  body='Hello World!')
print(" put 'Hello World!'")
EOF
python put-helloworld.py

# exeucte a sample program to get a message
cat << EOF > get-helloworld.py
import pika

connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
method_frame, header_frame, body = channel.basic_get('hello')
if method_frame:
  print(method_frame, header_frame, body)
  channel.basic_ack(method_frame.delivery_tag)
else:
  print('no message')
EOF
python get-helloworld.py

echo 'management web interface : http://192.168.55.102:15672/';
echo 'user : rabbitmq     password rabbitmq'
SHELL
end

Management Web Interfaceのログイン画面

Management Web Interfaceのログオン後の画面

2017年9月29日金曜日

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

以下のVagrantfileでDokuWikiがインストールされたマシンを構築できます。
http://192.168.55.106/dokuwiki/にブラウザでアクセスします。ユーザ名admin、パスワードadminでログインできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604docuwiki"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604docuwiki"
     vbox.cpus = 2
     vbox.memory = 2048
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.106", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.106", :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 apache2 kanboard
apt-get -y install php7.0 libapache2-mod-php7.0 apache2 php7.0-mbstring php7.0-xml
echo "dokuwiki        dokuwiki/system/purgepages      boolean false\n" \
"dokuwiki        dokuwiki/wiki/password  password admin\n" \
"dokuwiki        dokuwiki/wiki/confirm   password admin" | debconf-set-selections
apt-get -y install dokuwiki
ln -s /usr/share/dokuwiki /var/www/html/
chown -R www-data:www-data /usr/share/dokuwiki

cat <<EOF > /etc/apache2/sites-available/dokuwiki.conf
<Directory /usr/share/dokuwiki>
  Order allow,deny
  Allow from all
</Directory>
EOF
a2ensite dokuwiki
systemctl restart apache2

echo 'access http://192.168.55.106/dokuwiki/';
echo 'user: admmin, password: admin'
SHELL
end

DokuWikiにアクセス後の画面

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

以下のVagrantfileを使用して、Cockpitをインストールした仮想マシンを構築する事ができます。
構築後、http://192.168.55.101:9090/にアクセスして、ユーザ名vagrant・パスワードvagrantでログインできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604cockpit"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604cockpit"
     vbox.cpus = 2
     vbox.memory = 1024
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  config.vm.network "private_network", ip: "192.168.55.101", :netmask => "255.255.255.0"
  config.vm.network "public_network", ip:"192.168.1.101", :netmask => "255.255.255.0"
  config.vm.provision "shell", inline: <<-SHELL
apt-get install apt-file
apt-get update
apt-get install software-properties-common
# add repository
add-apt-repository ppa:cockpit-project/cockpit
# 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 cockpit
systemctl enable cockpit
systemctl start cockpit

echo 'access to http://192.168.55.101:9090/';
echo 'user:vagrant password:vagrant'
SHELL
end

Cockpitのログイン画面

Cockpitにログインした後の画面

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

RackTablesをインストールした仮想マシンを以下のVagrantfileで構築できます。
仮想マシン後を構築後、http://192.168.1.104/racktables/?module=installerにアクセスしてインストーラの指示に従って、初期設定を行います。
OSにはsshでユーザ名vagrant、パスワードvagrantを使用してログオンできます。また、DB名にracktables、DBユーザ名にracktables、DBパスワードにracktablesを指定します。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604racktables"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604racktables"
     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

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

# install apache2
apt-get -y install apache2-bin libapache2-mod-php7.0 php7.0-gd php7.0-mysql php7.0-mbstring php7.0-bcmath php7.0-json php7.0-snmp

wget https://downloads.sourceforge.net/project/racktables/RackTables-0.20.14.tar.gz
tar xvfz RackTables-0.20.14.tar.gz
mv RackTables-0.20.14/wwwroot /opt/racktables
chown -R www-data:www-data /opt/racktables
ln -s  /opt/racktables /var/www/html

service apache2 restart

echo 'access http://192.168.1.104/racktables/?module=installer';
echo 'OS user: vagrant OS password: vagrant'
echo 'DB user: racktables DB password:racktables DB:racktables'
SHELL
end

インストーラの画面

VagrantでPentaho Data Integration CEとGnome DesktopとXRDPがインストールされた仮想マシンを構築する

以下のVagrantfileを使用して、Pentaho Data IntegrationとGnome DesktopとXRDPがインストールされた仮想マシンを構築します。
仮想マシンを構築後、vagrant/vagrantでログオン後、デスクトップにあるSpoonのアイコンをダブルクリックするとPentaho Data Integration CEが起動します。
XRDPもインストールしてあるので、Windowsのリモートデスクトップでの接続もできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74pdi710"
  config.vm.network :public_network, ip:"192.168.1.111"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74pdi710"
     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

wget 'https://downloads.sourceforge.net/project/pentaho/Data%20Integration/7.1/pdi-ce-7.1.0.0-12.zip';
unzip pdi-ce-7.1.0.0-12.zip
mv data-integration/ /opt

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

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=/opt/data-integration/spoon.sh
Name=Spoon
EOF
chmod +x /home/vagrant/デスクトップ/spoon.desktop
chown vagrant:vagrant /home/vagrant/デスクトップ/spoon.desktop

telinit 5
SHELL

end

Vagrantでログイン後の画面

Pentaho Data Integration起動後の画面

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

以下のVagrantfileを使用してAdminerとMySQLがインストールされたマシンを構築する事ができます。
仮想マシンが構築された後、http://192.168.55.104/adminer/でadminerにアクセスできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604adminer"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604adminer"
     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
# install mysql
echo "mysql-server-5.7 mysql-server/root_password password root" | sudo debconf-set-selections
echo "mysql-server-5.7 mysql-server/root_password_again password root" | sudo debconf-set-selections
apt-get -y install mysql-server-5.7
apt-get install -y adminer
ln -s  /usr/share/adminer/adminer /var/www/html
service apache2 restart
echo 'access http://192.168.55.104/adminer/';
echo 'user:root password:root db:mysql'
SHELL
end

Adminerのログイン画面


Adminerにログインした後の画面


○類似ソフトウェア
VagrantでMySQLとphpMyAdminが一緒にインストールされた仮想マシンを構築する
VagrantでPostgreSQLとpgwebがインストールされた仮想マシンを構築する

2017年9月28日木曜日

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

以下のVagrantfileを使用してDrupalとPostgreSQLがインストールされた仮想マシンを構築する事ができます。
仮想マシンが構築された後、http://192.168.55.107/drupal/にアクセスして、Drupalを構成します。
データベース名:drupal、ユーザ名:drupal、パスワード:drupalを指定します。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604drupal837"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604drupal837"
     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
# 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

# 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=C --encoding=UTF8 drupal
ALTER DATABASE drupal SET bytea_output = 'escape';
alter user postgres with password 'postgres';
create user drupal with password 'drupal';
grant all privileges on database drupal to drupal;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service
systemctl enable postgresql.service


# install apache2 kanboard
apt-get -y install php7.0 libapache2-mod-php7.0 apache2 php7.0-mbstring php7.0-pgsql php7.0-gd php7.0-curl php7.0-dom

wget https://ftp.drupal.org/files/projects/drupal-8.3.7.tar.gz
tar xvfz drupal-8.3.7.tar.gz
mv drupal-8.3.7 /opt/drupal

chown -R www-data:www-data /opt/drupal
sudo ln -s /opt/drupal/ /var/www/html/

cat << EOF >> /etc/apache2/apache2.conf

  AllowOverride All
  RewriteEngine on
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

EOF
a2enmod rewrite
systemctl restart apache2 

echo 'access http://192.168.55.107/drupal/'
echo 'db:drupal user: drupal, password: drupal'
SHELL
end

Durpalのインストーラー画面1


Durpalのインストーラー画面2


Durpalのインストーラー画面3


Durpalのインストーラー画面4


Durpalのインストール完了画面