小编Tad*_*der的帖子

安装 `mysql` gem 以在 `chef-client` 中使用吗?

我正在尝试使用厨师部署 Rails 应用程序,对于 mysql 食谱来创建数据库,它需要mysqlgem。所述mysql宝石安装系统范围通过使用Ubuntu的软件包,但是这不是通过使用chef-client从运行/opt/chef/embedded

我试过添加这个:

chef_gem 'mysql' do
    action :nothing
end.run_action(:install)
Run Code Online (Sandbox Code Playgroud)

但这需要libmysqlclient-dev安装 Ubuntu 包。因此我也在之前添加了这个:

package 'libmysqlclient-dev' do
    action :nothing
end.run_action(:install)
Run Code Online (Sandbox Code Playgroud)

但这是在apt配方更新 apt 存储库之前完成的,因此安装libmysqlclient-dev失败。

这些“黑客”看起来很难看,我无法找到apt-get update在正确的时间运行它们的方法。

有人可以帮我找到正确的(最像厨师的)方法来解决我的问题(实际问题是使用application食谱创建数据库)?

更新

我已经能够解决这个食谱的问题作为一个丑陋的黑客......我仍在寻找更好的解决方案:

execute "apt-get update" do
  ignore_failure true
  action :nothing
end.run_action(:run)

node.set['build_essential']['compiletime'] = true
include_recipe "build-essential"

%w{build-essential mysql-client libmysqlclient-dev}.each do |p|
  package p do
    action :nothing
  end.run_action(:install)
end

chef_gem 'mysql' do
  action :nothing
end.run_action(:install)
Run Code Online (Sandbox Code Playgroud)

mysql chef gem

1
推荐指数
1
解决办法
3248
查看次数

标签 统计

chef ×1

gem ×1

mysql ×1