私たちはLAMPスタックをセットアップし、いくつかの一般的なMySQLデータベースを作成する、プロジェクトレポのマルチマシンバリアログファイルを持っています。現在、私たちのそれぞれには、初期の「迷惑行為を防ぐ」プロビジョニングの一部として、Vagrantに作成させたい個人的なデータベースもあります。 〜/ .vagrant.d/Vagrantfileに個人用のプロビジョニングコードを配置しましたが、Vagrantfilesの読み込み順序に従って、そのコードは共通のVagrantfileのプロビジョニングコードの前に実行されます。私の個人的なプロビジョニングコードは、MySQLがまだインストールされていないので、MySQLデータベースを追加することはできません。これは、一般的なVagrantfileの責任であるからです。初めての迷惑メール対策の際に個人データベースをプロビジョニングするにはどうすればよいですか?
一般的なVagrantfileがMySQLをインストールし、MySQLがインストールされた後、個人Vagrantfileがデータベースを追加するようにするにはどうすればよいですか?ここで
更新 は、私は(私は私とそう裸、次のRubyについて何を知っている)やってしまったものです。
Vagrantfile(他の開発者と共有):
Vagrant.configure("2") do |config|
config.vm.define "dev14" do |dev14|
dev14.vm.box = "ubuntu/trusty64"
dev14.vm.provision "file", source: "common.sql", destination: "common.sql"
dev14.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
sudo apt-get install -y apache2
sudo apt-get install -y php5
sudo apt-get install -y mysql-server
sudo apt-get install -y mysql-client
mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS common"
mysql -uroot -proot common < common.sql
SHELL
# User specific provisioning
$dev14 = dev14
load './provision.dev14.rb' if File.exists?('./provision.dev14.rb')
end
end
provision.dev14.rb(私の個人的なプロビジョニングファイル、Gitは無視):
$dev14.vm.provision "file", source: "personal.sql", destination: "personal.sql"
$dev14.vm.provision "shell", inline: <<-SHELL
mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS personal"
mysql -uroot -proot personal < personal.sql
SHELL
これらはもちろん消毒と簡略化の抜粋です。
あなたはどのプロビジョナーを使用していますか? – Railslide
@Railslideシェルとファイルの両方を使用しています。 –