簡體   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