【问题标题】:Chef-solo and vagrant to automatically run an MySql script after install?Chef-solo 和 vagrant 在安装后自动运行 MySql 脚本?
【发布时间】:2013-06-05 14:11:33
【问题描述】:

我对 vagrant 和 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

感谢您的帮助。

【问题讨论】:

    标签: mysql chef-infra vagrant


    【解决方案1】:

    为此,我建议您使用 Chef,因为您已经在 Chef/Vagrant 环境中。无需创建 shell 脚本并在 Chef 中触发它 - 这将违背 Chef/Vagrant 的预期流程。

    您可以按照以下方式做一些事情(通过 server.rb 配方中的 OpsCode 从 MySQL cookbook 中提取和简化):

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

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

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

    【讨论】:

    • 谢谢你,我希望今天下午能回到工作流程的这方面工作,所以会及时通知你结果。
    • 我把你所做的放到我创建的 MySQL 食谱->食谱->setup.rb 文件中。然后我添加了执行代码。在此之后,我在 vagrant 文件中更新了我的厨师,使其工作如下: chef.add_recipe "mysql::setup"
    • 不错。乐意效劳。实际上,几周前我在这个确切的问题上遇到了麻烦……幸运的是,我遇到了 MySQL 食谱使用的方法。
    猜你喜欢
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    相关资源
    最近更新 更多