5次元のカオス

南の島の学生がつらつらと日々を書き連ねます

vagrantの自動プロビジョニング

Vagrantの自動プロビジョニングに関するメモ。

この機能を使うことで、vagrant upした際に、Vagrantは自動的にコマンドを実行する.

Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.provision :shell, :path => "./provision-script/basic-setting.sh",

  config.vm.provision "shell", inline: <<-SHELL
    sudo yum install -y mariadb-server
    sudo sed -i.origin -e '9a character-set-server=utf8' /etc/my.cnf.d/server.cnf
    sudo systemctl enable mariadb
    sudo systemctl start mariadb
    sudo firewall-cmd --add-service=mysql --permanent
    sudo firewall-cmd --reload
    echo "
    y
    root
    root
    y
    y
    y
    y
    " | mysql_secure_installation
    mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.33.1' IDENTIFIED BY 'root' WITH GRANT OPTION;"
    mysql -uroot -proot -e "FLUSH PRIVILEGES;"
  SHELL
end

config.vm.provision "shell", path: 'path' は、複数個書くことができる.

また、シェルスクリプトにしてVagrantfileとは別ファイルに書き出す事もできる.

config.vm.provision :shell, :path => "install.sh", :privileged => true

privileged => trueとすることで、rootユーザーとしてプロビジョニングを実行できる.

プロビジョニング | Vagrant日本語ドキュメント http://lab.raqda.com/vagrant/getting-started/provisioning.html