2013-06-05 131 views
2

對於流浪漢和廚師來說,我很新,所以這可能是一個簡單的問題。Chef-solo和vagrant在安裝後自動運行MySql腳本?

我設法讓廚師安裝MySQL,PHP等

在此之後,我需要虛擬機運行約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 

感謝您的幫助。

回答

7

爲此,我會建議使用廚師,因爲你已經在廚師/流浪環境。無需創建shell腳本並從Chef內部觸發它 - 這將違背Chef/Vagrant的預期流程。

你可以做沿東西線(取出並從MySQL cookbook由Opscode公司在server.rb配方簡化):

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

你可以在你自己的,你怎麼想存儲的MySQL確定路徑,用戶名和密碼。 一般的想法是,你可以在一個.sql文件中定義你的MySQL命令(保存在你的食譜中的模板或文件目錄中),然後用普通的MySQL命令運行它。

希望能讓你走上正確的道路。

+0

感謝你們,我希望今天下午能回到工作流程的這個方面,讓你們在結果上發佈。 –

+0

我把你所做的事放到了我創建的MySQL cookbook-> recipes-> setup.rb文件中。然後我添加了執行代碼。在此之後,我更新了我的廚師在流浪文件中的工作,如下所示:\t \t chef.add_recipe「mysql :: setup」 –

+0

不錯。樂於幫助。幾周前我確實遇到了這個問題......幸運的是,我碰到了MySQL食譜使用的方法。 – Adam