2

私は浮浪者とシェフにかなり慣れていないので、これは簡単な質問かもしれません。

シェフにMySql、PHPなどをインストールさせることができました

この後、VM で約 3 つの SQL スクリプトを実行する必要があります。これはシェフを使用して可能ですか、それともシェル スクリプトに移動して開始後に実行する必要がありますか?

私の放浪者ファイル -

# -*- 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

助けてくれてありがとう。

4

1 に答える 1

7

これには、すでに Chef/Vagrant 環境にいるため、Chef を使用することをお勧めします。シェル スクリプトを作成して 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 のパス、ユーザー名、およびパスワードをどのように保存するかは、自分で決めることができます。一般的な考え方は、MySQL コマンドを .sql ファイル (クックブック内のテンプレートまたはファイル ディレクトリに保存) で定義し、それをプレーンな MySQL コマンドで実行するというものです。

それがあなたを正しい道に導くことを願っています。

于 2013-06-05T18:22:21.407 に答える