2018年6月6日水曜日

DokcerでphpMyAdmin4.8、MySQL5.7のコンテナを構築する

phpMyAdminでMySQLをwebインターフェイスから操作することができます。

○phpMyAdmin4.8の画面

コンテナ構築後、ブラウザからhttp://<dokcerホスト>:8080/にアクセスします。ユーザ名/パスワードにはroot/ROOT_PASSWORDまたはAPP_USER/APP_PASSWORDを指定します。

○構築方法
以下のコマンドとdocker-compose.ymlファイルを使用して、phpMyAdmin4.8、MySQL5.7のコンテナを構築する事ができます。
docker-compose up -d

docker-compose.yml
version: '2'
services:
  db:
    image: mysql:5.7
    container_name: db
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_DATABASE: APP_DB
      MYSQL_USER: APP_USER
      MYSQL_PASSWORD: APP_PASSWORD
      MYSQL_ROOT_PASSWORD: ROOT_PASSWORD
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:4.8.0-3
    container_name: phpmyadmin
    ports:
      - 8080:80
    environment:
      PMA_HOST: db
      PMA_VERBOSE: APP_DB
      PMA_PORT: 3306
    depends_on:
      - db
volumes:
  db-data:
    driver: local


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

・プロジェクトwebサイト
https://www.phpmyadmin.net/

LXDでphpMyAdminとMariaDBがインストールされたコンテナ(Ubuntu18.04)を構築する

phpMyAdminでブラウザからMariaDBを操作する事ができます。

〇phpMyAdminの画面


ブラウザでhttp://<ホストのIP>/phpmyadmin/にアクセスします。ユーザ名/パスワードはroot/rootまたはtest1/test1です。

〇構築方法
LXDで以下のコマンドを実行して、phpMyAdminとMariaDBがインストールされたコンテナを構築します。
lxc init ubuntu:18.04 ub1804phpmyadminmariadb
lxc config set ub1804phpmyadminmariadb user.user-data - < config.yml
lxc start ub1804phpmyadminmariadb

config.yml
#cloud-config

package_upgrade: true

hostname: ub1804phpmyadminmariadb
manage_etc_hosts: true

runcmd:
  - '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 \"SET PASSWORD FOR root@localhost=PASSWORD('');\""
  - mysql -uroot -proot -e "CREATE DATABASE test1 DEFAULT CHARACTER SET utf8mb4;"
  - mysql -uroot -proot -e "CREATE USER test1@localhost IDENTIFIED BY 'test1';"
  - mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON test1.* TO 'test1'@'localhost';"
  - mysql -uroot -proot -e "FLUSH PRIVILEGES;"
  - 'echo "phpmyadmin phpmyadmin/dbconfig-install boolean true" | debconf-set-selections'
  - 'echo "phpmyadmin phpmyadmin/mysql/admin-pass password root" | debconf-set-selections'
  - 'echo "phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2" | debconf-set-selections'
  - 'echo "phpmyadmin phpmyadmin/mysql/app-pass password root" | debconf-set-selections'
  - 'apt-get -y install phpmyadmin'
  - mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' identified by 'root';"
  - mysql -uroot -proot -e "FLUSH PRIVILEGES;"
  - service apache2 restart
final_message: "completed."

〇コンテナに入る
lxc exec ub1804phpmyadminmariadb /bin/bash

〇ホストマシンの外部からコンテナにアクセスしたい場合
PORT=80 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇コンテナの停止
lxc stop ub1804phpmyadminmariadb

〇コンテナの削除
lxc delete ub1804phpmyadminmariadb


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

・プロジェクトwebサイト
https://www.phpmyadmin.net/

2018年6月5日火曜日

VagrantでPercona ServerとphpMyAdminが一緒にインストールされた仮想マシン(Debian Stretch/9.4)を構築する

phpMyAdminでwebインターフェイスからMySQLを操作できます。

〇phpMyAdminの画面

仮想マシン構築後、ブラウザからhttp://192.168.1.104/phpmyadmin/にアクセスします。ユーザ名/パスワードはroot/root, test/testです。

〇構築方法
以下のVagrantfileを使用して、MySQLとphpMyAdminをインストールした仮想マシン(Debian Stretch/9.4)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94phpmyadminpercona"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94phpmyadminpercona"
     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
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 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 mysql -e "update user set authentication_string=password('root'), plugin='mysql_native_password' where user='root';"
mysql -uroot -e "CREATE DATABASE test DEFAULT CHARACTER SET utf8;"
mysql -uroot -e "CREATE USER test@localhost IDENTIFIED BY 'test';"
mysql -uroot -e "GRANT ALL PRIVILEGES ON test.* TO 'test'@'localhost';"
mysql -uroot -e "FLUSH PRIVILEGES;"


echo "phpmyadmin phpmyadmin/dbconfig-install boolean true" | debconf-set-selections
echo "phpmyadmin phpmyadmin/mysql/admin-pass password root" | debconf-set-selections
echo "phpmyadmin phpmyadmin/reconfigure-webserver multiselect apache2" | debconf-set-selections
echo "phpmyadmin phpmyadmin/mysql/app-pass password root" | debconf-set-selections

apt-get install -y phpmyadmin
service apache2 restart

echo 'access http://192.168.1.104/phpmyadmin/'
echo 'user: root, password: root'
SHELL
end


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

・プロジェクトwebサイト
https://www.phpmyadmin.net/

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

Percona ToolkitはMySQLを管理・メンテナンスするのに役立つコマンド群です。

○構築方法
以下のVagrantfileを使用して、Percona ToolkitとMySQLをインストールした仮想マシンを構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604mysqlperconatoolkit"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604mysqlperconatoolkit"
     vbox.cpus = 4
     vbox.memory = 4096
     vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
  end
  # private network
config.vm.network "private_network", ip: "192.168.55.103", :netmask => "255.255.255.0"
  # bridge netwrok
config.vm.network "public_network", ip: "192.168.1.103", :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
#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 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 "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';"

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;"

# install percona toolkit
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-toolkit

# display summary information
pt-mysql-summary --user root --password root

SHELL
end


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

VagrantでPentaho Data Integration、Gnomeデスクトップ環境、XRDPがインストールされた仮想マシン(Ubuntu18.04)を構築する

Pentaho Data IntegrationはオープンソースのETLツールです。

○Pentaho Data Integrationの画面


○構築方法
以下のVagrantfileを使用して、Pentaho Data Integration、Gnomeデスクトップ環境、XRDPをインストールした仮想マシン(Ubuntu18.04)を構築できます。
XRDPがインストールされているので、Windowsのリモートデスクトップで接続することができます。ユーザ名はvagrant、パスワードもvagrantでログオンできます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-18.04"
  config.vm.hostname = "ub1804gnomepdi800"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1804gnomepdi800"
     vbox.cpus = 4
     vbox.memory = 4096
     vbox.gui = true
  end
  # bridge netwrok
config.vm.network "public_network", ip: "192.168.1.103", :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
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install language-pack-ja
localectl set-locale LANG=ja_JP.UTF-8
localectl set-keymap jp106

apt-get -y install xrdp fcitx-mozc ubuntu-desktop  virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11
im-config -n fcitx

sed -i -e "s/allowed_users=console/allowed_users=anybody/" /etc/X11/Xwrapper.config

cat << EOF >> /etc/polkit-1/localauthority/50-local.d/allow-colord.pkla
[Allow colord for all users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResualtInactive=no
ResultActive=yes
EOF
systemctl restart polkit

# install java
apt-get -y install openjdk-8-jdk

# install pentaho data integration 8.0.0
wget 'https://sourceforge.net/projects/pentaho/files/Pentaho%208.0/client-tools/pdi-ce-8.0.0.0-28.zip'
unzip pdi-ce-8.0.0.0-28.zip
mv data-integration/ /opt

cat << EOF > /usr/share/applications/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


init 5
SHELL
end


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

2018年6月4日月曜日

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

Adminerはデータベースのwebインターフェイスです。

○Adminerの画面


○構築方法
以下のVagrantfileを使用して、AdminerとMySQLをインストールした仮想マシン(CentOS7.4)を構築する事ができます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74adminermysql"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74adminermysql"
     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
localectl set-locale LANG=ja_JP.UTF-8

# mysqlのインストール
sudo yum -y remove mariadb-libs
yum -y localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum -y install yum-utils
yum -y install mysql mysql-devel mysql-server mysql-utilities
sudo systemctl enable mysqld.service
sudo systemctl start mysqld.service
# change password and create users and databases.
chkconfig mysqld on
service mysqld start
export MYSQL_ROOTPWD='Root123#'
export MYSQL_PWD=`cat /var/log/mysqld.log | awk '/temporary password/ {print $NF}'`
mysql -uroot --connect-expired-password -e "SET PASSWORD = PASSWORD('$MYSQL_ROOTPWD');"
export MYSQL_PWD=$MYSQL_ROOTPWD
export MYSQL_ROOTPWD='root'
mysql -uroot --connect-expired-password -e "UNINSTALL PLUGIN validate_password;"
mysql -uroot --connect-expired-password -e "SET PASSWORD = PASSWORD('$MYSQL_ROOTPWD'); FLUSH PRIVILEGES;"

# install apache2 and php
yum -y install --enablerepo=remi,remi-php71 httpd php php-mbstring php-mysql
mkdir -p /opt/adminer
cd /opt/adminer
wget https://github.com/vrana/adminer/releases/download/v4.6.2/adminer-4.6.2.php
mv adminer-4.6.2.php index.php

chown -R apache:apache /opt/adminer
sudo ln -s /opt/adminer/ /var/www/html/
systemctl restart httpd

echo 'access -> http://192.168.1.105/adminer'
SHELL
end


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

・Adminerのプロジェクトwebサイト
https://www.adminer.org/

LXDでLycheeとMariaDBをインストールしたコンテナ(Ubuntu18.04)を構築する

LycheeはPHP製の画像管理ソフトです。

〇Lycheeの画面


〇コンテナの構築
1.LXDで以下のコマンドを実行して、LycheeとMariaDBがインストールされたコンテナを構築します。
lxc init ubuntu:18.04 ub1804lycheemariadb
lxc config set ub1804lycheemariadb user.user-data - < config.yml
lxc start ub1804lycheemariadb

config.yml
#cloud-config

package_upgrade: true

hostname: ub1804lycheemariadb
manage_etc_hosts: true

runcmd:
  - "apt-get update"
  - 'echo "mariadb-server-10.3 mysql-server/root_password password root" | sudo debconf-set-selections'
  - 'echo "mariadb-server-10.3 mysql-server/root_password_again password root" | sudo debconf-set-selections'
  - "apt-get -y install mariadb-server"
  - 'mysql -uroot -proot -e "CREATE DATABASE lychee DEFAULT CHARACTER SET utf8;"'
  - "mysql -uroot -proot -e \"CREATE USER lychee@localhost IDENTIFIED BY 'lychee';\""
  - "mysql -uroot -proot -e \"GRANT ALL PRIVILEGES ON lychee.* TO 'lychee'@'localhost';\""
  - 'mysql -uroot -proot -e "FLUSH PRIVILEGES;"'
  - 'echo "sql_mode=NO_ENGINE_SUBSTITUTION" >> /etc/mysql/mysql.conf.d/mysqld.cnf'
  - "systemctl restart mysql.service"
  - "apt-get -y install apache2 libapache2-mod-php7.2"
  - "apt-get -y install php7.2-gd php7.2-json php7.2-mysql php7.2-pdo php7.2-curl php7.2-mbstring"
  - "apt-get -y install unzip"
  - "wget  https://github.com/electerious/Lychee/archive/master.zip"
  - "unzip master.zip"
  - "mv Lychee-master /opt/lychee"
  - "chown -R www-data:www-data /opt/lychee"
  - "ln -s  /opt/lychee /var/www/html"
  - "systemctl restart apache2"

final_message: "completed."

2.初期設定画面1
以下を入力します。
Database Host : localhost
Database Username : lychee
Database Password : lychee
Database Name : lychee


3.初期設定画面2
ユーザ情報を入力します。


〇コンテナのIPを調べる
コンテナのIPは以下のコマンドで調べることができます。
lxc list

〇ホストマシンの外部からコンテナにアクセスしたい場合
以下のコマンドを実行します。
PORT=80 PUBLIC_IP=<ホストのIP> CONTAINER_IP=<コンテナのIP> sudo -E bash -c 'iptables -t nat -I PREROUTING -i eth0 -p TCP -d $PUBLIC_IP --dport $PORT -j DNAT --to-destination $CONTAINER_IP:$PORT -m comment --comment "container"'

〇コンテナに入る
lxc exec ub1804lycheemariadb /bin/bash

〇コンテナの停止
lxc stop ub1804lycheemariadb

〇コンテナの削除
lxc delete ub1804lycheemariadb


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