2018年6月2日土曜日

VagrantでDry/Docker/Docker Composeがインストールされた仮想マシン(CentOS7.4)を構築する

Dryはキャラクターベースの画面からDockerコンテナを管理する事ができます。

○Dryの画面

dryコマンドで起動します。

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

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/centos-7.4"
  config.vm.hostname = "co74dockerdry"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "co74dockerdry"
     vbox.cpus = 4
     vbox.memory = 4096
     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

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
sudo usermod -a -G docker vagrant

# install docker compose
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

# install Dry
curl -sSf https://moncho.github.io/dry/dryup.sh | sudo sh
chmod 755 /usr/local/bin/dry

SHELL
end


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

2018年6月1日金曜日

VagrantでDocker CEとDocker Composeをインストールした仮想マシン(Debian Stretch/9.4)を構築する

DockerとDocker Composeで、コンテナの構築・管理を行うことができます。

○構築方法
以下のVagrantfileを使用して、Docker CEとDocker Composeをインストールした仮想マシンを構築できます。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94docker"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94docker"
     vbox.cpus = 4
     vbox.memory = 4096
     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
locale-gen ja_JP.UTF-8
localectl set-locale LANG=ja_JP.UTF-8

# install docker-ce
apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
apt-key fingerprint 0EBFCD88
add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
   $(lsb_release -cs) \
   stable"
apt-get update
apt-get -y install docker-ce

groupadd docker
adduser vagrant docker
systemctl enable docker
docker version

# install docker compose
curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version

SHELL
end

DockerでVanilla Forums 2.5.1とMariaDBがインストールされたコンテナ(Alpine 3.7)を構築する

Vanilla ForumsはPHP製の掲示板アプリケーションです。

○Vanilla Forumsの画面


○構築方法
以下の手順で、Vanilla Forums2.5.1とMariaDBのコンテナを構築・実行します。
1. Vanilla Forumsイメージの作成(Dockerfileがあるフォルダで実行)
docker build -t vanillaforums .

Dockerfile
FROM alpine:3.7
WORKDIR /
RUN  apk update \
  && apk add --no-cache apache2 php7-apache2 php7-pdo php7-mysqli php7-pdo_mysql php7-intl php7-mcrypt php7-mbstring php7-session php7-curl php7-json php7-xml php7-zip php7-tokenizer php7-ctype openssl openrc unzip \
  && rm -rf /var/cache/apk/* \
  && wget https://open.vanillaforums.com/get/vanilla-core-2.5.1.zip \
  && unzip vanilla-core-2.5.1.zip \
  && rm -f vanilla-core-2.5.1.zip \
  && mkdir -p /opt \
  && mv vanilla-2.5.1 /opt/vanillaforums \
  && chown -R apache:apache /opt/vanillaforums \
  && ln -s  /opt/vanillaforums /var/www/localhost/htdocs \
  && mkdir -p /run/apache2 \
EXPOSE 80
VOLUME /opt/vanillaforums
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
2. Vanilla ForumsとMariaDBコンテナの構築・実行(docker-compose.ymlがあるフォルダで実行)
docker-compose up -d
docker-compose.yml
version: "2"
services:
  vanillaforums:
    image: vanillaforums
    container_name: "vanillaforums"
    volumes:
      - "vanillaforums-data:/opt/vanillaforums"
    ports:
      - "80:80"
    depends_on:
      - db
    environment:
      VF_DB_HOST: "db:3306"
  db:
    image: mariadb:10.3
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    container_name: "vanillaforums-db"
    volumes:
      - "db-data:/var/lib/mysql"
      - ./mysqlconf:/etc/mysql/conf.d
    environment:
        MYSQL_DATABASE: vanillaforums
        MYSQL_ROOT_PASSWORD: vanillaforums
volumes:
  db-data:
    driver: local
  vanillaforums-data:
    driver: local

cnfファイル(docker-compose.ymlが配置されているディレクトにサブディレクトリmysqlconfを作成して配置する)
mysqlconf/vanillaforum.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION

3. ブラウザからhttp://<Dockerホスト名またはIP>/vanillaforums/にアクセス
Installer画面で以下の項目を入力し、「Continue」をクリックする
Database Host: db
Database Name: vanillaforums
Database User: root
Database Password: vanillaforums
他の項目は好みに合わせて入力


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

VagrantでMySQLTunerとMariaDBをインストールした仮想マシン(Debian9.4)を構築する

MySQLTunerはMySQLをチューニングするためのperlスクリプトです。

〇MySQLTunerの推奨設定出力例


〇構築方法
以下のVagrantfileを使用してMySQLTunerとMariaDBをインストールした仮想マシン(Debian9.4)を構築する事ができます。
MySQLのユーザ/パスワードはroot/rootです。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94mysqltunermariadb"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94mysqltunermariadb"
     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 -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 mariadb
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
sudo mysql -uroot -e "UPDATE user SET plugin='mysql_native_password', authentication_string = password('root') WHERE User='root'; flush privileges;" mysql

# install MySQLTuner
wget http://mysqltuner.pl/ -O mysqltuner.pl
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv
echo 'execute : perl mysqltuner.pl'

SHELL
end


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

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

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

○Adminerの画面


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

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

sudo mysql -uroot -e "UPDATE user SET plugin='mysql_native_password', password = password('root') WHERE User='root'; flush privileges;" mysql
apt-get install -y adminer
ln -s  /usr/share/adminer/adminer /var/www/html
service apache2 restart
echo 'access http://192.168.1.104/adminer/'
echo 'user:root password:root db:mysql'
SHELL
end


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

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

VagrantでDokuWikiをインストールした仮想マシン(Debian Stretch/9.4)を構築する

DokuWikiはデータベースを必要としないWikiソフトウェアです。

○DokuWikiの画面


○構築方法
以下のVagrantfileを使用して、DokuWikiをインストールした仮想マシンを構築できます。
ブラウザからhttp://192.168.55.106/dokuwiki/にアクセスします。

Vagrantfile
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "bento/debian-9.4"
  config.vm.hostname = "db94docuwiki"
  config.vm.provider :virtualbox do |vbox|
     vbox.name = "db94docuwiki"
     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 dokuwiki
apt-get -y install php7.0 libapache2-mod-php7.0 apache2 php7.0-mbstring php7.0-xml

# install dokuwiki
wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz
tar xvfz dokuwiki-stable.tgz
mv dokuwiki-2018-04-22 /var/www/html/dokuwiki
chown -R www-data:www-data /var/www/html/dokuwiki

systemctl restart apache2

echo 'access http://192.168.55.106/dokuwiki/'
SHELL
end


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

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

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

MySQLTunerはperl製のMySQLをチューニングするためのスクリプトです。

〇MySQLTunerの推奨設定出力例


〇構築方法
以下のVagrantfileを使用してMySQLTunerとMySQLをインストールした仮想マシン(CentOS7.4)を構築する事ができます。
MySQLのユーザ/パスワードはroot/rootです。
Vagrantfile
VAGRANTFILE_API_VERSION = "2"

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

# install 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 MySQLTuner
yum -y install perl-Data-Dumper
wget http://mysqltuner.pl/ -O mysqltuner.pl
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv
echo 'execute : perl mysqltuner.pl'

SHELL
end


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