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がインストールされた仮想マシン(Ubuntu16.04)を構築する

以下の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のログオン後の画面


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

2017年9月29日金曜日

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

以下の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 and DokuWiki
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にアクセス後の画面


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

Zimというデスクトップアプリケーションで自分だけのWikiを作成することもできます。

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

以下の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にログインした後の画面


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

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

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がインストールされた仮想マシン(CentOS7.4)を構築する

以下の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起動後の画面


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

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

以下の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にログインした後の画面



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

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

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

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

2017年9月28日木曜日

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

以下の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のインストール完了画面



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

2017年9月27日水曜日

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

以下のVagrantfileでmosquittoがインストールされたcentos7.4ベースの仮想マシンを構築する事ができます。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74mosquitto"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74mosquitto"
     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 mosquitto
yum -y install epel-release
yum -y install mosquitto
systemctl enable mosquitto
systemctl start mosquitto

# execute commands for test.
mosquitto_sub -t mytopic/test -h co74mosquitto >> /tmp/sample.txt 2>&1 &
mosquitto_pub -t mytopic/test -h co74mosquitto -m "test message."
sleep 10
cat /tmp/sample.txt
SHELL
end

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

VagrantでBaculaサーバー&Bacula-webとBaculaクライアントを2台の仮想マシン(Ubuntu16.04)にインストールする

Vagrantfileを使用して以下の2台の仮想マシンにBaculaとBacula-webをインストールします
1.baculasrv
  ・Baculaサーバー/クライアント
  ・Apache2+Bacula-web
  ・PostgreSQL
2.baculacli
  ・Baculaサーバー

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.define "baculacli" do |server|
    server.vm.box = "bento/ubuntu-16.04"
    server.vm.hostname = "baculacli"
    server.vm.network :public_network, ip:"192.168.1.102"
    server.vm.network "private_network", ip: "192.168.55.102", :netmask => "255.255.255.0"
    server.vm.provider :virtualbox do |vbox|
      vbox.name = "baculacli"
      vbox.cpus = 2
      vbox.memory = 4096
      vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
    end
    server.vm.provision "shell", inline: <<-SHELL
apt-get install -y bacula-client

sed -i -e "s/Name = baculacli-dir/Name = baculasrv-dir/" /etc/bacula/bacula-fd.conf
sed -i -e "s/127.0.0.1/192.168.55.102/" /etc/bacula/bacula-fd.conf
service bacula-fd restart

cp /etc/bacula/common_default_passwords /vagrant/passwords_baculacli

SHELL
  end
  #----------------------------------------------------------------------------------------


  config.vm.define "baculasrv" do |server|
    server.vm.box = "bento/ubuntu-16.04"
    server.vm.hostname = "baculasrv"
    server.vm.network :public_network, ip:"192.168.1.101"
    server.vm.network "private_network", ip: "192.168.55.101", :netmask => "255.255.255.0"
    server.vm.provider :virtualbox do |vbox|
      vbox.name = "baculasrv"
      vbox.cpus = 2
      vbox.memory = 4096
      vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
    end
    server.vm.provision "shell", inline: <<-SHELL
apt-get update
# 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


# install bacula
apt-get install -y debconf-utils
echo "postfix postfix/main_mailer_type        select  Local only\n" \
"postfix postfix/mailname        string  baculasrv\n" \
"bacula-director-mysql   bacula-director-mysql/dbconfig-install  boolean true\n" \
"bacula-director-mysql   bacula-director-mysql/mysql/app-pass password bacula\n" \
"bacula-director-mysql   bacula-director-mysql/app-password-confirm password bacula" | debconf-set-selections
apt-get install -y --no-install-recommends bacula-server bacula-client bacula-common-mysql

# configure bacula
mkdir -p /opt/bacula/backup /opt/bacula/restore
chown -R bacula:bacula /opt/bacula
chmod -R 700 /opt/bacula

source /etc/bacula/common_default_passwords

# configure bacula storage daemon
cat << EOF >> /etc/bacula/bacula-sd.conf
Device {
  Name = FileStorage
  Media Type = File
  Archive Device = /opt/bacula/backup
  LabelMedia = yes;
  Random Access = Yes;
  AutomaticMount = yes;
  RemovableMedia = no;
  AlwaysOpen = no;
}
EOF
sed -i -e "s/SDAddress = 127.0.0.1/SDAddress = 192.168.55.101/" /etc/bacula/bacula-sd.conf

# configure bacula director
cat << EOF >> /etc/bacula/bacula-dir.conf
Storage {
  Name = File
  Address = 192.168.55.101
  SDPort = 9103
  Password = "$SDPASSWD"
  Device = FileStorage
  Media Type = File
}

Job {
  Name = "Backup-baculasrv"
  JobDefs = "DefaultJob"
  Storage = File
}

EOF


source /vagrant/passwords_baculacli

cat << EOF >> /etc/bacula/bacula-dir.conf
# Client (File Services) to backup
Client {
  Name = baculacli-fd
  Address = 192.168.55.102
  FDPort = 9102
  Catalog = MyCatalog
  Password = "$FDPASSWD"              # password for FileDaemon
  File Retention = 60 days            # 60 days
  Job Retention = 6 months            # six months
  AutoPrune = yes                     # Prune expired Jobs/Files
}

Job {
  Name = "Backup-baculacli"
  JobDefs = "DefaultJob"
  Storage = File
  Client = baculacli-fd
}

EOF

sed -i -e "s#/nonexistant/path/to/file/archive/dir/bacula-restores#/opt/bacula/restore/#" /etc/bacula/bacula-dir.conf
cat << EOF | sed -i -e '/File = \/usr\/sbin/r /dev/stdin' /etc/bacula/bacula-dir.conf
    File = /home
EOF

service bacula-director restart
service bacula-sd restart


# install apache2 & bacula-web
apt-get -y install php7.0 libapache2-mod-php7.0 apache2 php7.0-mbstring php7.0-gd php7.0-gettext php7.0-mysql php7.0-pdo

wget -O bacula-web-7.4.0.tgz http://www.bacula-web.org/download.html?file=files/bacula-web.org/downloads/7.4.0/bacula-web-7.4.0.tgz
mkdir -p /opt/bacula-web
mv bacula-web-7.4.0.tgz /opt/bacula-web
cd /opt/bacula-web
tar xvfz bacula-web-7.4.0.tgz

cp /opt/bacula-web/application/config/config.php.sample /opt/bacula-web/application/config/config.php
sed -i -e "s/'en_US';/'ja_JP';/" /opt/bacula-web/application/config/config.php
sed -i -e "s/\?>//" /opt/bacula-web/application/config/config.php
cat << EOF >> /opt/bacula-web/application/config/config.php
// bacula catalog (MySQL)
\\$config[0]['label'] = 'baculasrv';
\\$config[0]['host'] = 'localhost';
\\$config[0]['login'] = 'bacula';
\\$config[0]['password'] = 'bacula';
\\$config[0]['db_name'] = 'bacula';
\\$config[0]['db_type'] = 'mysql';
\\$config[0]['db_port'] = '3306';
?>
EOF
chown -R www-data:www-data /opt/bacula-web
sudo ln -s /opt/bacula-web/ /var/www/html/

systemctl restart apache2

SHELL
  end
  #----------------------------------------------------------------------------------------

end

2017年9月24日日曜日

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

Kanboardはオープンソースのタスク管理ソフトウェアです。

仮想マシンの構築

以下のVagrantfileでKanboardとPostgreSQLがインストールされた仮想マシンが構築できます。
仮想マシンが構築された後、http://192.168.55.106/kanboard/にアクセスします。デフォルトアカウントのユーザ名はadmin, パスワードadminです。
Vagrantfile

VAGRANTFILE_API_VERSION = "2"

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

# install postgresql
apt-get -y install postgresql 
echo "listen_addresses='*'" >> /etc/postgresql/9.5/main/postgresql.conf
echo "standard_conforming_strings=off" >> /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 kanboard
psql -c "
alter user postgres with password 'postgres';
create user kanboard with password 'kanboard';
grant all privileges on database kanboard to kanboard;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart 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

wget https://kanboard.net/kanboard-latest.zip
unzip kanboard-latest
mv kanboard /opt
cp /opt/kanboard/config.default.php /opt/kanboard/config.php
sed -i -e "s#define('DB_DRIVER', 'sqlite');#define('DB_DRIVER', 'postgres');#" /opt/kanboard/config.php
sed -i -e "s#define('DB_USERNAME', 'root');#define('DB_USERNAME', 'kanboard');#" /opt/kanboard/config.php
sed -i -e "s#define('DB_PASSWORD', '');#define('DB_PASSWORD', 'kanboard');#" /opt/kanboard/config.php

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

systemctl restart apache2 

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

ログイン画面


ログイン後のadmin画面


カンバン画面


関連情報

・Kanboardの設定・操作方法については「Kanboardの設定・操作」を参照してください。

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

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

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

・Kanboardのgithubリポジトリ
https://github.com/kanboard/kanboard

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

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

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604metabase"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604metabase"
     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 postgresql
apt-get -y install postgresql 
echo "listen_addresses='*'" >> /etc/postgresql/9.5/main/postgresql.conf
echo "standard_conforming_strings=off" >> /etc/postgresql/9.5/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/9.5/main/pg_hba.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 metabase
psql -c "
alter user postgres with password 'postgres';
create user metabase with password 'metabase';
grant all privileges on database metabase to metabase;
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service
systemctl enable postgresql.service

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

# install metabase
wget http://downloads.metabase.com/v0.25.2/metabase.jar
mkdir -p /opt/metabase
cp metabase.jar /opt/metabase

cat << EOF > /etc/systemd/system/metabase.service
[Unit]
Description=metabase

[Service]
Type=simple
Environment="MB_JETTY_PORT=8080"
Environment="MB_DB_TYPE=postgres"
Environment="MB_DB_DBNAME=metabase"
Environment="MB_DB_PORT=5432"
Environment="MB_DB_USER=metabase"
Environment="MB_DB_PASS=metabase"
Environment="MB_DB_HOST=localhost"
ExecStart=/usr/bin/java -Xmx2g -jar /opt/metabase/metabase.jar
WorkingDirectory=/opt/metabase
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

systemctl enable metabase.service
systemctl start metabase.service

echo 'access http://192.168.55.105:8080'
echo 'user: metabase, password: metabase'
SHELL
end


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

2017年9月21日木曜日

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

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

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

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

# install postgresql
apt-get -y install postgresql 
echo "listen_addresses='*'" >> /etc/postgresql/9.5/main/postgresql.conf
echo "standard_conforming_strings=off" >> /etc/postgresql/9.5/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/9.5/main/pg_hba.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
psql -c "
alter user postgres with password 'postgres';
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

# install pgweb
apt-get -y install unzip
wget https://github.com/sosedoff/pgweb/releases/download/v0.9.8/pgweb_linux_amd64.zip
unzip pgweb_linux_amd64.zip
mkdir -p /opt/pgweb
mv pgweb_linux_amd64 /opt/pgweb

cat << EOF > /etc/systemd/system/pgweb.service
[Unit]
Description=pgweb

[Service]
Type=simple
ExecStart=/opt/pgweb/pgweb_linux_amd64 --sessions --bind=0.0.0.0 --listen=8080
WorkingDirectory=/opt/pgweb
Restart=always
RestartSec=10

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

echo 'access http://192.168.55.109:8080/'
echo 'user: postgres, password: postgres'
SHELL
end
ログイン画面

ログイン後の画面

○関連項目
・pgwebと同じようにブラウザからPostgreSQLに対する操作を行えます。
VagrantでPostgreSQLとphpPgAdminがインストールされた仮想マシンを構築する

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

2017年9月20日水曜日

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

以下のVagrantfileを使用して、TaskBoardがインストールされた仮想マシンを構築する事ができます。
TaskBoardにhttp://192.168.55.105/TaskBoard/でアクセスして、ユーザ名admin、パスワードadminを入力します。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

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

wget https://github.com/kiswa/TaskBoard/archive/master.zip
unzip master.zip

apt-get -y install php7.0 libapache2-mod-php7.0 apache2 php7.0-sqlite sqlite

mv TaskBoard-master/ /opt/TaskBoard
cd /opt/TaskBoard/build
./build-all
chown -R www-data:www-data /opt/TaskBoard/
sudo ln -s /opt/TaskBoard /var/www/html/

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

    AllowOverride All
    Options All
    Require all granted

EOF

sed -i -e "s/Listen 80/Listen 0.0.0.0:80/" /etc/apache2/ports.conf
a2enmod expires
a2enmod rewrite
service apache2 restart

echo "access http://192.168.55.105/TaskBoard/"
echo "user: admin, password: admin"
SHELL
end

2017年9月19日火曜日

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

以下のVagrantfileを使用してpure-FTPdがインストールされた仮想マシンを構築する事ができます。
ftpクライアントから、ユーザ名test1、パスワードtest1でアクセスします。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604pureftpd"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604pureftpd"
     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 pure-ftpd 
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
sudo mkdir /home/ftpusers
sudo mkdir /home/ftpusers/test1
PASSWORD=test1
( echo ${PASSWORD} ; echo ${PASSWORD} ) | pure-pw useradd test1 -u ftpuser -d /home/ftpusers/test1 > /dev/null 2>&1
pure-pw mkdb
ln -s /etc/pure-ftpd/pureftpd.passwd /etc/pureftpd.passwd
ln -s /etc/pure-ftpd/pureftpd.pdb /etc/pureftpd.pdb
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/PureDB
sudo chown -hR ftpuser:ftpgroup /home/ftpusers/
gksudo pureadmin
sudo /etc/init.d/pure-ftpd restart

SHELL
end

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

以下のVagrantfileでPostgreSQLとphpPgAdminがインストールされた仮想マシンを構築する事ができます。
phpPgAdminにhttp://192.168.55.105/phpmyadmin/でアクセスします。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604phppgadmin"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604phppgadmin"
     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 postgresql
apt-get -y install postgresql 
echo "listen_addresses='*'" >> /etc/postgresql/9.5/main/postgresql.conf
echo "standard_conforming_strings=off" >> /etc/postgresql/9.5/main/postgresql.conf

#sed -i 's/host.*all.*all.*127.0.0.1/#host    all             all             127.0.0.1/g' /etc/postgresql/9.5/main/pg_hba.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
psql -c "
alter user postgres with password 'postgres';
"
EOF
echo "postgres:postgres" | chpasswd
systemctl restart postgresql.service

# install phppgadmin
apt-get -y install php7.0 libapache2-mod-php7.0 apache2 phppgadmin 
sed -i -e "s#Require local#Require ip 192.168.55.0/24#" /etc/apache2/conf-available/phppgadmin.conf 
sed -i -e "s/extra_login_security.*true;/extra_login_security\\'\\] = false;/" /usr/share/phppgadmin/conf/config.inc.php

systemctl restart apache2 

ln -s /etc/apache2/conf.d/phppgadmin /etc/apache2/conf-available/phppgadmin.conf 
sudo ln -s /usr/share/phppgadmin/ /var/www/html/

echo 'access http://192.168.55.105/phpmyadmin/'
echo 'user: postgres, password: postgres'
SHELL
end

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

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

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

2017年9月18日月曜日

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

以下のVagrantfileでMySQL5.7とphpMyAdminがインストールされた仮想マシンを構築する事ができます。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

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

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 resart

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

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

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

2017年9月17日日曜日

DockerでSeleniumとHeadless modeのFirefoxがインストールされたコンテナを作成する

以下のDockerfileを使用して、SeleniumとHeadless modeのFirefoxがインストールされたコンテナを作成します。

Dockerfile

FROM ubuntu:16.04

RUN locale-gen ja_JP.UTF-8
ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:en
ENV LC_ALL ja_JP.UTF-8
ENV MOZ_HEADLESS 1

RUN apt-get update \
  && apt-get -y install bzip2 wget firefox language-pack-ja fonts-ipafont-gothic fonts-ipafont-mincho \
  && 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 \
  && /bin/bash -c "source /opt/anaconda/bin/activate && pip install selenium" \
  && wget https://github.com/mozilla/geckodriver/releases/download/v0.19.0/geckodriver-v0.19.0-linux64.tar.gz \
  && tar -xvzf geckodriver-v0.19.0-linux64.tar.gz \
  && chmod +x geckodriver \
  && cp geckodriver /usr/local/bin/

CMD "/bin/bash"
コンテナをビルドするには以下のコマンドを実行します。
docker build -t ub1604headlessff .
コンテナ内で実行するpythonスクリプト(以下のsample.py)はdatサブディレクトリ内に保存します。

sample.py

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()

driver.get('https://www.google.co.jp/')
input = driver.find_element_by_name('q')
input.send_keys('selenium')
input.submit()
RESULTS_LOCATOR = "//div/h3/a"

WebDriverWait(driver, 10).until(
    EC.visibility_of_element_located((By.XPATH, RESULTS_LOCATOR)))

# get screen shot
driver.save_screenshot('screenshot1.png')
print("quit")
driver.quit()
サンプルスクリプトをコンテナ内で実行するには、以下のコマンドを実行します。
docker run -v `pwd`/dat:/dat --rm -i -t ub1604headlessff
コンテナに入った後に、以下のコマンドを実行します。
source /opt/anaconda/bin/activate
cd /dat && python sample.py
○関連項目
VagrantでSeleniumとheadlessモードのfirefoxがインストールされた仮想マシンを構築する

VagrantでSeleniumとheadlessモードのfirefoxがインストールされた仮想マシン(Ubuntu16.04)を構築する

以下のVagrantfileでSeleniumとheadlessモードのfirefoxがインストールされた仮想マシンを構築できます。
vagrantユーザでログオン後、source /opt/anaconda/bin/activateを実行後、sample.pyを実行するとgoogleの検索結果のスクリーンショットを取得します。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604selenium"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604selenium"
     vbox.cpus = 2
     vbox.memory = 2048
     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
#DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get -y install bzip2 wget firefox language-pack-ja fonts-ipafont-gothic fonts-ipafont-mincho
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 selenium 
wget https://github.com/mozilla/geckodriver/releases/download/v0.19.0/geckodriver-v0.19.0-linux64.tar.gz 
tar -xvzf geckodriver-v0.19.0-linux64.tar.gz 
chmod +x geckodriver 
cp geckodriver /usr/local/bin/

echo "export MOZ_HEADLESS=1" >> ~vagrant/.bash_profile
chown vagrant:vagrant ~vagrant/.bash_profile

cat << EOF > /vagrant/sample.py
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()

driver.get('https://www.google.co.jp/')
input = driver.find_element_by_name('q')
input.send_keys('selenium')
input.submit()
RESULTS_LOCATOR = "//div/h3/a"

WebDriverWait(driver, 10).until(
    EC.visibility_of_element_located((By.XPATH, RESULTS_LOCATOR)))

# get screen shot
driver.save_screenshot('screenshot1.png')
print("quit")
driver.quit()

EOF
echo '1. logon as vagrant'
echo '2. source /opt/anaconda/bin/activate'
echo '3. cd /vagrant && python sample.py'
SHELL
end

○関連項目
DockerでSeleniumとHeadless modeのFirefoxがインストールされたコンテナを作成する

2017年9月16日土曜日

Vagrantで指定したユーザだけがアクセスできるsambaサーバを仮想マシン(Ubuntu16.04)上に構築する

以下のVagrantfileを使用して、指定したユーザだけがアクセスできるsambaサーバを仮想マシン上にインストールします。
\\192.168.1.101\shareにtest1ユーザ、パスワードtest1でアクセスできます。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

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

# create a user
useradd test1
echo "test1:test1" | chpasswd

# create a shared directory
mkdir /opt/share
chown test1:test1 /opt/share

apt-get -y install samba 
echo -e "test1\\ntest1" | pdbedit -a -t -u test1

mv /etc/samba/smb.conf /etc/samba/smb.conf.org
cat << EOF > /etc/samba/smb.conf
[global]
dos charset = CP932
unix charset = UTF-8
display charset = UTF-8
workgroup = Workgroup
netbios name = ub1604samba
server string = ub1604samba
encrypt passwords = true
passdb backend = tdbsam

log level=2
log file=/var/log/samba/access.log
max log size=500

[share]
path = /opt/share
read only=no
browsable=yes
guest ok = yes
force user = test1
EOF

systemctl enable smbd
systemctl start smbd

systemctl enable nmbd
systemctl start nmbd

echo 'access to \\\\192.168.1.101\\share'
SHELL
end

2017年9月15日金曜日

Vagrantで仮想マシン(Ubuntu16.04)にCMS Made Simpleをインストールする

以下のVagrantfileを使用して仮想マシンを構築後、ブラウザからhttp://192.168.55.108/cmsms-2.2.3.1-install.phpにアクセスしてCMS Made Simpleをインストールすることができます。
データベース名として「cmsms」、ユーザ名「cmsms」、パスワードに「cmsms」を指定します。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/ubuntu-16.04"
  config.vm.hostname = "ub1604cmsms"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "ub1604cmsms"
     vbox.cpus = 2
     vbox.memory = 2048
     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
# 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 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 cmsms DEFAULT CHARACTER SET utf8;"
mysql -uroot -proot -e "CREATE USER cmsmsw@localhost IDENTIFIED BY 'cmsms';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON cmsms.* TO 'cmsms'@'localhost' IDENTIFIED BY 'cmsms';"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON cmsms.* TO 'cmsms'@'%' IDENTIFIED BY 'cmsms';"
mysql -uroot -proot -e "FLUSH PRIVILEGES;"

# install apache & php
apt-get -y install apache2 php7.0 libapache2-mod-php7.0 php-mbstring php7.0-mysql php7.0-gd php7.0-xml php7.0-zip php7.0-curl

# download 
wget -c http://s3.amazonaws.com/cmsms/downloads/13927/cmsms-2.2.3.1-install.zip
unzip cmsms-2.2.3.1-install.zip
mkdir cmsms
mv cmsms-2.2.3.1-install.php cmsms
mv cmsms /var/www
chown -R www-data:www-data /var/www/cmsms
sed -i -e "s#DocumentRoot /var/www/html#DocumentRoot /var/www/cmsms#" /etc/apache2/sites-available/000-default.conf

service apache2 restart

echo 'access http://192.168.55.108/cmsms-2.2.3.1-install.php'
echo 'db: cmsms, user: cmsms, password: smsms'
SHELL
end
http://192.168.55.108/cmsms-2.2.3.1-install.phpにアクセスした後のインストール画面

CouchDBをインストールした仮想マシン(CentOS7.3)を構築する

CouchDBをインストールした仮想マシンを構築するには以下のVagrantfileを使用します。

Vagrantfile

VVAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.3"
  config.vm.hostname = "couchdb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "couchdb"
     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.109", :netmask => "255.255.255.0"
  # bridge netwrok
  config.vm.network "public_network", ip: "192.168.1.109", :netmask => "255.255.255.0"
  config.vm.network "forwarded_port", guest:22, host:20022, id:"ssh"
  config.vm.provision "shell", inline: <<-SHELL

cat << EOF > /etc/yum.repos.d/bintray-apache-couchdb-rpm.repo
[bintray--apache-couchdb-rpm]
name=bintray--apache-couchdb-rpm
baseurl=http://apache.bintray.com/couchdb-rpm/el7/x86_64/
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF
yum -y install epel-release 
yum -y install couchdb
sed -i -e 's/bind_address = 127.0.0.1/bind_address = 0.0.0.0/' /opt/couchdb/etc/default.ini

cat << EOF > /etc/systemd/system/couchdb
[Unit]
Description=CouchDB
After=syslog.target
After=network.target

[Service]
User=couchdb
Type=simple
ExecStart=/opt/couchdb/bin/couchdb
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=couchdb

[Install] WantedBy=multi-user.target 
EOF

systemctl enable couchdb
systemctl start couchdb
echo 'access : http://192.168.55.109:5984/_utils/index.html'
SHELL
end
構築完了後、ブラウザでhttp://192.168.55.109:5984/_utils/index.htmlにアクセスすると、以下のような画面が表示されます。


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

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

以下のVagrantfiledjangocmsがインストールされた可能マシンを構築します。
仮想マシン構築後、http://192.168.55.109:8000/にアクセスしユーザ名admin、パスワードadminでログインします。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.3"
  config.vm.hostname = "djangocms"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "djangocms"
     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.109", :netmask => "255.255.255.0"
  # bridge netwrok
  config.vm.network "public_network", ip: "192.168.1.109", :netmask => "255.255.255.0"
  config.vm.network "forwarded_port", guest:22, host:20022, id:"ssh"
  config.vm.provision "shell", inline: <<-SHELL

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 djangocms-installer

mkdir ~/myproject
cd ~/myproject
djangocms -f --languages ja -p . mysite
echo 'ALLOWED_HOSTS = ["*"]' >> /root/myproject/mysite/settings.py
sed -i -e "s/TIME_ZONE = 'UTC'/TIME_ZONE = 'Asia\\/Tokyo'/" /root/myproject/mysite/settings.py
sed -i -e "s/'en'/'ja'/g" /root/myproject/mysite/settings.py

echo '------------------'
useradd py
mv /root/myproject /home/py
chown -R py:py /home/py/myproject

cp /vagrant/djangocms.service /etc/systemd/system
sudo systemctl enable djangocms
sudo systemctl start djangocms

echo 'access : http://192.168.55.109:8000/'
echo 'user/pass : admin/admin'
SHELL
end
djangocms.service

[Unit]
Description=djangocms

[Service]
Type=simple
ExecStartPre=source /opt/anaconda/bin/activate
ExecStart=/opt/anaconda/bin/python manage.py runserver 192.168.55.109:8000
User=py
Group=py
WorkingDirectory=/home/py/myproject
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

2017年9月10日日曜日

VagrantでDocker Swarmクラスタを構築する

以下のVagrantfileを使用して、3ノードのDocker Swarmクラスタを構築できます。

Dockerfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.define "dockerswarm1" do |server|
    server.vm.box = "bento/centos-7.3"
    server.vm.hostname = "dockerswarm1"
    server.vm.network :public_network, ip:"192.168.1.190"
    server.vm.network "private_network", ip: "192.168.55.190", :netmask => "255.255.255.0"
    server.vm.provider :virtualbox do |vbox|
      vbox.name = "dockerswarm1"
      vbox.cpus = 2
      vbox.memory = 2048
      vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
    end
    server.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

docker swarm init --advertise-addr 192.168.55.190  | grep -e '--token' | sed -e 's/    //' - > /vagrant/joincmd.sh
chmod +x /vagrant/joincmd.sh

SHELL
  end
  #----------------------------------------------------------------------------------------
  config.vm.define "dockerswarm2" do |server|
    server.vm.box = "bento/centos-7.3"
    server.vm.hostname = "dockerswarm2"
    server.vm.network :public_network, ip:"192.168.1.191"
    server.vm.network "private_network", ip: "192.168.55.191", :netmask => "255.255.255.0"
    server.vm.provider :virtualbox do |vbox|
      vbox.name = "dockerswarm2"
      vbox.cpus = 2
      vbox.memory = 2048
      vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
    end
    server.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
/vagrant/joincmd.sh

SHELL
  end
  #----------------------------------------------------------------------------------------
  config.vm.define "dockerswarm3" do |server|
    server.vm.box = "bento/centos-7.3"
    server.vm.hostname = "dockerswarm3"
    server.vm.network :public_network, ip:"192.168.1.192"
    server.vm.network "private_network", ip: "192.168.55.192", :netmask => "255.255.255.0"
    server.vm.provider :virtualbox do |vbox|
      vbox.name = "dockerswarm3"
      vbox.cpus = 2
      vbox.memory = 2048
      vbox.customize ["modifyvm", :id, "--nicpromisc2","allow-all"]
    end
    server.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
/vagrant/joincmd.sh

SHELL
  end
  #----------------------------------------------------------------------------------------

end

2017年9月9日土曜日

Vagrantを使用してJupyter Notebookをインストールした仮想マシン(CentOS7.3)を構築する

Jupyter Notebookがインストールされた仮想マシンを構築するには、以下のVagrantfileを使用します。仮想マシンを構築後、http://192.168.55.109:8080/?token=jupyterでアクセスします。
使用ポートはjupyter_notebook_config.pyのconf.NotebookApp.portで変更することができます。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.3"
  config.vm.hostname = "jupyter"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "jupyter"
     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.109", :netmask => "255.255.255.0"
  # bridge netwrok
  config.vm.network "public_network", ip: "192.168.1.109", :netmask => "255.255.255.0"
  config.vm.network "forwarded_port", guest:22, host:20022, id:"ssh"
  config.vm.provision "shell", inline: <<-SHELL

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 psycopg2

useradd py
sudo -u py sh -c "mkdir ~/.jupyter"
sudo -u py sh -c "cp /vagrant/jupyter_notebook_config.py ~/.jupyter"

cp /vagrant/jupyter.service /etc/systemd/system
sudo systemctl enable jupyter
sudo systemctl start jupyter

echo 'access -> http://192.168.1.109:8080/?token=jupyter'

SHELL
end
jupyter_notebook_config.py

conf = get_config()

conf.NotebookApp.ip = '*'
conf.NotebookApp.open_browser = False
conf.NotebookApp.port = 8080
conf.NotebookApp.token = 'jupyter'
jupyter.service

[Unit]
Description=Jupyter notebook

[Service]
Type=simple
ExecStartPre=source /opt/anaconda/bin/activate
ExecStart=/opt/anaconda/bin/jupyter notebook
User=py
Group=py
WorkingDirectory=/home/py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

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

2017年9月5日火曜日

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

ownCloudのパッケージ名称が変わり、このVagrantfileでは動作しないのでVagrantでownCloudとPostgreSQLをインストールした仮想マシン(Ubuntu16.04)を構築するを参照してください

以下のVagrantfileでは、データベースにmysqlを使用するように構成されたowncloudをインストールします。

Vagrantfile

VAGRANTFILE_API_VERSION = "2"

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

# install owncloud
wget -nv https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key -O Release.key
apt-key add - < Release.key
sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /' > /etc/apt/sources.list.d/owncloud.list"
apt-get update
apt-get -y install owncloud

cd /var/www/owncloud
sudo -u www-data sh -c "php occ maintenance:install --database mysql --database-name owncloud  --database-user root --database-pass root --admin-user admin --admin-pass admin"
sed -i -e "s/0 => 'localhost'/0 => '192.168.1.108', 1 => '192.168.55.108'/" /var/www/owncloud/config/config.php
sed -i -e "s/\\/\\/localhost/\\/\\/192.168.1.108/" /var/www/owncloud/config/config.php
service apache2 restart

echo 'access http://192.168.55.108/owncloud/'
echo 'user: admin, password: admin'
SHELL
end


my.cnf

[client]
port            = 3306
socket          = /var/lib/mysql/mysql.sock
default-character-set=utf8

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
bind-address = 0.0.0.0
port            = 3306
key_buffer_size = 256M
max_allowed_packet = 16M
table_open_cache = 16
innodb_buffer_pool_size = 512M
innodb_log_file_size = 32M
sort_buffer_size = 8M
read_buffer_size = 8M
read_rnd_buffer_size = 8M
join_buffer_size = 8M
thread_stack = 4M
character-set-server=utf8
lower_case_table_names = 1
innodb_lock_wait_timeout=120
skip-innodb-doublewrite

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid