VagrantのプロビジョニングでMySQLサーバを構築する
Vagrantを使ってMySQLサーバを構築する際に、Vagrantのプロビジョニング機能を使ってみました。 その時の手順のメモを残しておきます。
前提
今回作りたいMySQLサーバは、開発目的で使うため、
- ユーザはrootを使う
- パスワードはなし
という条件で構築し、ホストから、
% mysql -h 192.168.33.10 -u root
のようにアクセスできればよい。
環境
ホスト機は、Ubuntu16.04。
- Vagrant 1.8.5
- MySQL5.6
を使う。
Vagrantfile作成
事前にBoxが追加されているとして、
% vagrant init ubuntu/trusty64
でVagrantfileを作る。
Vagrantfile編集
ネットワーク
config.vm.network "private_network", ip: "192.168.33.10"
メモリ
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
end
プロビジョニング
プロビジョニング用のスクリプトを準備する。
shellを使ってプロビジョニングする。
Vagrantfileのあるディレクトリにプロビジョニング用スクリプト格納ディレクトリを作り、mysql.shというスクリプトを配置する。
% tree .
.
├── Vagrantfile
└── provision
└── mysql.sh
mysql.shの内容は次のとおり。
#!/bin/bash
export DEBIAN_FRONTEND="noninteractive"
apt-get update
echo mysql-server-5.6 mysql-server/root_password password '' | debconf-set-selections
echo mysql-server-5.6 mysql-server/root_password_again password '' | debconf-set-selections
apt-get install -y mysql-server-5.6
mysql -u root -e "grant all privileges on *.* to 'root'@'%';"
sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
sudo service mysql restart
Vagrantfileのプロビジョニング設定
作成したmysql.shをプロビジョニング時に実行するよう、Vagrantfileに追記する。
config.vm.provision "shell", path: "provision/mysql.sh"
実行
vagrant upするか、vagrant provisionするとプロビジョニングが行われる。
以上の手順で無事にVagrantを使ってMySQLサーバが構築できました。