Vagrantを使ってMySQLサーバを構築する際に、Vagrantのプロビジョニング機能を使ってみました。 その時の手順のメモを残しておきます。
今回作りたいMySQLサーバは、開発目的で使うため、
という条件で構築し、ホストから、
% mysql -h 192.168.33.10 -u root
のようにアクセスできればよい。
ホスト機は、Ubuntu16.04。
を使う。
事前にBoxが追加されているとして、
% vagrant init ubuntu/trusty64
で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
作成したmysql.shをプロビジョニング時に実行するよう、Vagrantfileに追記する。
config.vm.provision "shell", path: "provision/mysql.sh"
vagrant up
するか、vagrant provision
するとプロビジョニングが行われる。
以上の手順で無事にVagrantを使ってMySQLサーバが構築できました。