MySQL AllStarというVagrantboxを作った

#vagrant #mysql

2014/2/27、ペパボにて@glidenote先生主催のVagrant勉強会が行われました。

packerでMySQLの各バージョンが入った箱を作った

資料

発表時からちょっと修正いれてるんですが、以下が資料です。

MySQL AllStar

Vagrant x VirtualBoxで動く MySQL AllStar と名づけたvboxを公開しました。

CentOS 4, 5, 6の 32/64bit環境において、MySQL 4.0系から5.6系までの各バージョンが入ったボックスです。
boxを一度に起動できるVagrantfileも入っているので参考にどうぞ。

vagrant up => <version>/bin/mysqld_safe

ボックスをvagrant up boxしてsshログインすると、以下のようなレイアウトで各MySQLが入ってます。

/home/vagrant/mysql
├── 4.0.30
├── 4.1.25
├── 5.0.96
├── 5.1.73
├── 5.5.36
└── 5.6.16

それぞれmysql_install_dbは実行済みなので、cd ~/mysql/<version>; bin/mysqld_safe&するとMySQLが立ち上がります。

モチベーション

仕事でMySQLのアップグレード作業をしているのですが、yumやrpmがめんどくさくて、初めから全部入ってるvboxがあればバンバン検証して壊すことも出来る!と思って作りました。

Dockerも考えたんですが、歴史的な理由で古いOSを使っている環境もありうるので、CentOS 4〜6 (32/64bit) 一通りあれば、そこそこ本番環境に近い状況を作りやすいかなあと。

ボックスを2つ起動して、マスタースレーブ構成を比較的簡単に出来るようにしたかったというのもあります。

packer x mysql-build

ボックスのビルドにはPackerを利用しました。

Packer自体は簡単なんですが、いかんせんOSのバージョンごとの差とか(kickstart等)が面倒で、結局のところOSのprovisionが大変という感想。 上のリポジトリにPacker用のファイルが入っております。ツッコミ大歓迎です。

各バージョンのビルドには、@kamipoさん作のmysql-buildを使いました。 perl-buildやruby-buildのように、各バージョンのMySQLをビルド出来るツールです。 これが無ければこのvboxの完成はなかった…。

kamipo/mysql-build

mysql-build - provides a command to compile and install different versions of MySQL.

mysql-buildの使い方は、mysql-buildのREADMEの他、以下の同期のブログを参考にしました。

今後やりたいこと

まだまだ荒いので、時間を見つけては手入れしていこうと思います。

  • MariaDBやPercona入りのバージョンも作る
  • 5.7系入りのも作る