我对流浪汉和厨师很陌生,所以这个问题可能很简单。
我已经设法让chef安装MySql、PHP等
在这之后,我需要VM运行大约3个SQL脚本,这可能是使用chef,还是应该移动到shell脚本并在启动后运行?
我的流浪档案-
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "raring32.box"
config.vm.box_url = "http://[local network location]/raring32.box"
config.vm.network :forwarded_port, guest: 80, host: 8888
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = "cookbooks"
chef.add_recipe "openssl"
chef.add_recipe "apache2"
chef.add_recipe "mysql"
chef.add_recipe "mysql::server"
chef.add_recipe "php"
chef.add_recipe "php::module_apc"
chef.add_recipe "php::module_curl"
chef.add_recipe "php::module_mysql"
chef.add_recipe "apache2::mod_php5"
chef.add_recipe "apache2::mod_rewrite"
chef.json = {
"mysql" => {
"server_root_password" => "hello",
"server_repl_password" => "hello",
"server_debian_password" => "hello"
}
}
chef.add_recipe "Database:Mysql"
end
end
谢谢你的帮助。
最佳答案
为此,我建议您使用Chef,因为您已经在Chef/Vagrant env中了。不需要创建一个shell脚本并从Chef内部触发它——这将违背Chef/Vagrant的预期流程。
您可以按照(从server.rb配方中的OpsCode的MySQLcookbook中获取并简化)的思路执行以下操作:
execute "mysql-install-privileges" do
command "mysql -u root -p#{node['mysql']['server_root_password']} < /vagrant/command.sql"
end
您可以自己决定如何存储mysql路径、用户名和密码。
一般的想法是在.sql文件中定义MySQL命令(保存在模板或食谱中的文件目录中),然后用普通的MySQL命令运行它。
希望这能让你走上正确的道路。
关于mysql - Chef-solo和vagrant在安装后自动运行MySql脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16942231/