【问题标题】:Vagrant Chef path for importing database导入数据库的 Vagrant Chef 路径
【发布时间】:2014-01-09 19:24:40
【问题描述】:

我学到了很多关于设置 vagrant 和 chef 的知识,但由于我是 ruby​​ - vagrant - chef 的新手,而且我不是最大的开发人员,所以我遇到了困难。主要是前端,但试图建立一个更好的开发环境。

我已经搜索并找到了很好的答案,但最后留下了一个问题。

我有这段代码创建数据库,但我不知道从哪里放置要导入的数据库...

# import an sql dump from your app_root/data/dump.sql to the my_database database
execute "import" do
  command "mysql -u root -p\"#{node['mysql']['server_root_password']}\" my_database < /chef/vagrant_db/database-name.mysql"
  action :run
end

所以我需要知道路径应该从哪里开始,顶级主目录,从我运行 vagrant 的顶级文件夹开始?目前所在的位置以及其他一些尝试过的地方都无法正常工作。

任何想法都会很棒。我已经在 google 上搜索了很多,以至于我几乎准备放弃了。

谢谢 蒂姆

【问题讨论】:

    标签: database import chef-infra vagrant


    【解决方案1】:

    我建议为此使用Chef::Config[:file_cache_path]。假设您想从远程 Web 服务器获取该 SQL 文件:

    db = File.join(Chef::Config[:file_cache_path], 'database.mysql')
    
    remote_file db do
      source   'http://my.web.server/db.mysql
      action   :create_if_missing
      notifies :run, 'execute[import]', :immediately
    end
    
    execute "import" do
      command "mysql -u root -p\"#{node['mysql']['server_root_password']}\" my_database < #{db}"
      action :nothing
    end
    

    这将:

    1. 添加幂等性 - 意味着它不会在每次运行时都尝试导入数据库
    2. 利用 Chef 的文件缓存路径,该路径在受支持的 Chef 系统上持久保存并保证可写
    3. 可扩展(您可以轻松地将remote_file 更改为cookbook_file 或一些自定义资源来获取数据库)

    现在,从 Vagrant 获取文件是另一回事。默认情况下,Vagrant 将Vagrantfile 所在的目录挂载在主机(本地笔记本电脑)上的/vagrant 上VM(来宾机器)上。您可以在本地笔记本电脑的任何位置安装其他位置(称为“共享文件夹”)。

    奖金

    如果您在本地机器上运行数据库,您实际上可以通过与 Vagrant 的共享文件夹共享套接字 :)。然后,您甚至不需要在您的 VM 上安装 MySQL - 它会使用在您的主机笔记本电脑上运行的 MySQL。

    来源:

    • 我写了很多 Chef :)

    【讨论】:

    • 感谢您抽出时间来解释。这需要我一段时间才能弄清楚。如果您可以分享一两个链接,也许是一个教程,我将开始研究这两个选项,localhost 数据库的共享文件夹和上面的代码。所以还有一个问题,上面的代码是否进入了 cookbooks/mysql/recipes/default.rb - 文件?至于共享文件夹。我想我有一个设置。所以在上面的代码中,如果我添加路径,我会启动 /vagrant/shared-folder/database.mysql 吗?
    • 我没有任何教程或指南。我推荐 learnchef 教程 (learnchef.opscode.com)。代码可以放入您想要的任何配方中,您只需将该配方包含在您的 run_list 中。
    猜你喜欢
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多