繁体   English   中英

Chef-solo和vagrant在安装后自动运行MySql脚本?

[英]Chef-solo and vagrant to automatically run an MySql script after install?

我对流浪汉和厨师来说还很陌生,所以这可能是一个简单的问题。

我设法让厨师安装MySql,PHP等

在此之后,我需要VM运行大约3个SQL脚本,这是否可以使用厨师,还是我应该进入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环境中。 无需创建shell脚本并从Chef中触发它 - 它将违背Chef / Vagrant的预期流程。

你可以做一些事情(在server.rb配方中由OpsCode从MySQL 食谱中获取和简化):

execute "mysql-install-privileges" do
  command "mysql -u root -p#{node['mysql']['server_root_password']} < /vagrant/command.sql"      
end

您可以自行确定如何存储mysql路径,用户名和密码。 一般的想法是你在.sql文件中定义你的MySQL命令(保存在你的模板或你的食谱中的文件目录中),然后使用普通的MySQL命令运行它。

希望能让你走上正确的道路。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM